-
REST 도대체 REST가 무엇인가? 이전까지는 그냥 아키텍쳐 스타일, API를 디자인할 때 지켜야하는 원칙들의 모음이라고만 얼핏 알고 있었음 그러니 누가 설명해달라고 했을 때 선뜻 이게 무엇이다라는 말을 하지 못하겠음 그 말은 즉슨 내가 잘 모른다는 사실 그래서 REST에 대해서 나름의 정의를 머리에 가지기 위해 여러 글들을 찾아보게 됨 REST 원칙들이 무엇인지는 알아도, REST가 왜 고안되었는지는 알아도 정작 REST의 REpresentational State Transfer에 대해 관심을 가져보지 않음 REST 알아보기 특정 리소스의 상태 정보를 전달하는 것을 말함 : HTTP...
-
디자인패턴 템플릿 메소드 패턴 전체적인 흐름(로직)은 같으나 일부분 구현 클래스마다 유연성을 부여해주는 문제 해결 방법 : 중복되는 코드를 줄이고 흐름은 일괄적으로 하되 유연성을 부여할 수 있는 방법, 해당 유연성 부여 메소드는 외부 인터페이스로 공개하지않음 public abstract class Car { private boolean isStart; public Car { isStart = false; // 명시적 } public void drive() { if (!isStart) { start(); isStart = true; } System.out.println("붕붕"); } abstract void start(); } public class ManualCar extends Car {...
-
스테이트 패턴 객체의 상태가 변경됨에 따라 다르게 행동할 수 있음 : 상태 자체를 객체화하는 것이라고 이해됨 - 상태를 추상화 시킴, 상태에 따라 할 수 있는 일이 많아지고 조건문이 엄청 세분화 되어질 때 분리시켜서 관리하도록 하는 것이 좋을 듯 상태 별로 같은 행동(코드 중복 제거), 상태 별로 코드 관리(코드 관리에 편함) 볼링 게임 구현할 때 사용했던 패턴이었음 : 상태 자체가 실질적으로 쓰러뜨린 핀(입력된 값)이 유효한 값인지 아닌지 해당 프레임의 상태값이 무엇인지 정할 수 있었음 예제로 되새겨보는...
-
톰캣은 어떻게 동작하나* 갑자기 궁금해져서 여러 자료를 통해서 알아보게 됨 HTTP 메세지 추상화(자바의 abstract와 다른 뜻의 추상화) 객체 생성 요청 처리할 서블릿 찾기 - web.xml(Deployment Descriptor) 참고, 스프링MVC도 초기에 xml을 사용했지만 어노테이션 - 리플렉션 API로 xml 사용을 하지않아도 되도록 함 컨테이너에 요청 - 인스턴스 생성 or 리턴 처리 후 응답 서블릿 컨테이너 서블릿은 자바의 HTTP 처리 추상화 표준 : 서블릿을 구현하여 서버 개발자가 HTTP 요청에 대한 처리 응답을 만들 수 있음, JavaEE 마다 각 서블릿...
-
디자인패턴 평소 전략 패턴을 사용해서 객체 간의 디펜던시를 끊고 개발을 많이 하면서 디자인패턴의 효용성에 대해서 알게 되었음 이전에는 이런 것까지 알아야해? 했지만 지금은 알고 있으면 문제 상황에서 해결할 수 있는 방법 하나쯤을 더 알고 있는 것이 아닐까 라는 생각이 듦 그래서 하루 하나씩 디자인패턴에 대해서 알아보고자 함 : 다 외우겠다는 것은 아니지만 이해는 하고 있자는 취지! 디자인 패턴 종류 전략 패턴 싱글턴 패턴 스테이트 패턴 템플릿 메소드 패턴 옵저버 패턴 커맨드 패턴 데커레이터 패턴 팩토리...