팀 회의 중 각 담당 업무 이슈에 관련 이야기를 나누다가 어떤 서버의 프록시 서버 설정에 문제가 있다는 이야기를 나누고 있었다. 그런데 팀장님이 갑잡스러운 질문을 하셨다. 팀장님 : 포워드 프록시랑 리버스 프록시 차이점을 알아??? 나 : 어...음... 포워드 프록시는 서버에서 들어오는 쪽이고, 리버스 프록시는 서버에서 나가는 쪽을 관리를 하는 것으로 알고 있습니다. 틀린 말은 아니였지만, 대답을 하고 나서도 정확히 어떠한 역할을 하고 무슨 차이가 있는지는 명확하게 떠오르지 않았다. 그렇기에, 이번 글에서 위 2가지에 대해 정리해보고자 한다. 1. Proxy(프록시) 란? - Proxy(프록시) 서버는 클라이언트(Client)가 자신을 토해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴..
개발을 진행하다보면 sync, async, blocking, non-blocking 를 고려해서 개발을 해야할 때가 발생하고, 적절하게 사용해야만 한다. 위 개념들을 살펴보면 비슷한 내용인 것 같아 같아보이지만 관점에 따라 다른 기능을 제공한다. 단지 이 개념들을 서로 조합해서 사용되는 것 뿐이다. 동기(sync)와 비동기(async)는 프로세스의 수행 순서 보장에 대한 매커니즘이며, 블록킹(blocking)과 논블록킹(non-blocking)은 프로세스의 유휴 상태에 대한 개념이다. 이번 글에서는 위 개념들을 정리하고 비교해보고자 한다. 1. Sync VS Async 1-1. Sync(동기, Synchronous) - Sync(동기)는 동시에 일어난다는 의미를 가진다. - 요청과 결과가 동시에 일어난다..
개발 도중 API 의 Request, Response 처리를 할 때나 다른 계층으로 데이터를 넘길 때 별도의 DTO 를 생성해야 하는 고민을 하기도 한다. 또한, 개발자마다 개발하는 과정에서 혹은 기존 소스에서 확인해보면 DTO 와 VO 는 다른 개념이지만 종종 같은 개념으로 사용하기도 합니다. 또한, Entity 와 DTO 도 한 클래스로 사용하기도 한다. 이것이 무조건? 틀렸다라곤 할 수는 없겠지만, 각각의 역할이 다르기 때문에 분리하여 각 역할에 맞게 사용하여야 하고 이것이 좋은 코드로 이어질 것이라고 생각한다. 이번 글에서는 각 Entity, DTO, VO 에 대해 정리를 해보고자 한다. 1. Entity - 실제 DB 테이블과 매핑되는 핵심 클래스로, 데이터베이스의 테이블에 존재하는 컬럼들을 필..
이직을 한 지 6개월이 돼가면서, 새로운 경험도 하고 있고 기존에 아는 내용에 대해서도 조금 더 확실하게 이해할 수 있는 기간이었다고 생각한다. 그러면서 대부분 주말을 통해 공부를 (조금)하고 블로그를 작성하였는데, 7,8월에는 열심히 글을 쓰긴 했는데, 최근에는 연휴도 있으면서(= 노느라) 글을 많이 못 썼던 것 같다. 투덜 되는 게 길었고, 이번 글에서는 최근 들어 각 회사에서 사용되는 Message Broker, Message Queue 에 대해 정리해보고자 한다. 1. MOM(Message Oriented Middleware) - Message Broker 와 Message Queue 를 알아보기 전에, MOM(메시지 지향 미들웨어)를 간단하게 알아보겠습니다. - MOM 은 어플리케이션들의 메시지..
최근에 이직한 회사에서 개발 업무마다 다르지만, 일단 OJT 기간에 개발은 Nexacro 플랫폼을 사용하게 되었다. 개발자로서 nexacro, 웹스케어, xPlatform 등 이름만 들어보고 사용은 해보진 못 하였다. 소스를 받고, 넥사크로 스튜디오를 통해 확인을 해보았는데... 일단... 투비소프트에서 제공하는 온라인강의도 있고 넥사크로 공식 커뮤니티를 참고하여, 넥사크로에 대해서 기초적인 부분부터 익혀보고자 했다. 배워두면 언제든지 사용할 수 있을거니 간략하게 기록해서 업무에 지장이 없도록 정리를 하고자 한다. 해당 글에서는 정돈되지 않은 메모장 느낌으로 정리를 하고 추후에 시간이 괜찮다면 깔끔하게 정리를 하도록 노력(대충 언제 할지 모른다는 말...)해야겠다. 1. 정리 - 빨간색 : 소문자 + 대..
이전에 마이데이터를 사용한 서비스를 개발에 참여하고, 오픈까지 경험을 해보았다. 참여하기 전 까지는 마이데이터 란 용어도 들어보지 못했었는데, 개발도 해보고 계속해서 관련된 업무를 진행하게 될 것 같아 용어에 대해 정리해보고자 한다. 1. 마이데이터(MyData)란? - 마이데이터는 개인 데이터의 관리와 활용 권한이 정보주체인 개인(자신)에게 있음을 강조하는, 개인데이터 활용 체계. - 개인데이터의 활용처와 활용범위 등에 대한 정보주체의 능동적인 의사결정을 지원함으로써 개인정보 자기 결정권을 보장. 예를 들어, 많은 플랫폼을 사용하다 보면 "개인정보 이용과 수집에 동의하시겠습니까?" 라는 것을 볼 수 있다. 이 질문을 통해 플랫폼 기업은 사용자의 데이터를 수집하여 이용할 권리를 가진다. 조금 더 구체적으..
최근에 금융서비스 기업으로 이직을 하게 되면서, 이전 SI 회사에서는 들어보지 못한 금융 IT 용어들이 많았다. 업무에 참고하고자 해당 용어들을 정리하며, 기록하려고 한다. 1. EAI(Enterprise Application Integration) - 엔터프라이즈 미들웨어를 인프라로 하여 다양한 기업의 환경(에플리케이션/데이터/네트워크 등)을 통합하여 하나의 시스템으로 관리/운영할 수 있는 시스템. - 금융업권(은행계)에서 채널계와 계정계는 대부분 EAI를 통해 연계된다. - 시스템 구조나 개발언어가 다를 수 있어서 어댑터를 사용한다. 2.ESB(Enterprise Service Bus) - SOA에서 사용되는 개념. - EAI와 유사하게 사용된다.(기관 간, 서비스 간 연계) - SOA 개념을 도입하..
0. 결론 - 자세히 알아보기 전에, 간단하게 쿠키와 세션에 대해서 공통점 및 차이점은 아래와 같다. 쿠키(Cookie) 세션(Session) 공통점 웹 통신간 유지하려는 정보(ex: 로그인 정보 등)를 저장하여 사용 차이점 - 개인 PC(브라우저) 에 저장 - 보안 취약 - 속도가 빠름 - 웹 서버에 저장 - 보안 유리 - 속도가 느림 1. 쿠키와 세션을 사용하는 이유 - 기본적으로는 HTTP 프로토콜의 특성이자 약점을 보완하기 위해서 쿠키 또는 세션을 사용. - HTTP 프로토콜 환경은 "connectionless, stateless" 한 특성을 가지기 때문에, 서버는 매번 클라이언트가 누구인지 확인이 필요. Connectionless(비연결 지향) - 클라이언트가 서버에 요청(Request)을 했을..
이전 글에서 Struts2 Framework에 대해서 정리를 해보았다. 자주 사용되는 프레임워크는 아니지만, 웹 개발 할때 종종 사용되는 프레임워크로 보통 사용되는 Spring Framework와 비교를 해보고자 한다. - Spring 과 Struts 모두 Java 웹 어플리케이션 을 개발하는 데 사용된다. - Struts는 Spring 보다 이전에 개발되었지만, 현재에는 Spring 을 더 많이 사용한다. - Struts 프레임워크가 향상되어 현재 둘 다 Java를 사용하여 웹 애플리케이션을 개발하는 데 사용되고 있다. 1. Spring Framework - 오픈 소스 어플리케이션 프레임 워크 - 웹 앱 개발을 위한 표준이며 J2EE(Java to Enterprise Edition)를 통해 사용 - 제..
회사에서 기존 프로젝트를 인계받아 운영 업무를 진행하려고 하였을 때, 소스를 확인해보니 자주 사용하던 spring 기반의 프로젝트가 아닌 struts2 기반으로 개발된 프로젝트였다. struts2 에 대해서 처음 알게 되어, 해당 내용을 공부하여 기록하고자 한다. 1. Struts Framework 란? - Struts 는 Model(모델), View(뷰), Controller(컨트롤러) 아키텍쳐를 나타내는 MVC 모델을 기반으로 하는 프레임워크 이다. - 오픈 소스 플랫폼이며 엔터프라이즈 에디션 웹 어플리케이션을 개발하는데 사용한다. - 사용자의 요청을 처리하는 요청 기반 프레임워크를 기반으로 개발되어, 요청 핸들러와 응답 핸들러가 존재한다. - Ajax, REST 및 SOAP이 지원 된다. - 아파치..