전체 글19 [Spring] HttpMessageConverter Spring에서는 HTTP 메시지 컨버터를 이용해 XML, JSON과 같은 형식의 RequestBody 혹은 ResponseBody를 다룰수 있게 됩니다. 대표적으로 HTTP 메시지 컨버터는 @RequestBody, @ResponseBody 등을 사용할때 동작하게 됩니다. @RequestBody 사용 예시 @PostMapping("/hello") public ResponseEntity create(@RequestBody HelloDto helloDto) { helloService.doSomething(helloDto); return new ResponseEntity(HttpStatus.OK); } @ResponseBody 사용 예시 @ResponseBody @GetMapping("/hello/{id}").. 2022. 6. 10. Spring에서의 Servlet Servlet(서블릿) Servlet이란? 클라이언트의 요청(request)를 처리하고 이에 따라 처리 결과를 응답(response)을 보내주는 자바 웹 프로그래밍 기술입니다. Servlet에서의 service() 메소드 HTTP 요청을 통해 매핑된 URL이 호출되면 Servlet Contatiner는 다음 메서드를 실행합니다. protected void service(HttpServletRequest request, HttpServletResponse response) 해당 메소드 실행을 통해 로직을 수행합니다. Servlet 동작 과정 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보냅니다. Servlet Container는 HttpServletRequest, .. 2022. 5. 30. [객체지향의 사실과 오해] Chapter3 - 타입과 추상화 03 타입과 추상화 개, 고양이, 사자, 호랑이 → 동물 추상화 추상화란 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이뤄짐 첫 번째는 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째는 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 1. 추상화의 목적 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화 하는것이다. ex) 지하철 노선도 (사실적인 지형과 축적 무시, 역사이의 연결성에만 집중) 2. 앨리스 이야기에서의 추상화 앨리스 이야기에 등장하는 정원사, 병사, 신하.. 2022. 5. 27. [객체지향의 사실과 오해] Chapter2 - 이상한 나라의 객체 객체, 그리고 소프트웨어 나라 객체의 다양한 특성을 효과적으로 설명하기 위해서는 객체를 상태(state), 행동(behavior), 식별자(identity)를 지닌 실체로 보이는 것이 가장 효과적이다. 상태와 행동 객체의 상태를 변경시키는 것은 객체의 행동이다 객체의 상태를 변경할지 여부는 객체 스스로 결정한다 협력과 행동 객체가 다른 객체와 협력하는 유일한 방법은 다른 객체에게 요청을 보내는 것이다. 객체가 다른 객체와 메세지를 통해서만 의사소통할 수 있다. 메세지를 통해서만 의사소통할 수 있다는것은 우리가 getter, setter들을 지양하고 의미있는 메세지 자체로 객체간 협력할 수 있게 메소드를 구현하는걸 말하지 않을까 생각한다. 객체지향의 모든 세계에서 모든 객체는 자신의 상태를 스스로 관리하는.. 2022. 5. 25. [객체지향의 사실과 오해] Chapter 1 - 협력하는 객체들의 공동체 커피 공화국의 아침 역할 손님: 커피를 주문 캐시어: 주문을 받음 바리스타: 커피를 제조 책임 손님: 카페인을 채우기 위해 커피를 주문할 책임 캐시어: 주문된 커피를 바리스타에게 제조하라고 전달하는 책임 바리스타: 주문된 커피를 제조하는 책임 협력 커피 주문을 위해 손님, 캐시어, 바리스타가 협력한다. class CofferOrderFactory{ Customer customer = new Customer(); Cashier cashier = new Cashier(); Barista barista = new Barista(); String selectedMenu = "ice americano"; customer.orderCoffee(selectedMenu, cashier); cashier.commandC.. 2022. 5. 24. AOP(Aspect Oriented Programming) AOP란? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불립니다. 관점 지향이라고 하니 의미가 크게 와닿지 않을 수 있는데요, 기능을 핵심 비즈니스 기능과 공통기능으로 구분하고, 모든 비즈니스 로직에 들어가는 공통기능의 코드를 개발자의 코드 밖에서 필요한 시점에 적용하는 프로그래밍 방식이라고 볼 수 있습니다. 아래의 예시 코드를 통해 더 자세히 알아보겠습니다. @Slf4j @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; public long join(UsercreateRequest userCreateRequest) .. 2022. 5. 23. 이전 1 2 3 4 다음