목록개발 (99)
semtax의 개발 일지
개요 이번 시리즈 에서는 스프링 부트를 이용해서 간단한 웹 서버를 만들어 보도록 하겠습니다. 게시판을 만들기에 앞서 이번 포스팅에서는, 스프링 부트가 무엇인지에 대해서와 환경설정을 하는법을 다루도록 하겠습니다. 스프링 부트란? 스프링 부트를 설명하기 전에 먼저 스프링 프레임워크에 대해서 간략하게 설명하도록 하겠습니다. 맨 처음 소프트웨어의 위기가 찾아왔을때, 사람들은 그 고민을 해결하기 위해 객체지향 프로그래밍(OOP) 이라는 패러다임을 도입하였습니다. 하지만 막상 객체지향 프로그래밍을 도입하였음에도 이전보다는 생산성이 늘기는 했지만, 생각 보다 재사용성도 잘 되지 않았고, 유지보수도 여전히 힘들었습니다. 객체지향이나 절차지향, 함수 지향 패러다임 이전에 보다 근본적인 원인을 해결하지 못한 것이지요. 과..
개요 이번 포스팅에서는, rabbitMQ를 이용해서 작업 큐를 구현해보는 내용을 진행하도록 하겠습니다. 작업 큐(Work Queue) 란? 작업 큐는 쉽게 말해서 은행이나 식당에서 사용하는 번호표 같은것입니다. 사림들이 은행에 왔는데 창구가 꽉 찬 경우 번호표를 받고 대기 한 뒤, 차례가 오면 가서 업무를 처리하는 식이죠. 만약 이러한 번호표가 없다면 손님들이 대기하지 않고 떠나게 되겠죠. 즉, 작업 큐의 핵심은 오래걸리는 작업들의 요청이 허용량 이상으로 쏟아졌을때 큐를 이용해서 대기열을 둔 뒤에 실제 작업하는 사람이 작업을 하나씩 꺼내가서 작업을 한다는 것입니다. 이렇게 하는 경우 실제 작업을 시키는 사람의 입장에서는 요청을 즉시 즉시 받는것 처럼 느껴지는 것이지요. 즉, I/O를 요청하고나서 결과값을..
개요 이번 포스팅에서는 node.js로 메시지 큐 중에 하나인 rabbitmq를 사용하는 법에 대해서 다루도록 하겠습니다. What is Rabbitmq? Rabbitmq는 메시지 브로커 서비스로, 불특정 다수의 사용자가 다른 사람에게 메시지를 전달하려고 메시지 브로커에 메시지를 전달하면 메시지 브로커가 메시지를 받아서 보관하고 있다가 해당 메시지를 받으려는 사람이 보관한 메시지를 꺼내가는 형태의 서비스 입니다. 한마디로, 우체통이나 편지함을 생각해보면 쉽습니다. 편지를 보내려는 사람이 편지를 써서 우체통에 넣으면 받는 사람이 우체통에서 편지를 꺼내가는 구조이지요. 즉 정리하면 아래와 같습니다. 보내는 사람 = 메시지를 보내는 사람 받는 사람 = 메시지를 꺼내가는 사람 우체통 = 메시지 브로커 보통 Ra..
1. Tree API를 이용한 메서드 조작 ASM에서 제공하는 MethodNode는 대략적으로 아래와 같이 생겼습니다. public class MethodNode ... { public int access; public String name; public String desc; public String signature; public List exceptions; public List visibleAnnotations; public List invisibleAnnotations; public List attrs; public Object annotationDefault; public List[] visibleParameterAnnotations; public List[] invisibleParameter..
1. Tree API 이번 포스팅에서는 ASM에서 제공하는 Tree API를 이용해서, 클래스 파일을 조작해보도록 하겠습니다. ASM에서는 클래스 조작을 위한 Tree API인 ClassNode 클래스를 제공합니다. 대략적인 생김새는 아래와 같습니다. public class ClassNode ... { public int version; public int access; public String name; public String signature; public String superName; public List interfaces; public String sourceFile; public String sourceDebug; public String outerClass; public String ou..
소개 이번 시간에는, expressjs에서 postgreSQL을 연동하는 방법을 알아보도록 하겠습니다. postgreSQL은, Oracle이나 MySQL과 비슷한 RDBMS입니다. 메이저한 RDBMS중 가장 실험적인 기능을 많이 제공하는것으로 알려져 있습니다. 사실, node.js에서는 MongoDB를 가장 많이 사용하기는 하지만, RDBMS도 많이 사용을 하고 있습니다. 또한, 이미 MongoDB관련된 포스팅은 많은데다가 postgreSQL을 연동한 예제는 잘 보이지 않는것 같아서 작성을 하게 되었습니다. 설치 및 연동방법 아래 명령어를 이용해서 node.js용 postgreSQL 모듈을 설치 합니다. npm install pg-promise 아래 코드와 같은 방식으로 사용하면 됩니다. const pg..
개요 이번 포스팅 에는 Postman을 이용해서 자신이 만든 웹 서비스를 테스트 해보는 방법을 다뤄보도록 하겠다. 실습해볼 환경은 MAC OS X 기준으로 작성되었음을 알립니다. 설치 먼저 아래 링크로 접속을 해서 Postman을 다운로드 받어서 설치를 합니다. https://www.getpostman.com/downloads/ 설치가 완료되고나서 Postman을 실행하면 아래와 같은 화면이 나옵니다. 사용방법 보통 아래 그림과 같이 사용을 합니다. 위에서 보이는 그림과 같이 URL옆의 버튼으로 HTTP METHOD를 설정하고 URL을 적어준 뒤, Header탭에 보내려는 요청에 맞는 헤더들을 집어넣어주고 body 탭에 보낼 데이터를 넣어주면 된다. 그 외에도 포스트맨(Postman)같은 경우 Swagg..
개요 이번 문서에서는 mysql에 있는 AUTO INCREMENT와 유사한 기능을 PostgreSQL에서는 어떻게 사용하는지 알아 보도록 하겠다. PostgreSQL Serial Type PostgreSQL에서는 auto increment가 지원이 되는 Sequence 라는 타입을 지원하고 있다. 테이블 생성시 아래와 같이 SERIAL 키워드를 이용해서 컬럼의 타입을 정의함으로써, Sequence 타입을 사용 할 수 있다. CREATE TABLE table_name( id SERIAL ); SERIAL 타입은 postgreSQL에서 지원하는 타입이므로, 내부적으로 실행될때는 아래와 같은 SQL로 바뀌게 된다. CREATE SEQUENCE table_name_id_seq; CREATE TABLE table..