본문 바로가기

전체 글

(6)
채팅 서버 만들기 1. 웹 소켓으로 채팅 서버 만들기 현재 진행중인 프로젝트에 들어갈 채팅 서버를 만들어야 한다. 웹소켓으로 간단하게 구현하는 1:1 채팅 서버는 몇번 본 적 있는데 수 많은 사람들이 사용하는 채팅 서버는 어떻게 구성됐는지, 어떤 기술이 필요한지 잘 몰랐다. 이번 연재 시리즈를 통해 알아가 보도록 하겠다. 먼저, 웹소켓 웹소켓은 http의 stateless함을 보완하기 위해 나온 기술이며 이를 보완하기 위해 등장했다. http스펙 상에서 동작한다. 일단 프로젝트 생성 바로 본론으로 들어와서, 고객의 요청을 처리해 줄 핸들러를 작성한다. 일반적으로 스프링에서 핸들러는 프론트 컨트롤러(서블릿)가 정한 고객의 요청을 처리해주는 거라고 보면 된다. // 많은 종류의 WebSocketHandler중에 TexxtWebSocketHandler를 상속받고..
JPA 기본 시리즈 - 1. 영속성 관리 기본을 다지기 위해 JPA 기본 시리즈를 작성합니다. 김영한님의 ORM 서적을 참고한 글이며 비슷한 글이 다른 블로그에도 많이 있지만 읽는 것만으로는 이해가 가지않아 내용을 정리하면서 이 내용을 포스팅해보도록 하겠습니다. JPA? JPA는 ORM 기술(객체지향 모델링)을 자바 진영의 스프링 프레임워크에서 사용하기 위해 고안됐다. Java Persistence Api Persistence는 앞으로도 많이 쓰이게 될 용어인데 '영속화'라는 뜻이다. 영속화 라니.. 왜 이런 어려운 말을 쓸까? 나름의 이유는 있다. 브라우저에서 웹 서버, DB까지 여러 곳에서 '저장'을 사용한다 캐쉬, 스토리지, 컨텍스트, config, adapter 등록 등등 여러 '저장'의 형태가 있다. 그 중에서도 특히 DB에 저장하는 ..
Spring MVC - DTO, VO, DAO 에 대한 간단 명료한 정리. DTO, VO, DAO.. 모두 Object, 즉 객체이다. 특별한 목적을 가지고 생성되는 객체이다. DTO는 계층형 구조를 가진 웹 서버에서, Trasfer의 역할을, VO는 불변하는 값을 표현하기위한 역할, DAO는 DB 접근과 관련한 역할을 수행한다. 비슷하게 보이지만 객체는 상태와 행동을 가진 어떤 것이며, '이 객체들은 서로 소통하며 각자의 역할을 수행한다.' 결국 다 이 셋은 확실하게 구분되는 개념이다. 서비스를 개발한다고 생각해보자, 다음의 두가지 요구 사항이있다. 1) 회원가입할 때 주소 입력. 2) 기숙사 입학생의 가산점 계산을 위해 기숙사와 본가와의 거리를 구하는 객체가 존재(계산의 어려움때문에 '동' 기준으로 획일화) 엔티이에 이 두가지 기능을 구현한다고 생각해보자. 먼저 1번의 경우..