본문 바로가기
728x90

전체 글144

Spring 프로젝트 API 공통 response 처리 과정 개발 기록 들어가며... 개발하는 서버가 요청에 대한 응답으로 바로 view를 브라우저로 전달하는 경우에는 다음과 같이 thymeleaf 같은 템플릿 엔진을 이용해 view를 전달하면 그만입니다. 하지만, HTTP API(REST API)를 개발하는 경우 규격에 맞는 응답 처리를 구현해야 한다는 것을 짧은 실무 개발 경험으로 배우게 되었습니다. 오늘은 사이드 프로젝트에서 API 개발 과정에서 response 처리의 일부 과정을 공통으로 처리하도록 개발하는 과정을 정리해 볼까 합니다. HttpEntity, ResponseEntity를 이용하는 방식과 그렇지 않을 때의 차이점 @RestController 어노테이션을 이용해 controller를 구현하는 경우 @Controller + @ResponseBody 조합을 이.. 2023. 9. 13.
[실전 자바 소프트웨어 개발] 5. 비즈니스 규칙 엔진 이번 장에서는 TDD (Test Driven Development)를 주로 설명합니다. 따라서 실패하는 Test code를 먼저 작성하며, 이를 이용해 전체 프로그램의 구조를 파악한 뒤 세부 구현을 해서 test code가 성공하도록 하는 과정을 반복해서 프로젝트를 완성하는 순서를 따르고 있습니다. 비즈니스 규칙 엔진 프로젝트 요구 사항 전체 구성원들이 비즈니스 규칙을 원하는대로 추가하고 관리하기 위한 프로젝트이며, 다으모가 같은 기능을 제공하려 한다. 팩트: 규칙이 확인할 수 있는 정보 액션: 수행하려는 동작 조건: 액션을 언제 발생시킬지 지정 규칙: 실행하려는 비즈니스 규칙을 지정, 보통 팩트, 액션, 조건을 한 그룹으로 묶어 규칙으로 만듦. 테스트 주도 개발 (TDD) TDD의 철학은 테스트 코드를.. 2023. 9. 4.
[실전 자바 소프트웨어 개발] 4. 문서 관리 시스템 이번 장에서는 다양한 소프트웨어 개발 원칙을 다루며, 이와 함께 문서 관리 시스템을 구현합니다. 문서 관리 시스템을 구현하며, 특히 클래스 간의 상속 관계를 고려하며 인터페이스를 어떻게 구현하는지를 신경 쓰고 LSP(Liscov Substitution Principle)에 대해서 자세히 다룹니다. 이번 장은 뭔가 책에서 모든 코드를 자세히 설명하기보다는 개발을 이어 가며 해당 방식을 선택한 이유를 설명하는 데에 더 집중하는 것 같습니다. 그렇기에 책만 따라가서는 전체 코드를 파악하기 어려워 repository를 필수적으로 참고해야 할 것 같습니다. (갈수록 일부 코드는 언급도 안 되는 것 같습니다..) https://github.com/Iteratr-Learning/Real-World-Software-D.. 2023. 8. 31.
BOJ - 2302번 극장 좌석 문제 (C++) dp를 이용한 풀이 회고 들어가면서.. 문제 설명을 처음 읽고, 전체 문제를 작은 단위의 문제로 쪼갠 뒤 그 결과를 조합해서 전체 문제를 해결해야겠다는 느낌은 받을 수 있었으나 아이디어가 명확하게 떠오르지는 않았습니다. https://www.acmicpc.net/problem/2302 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net 그렇게 몇 번 풀이를 미루다가 오늘 이 문제를 다시 풀게 되었습니다. 다른 방식의 풀이를 보아하니 fibonacci 방식으로 수열이 이어지고, 이를 곱하는 결과로 계산을 한 풀이가 대부분이었는데, 저는 다른 방식으로 .. 2023. 8. 30.
[실전 자바 소프트웨어 개발] 3. 입출금 내역 분석기 확장판 이번 글은 지난 2장 정리글에 이어서 3장을 공부하고 기록합니다. [2장 정리글 링크] [실전 자바 소프트웨어 개발] 2. 입출금 내역 분석기 들어가면서.. 이 글은 실전 자바 소프트웨어 개발(Real-World Software Development) 책을 읽으며 공부한 점을 기록하기 위해 작성합니다. 이번 2장에서는 입출금 내역 분석기라는 소프트웨어를 개발하고, kkkdh.tistory.com 이번 장에서는 2장에서 구현한 입출금 내역 분석기에 추가 기능을 구현하고, 이 과정에서 OCP(open/closed principle), 개방 폐쇄 원칙을 배웁니다. 또한 인터페이스를 사용하는 일반적인 기준과 maven, gradle과 같은 검증된 빌드 도구를 활용해 자바 프로젝트를 시스템적(systemicall.. 2023. 8. 29.
[실전 자바 소프트웨어 개발] 2. 입출금 내역 분석기 들어가면서.. 이 글은 실전 자바 소프트웨어 개발(Real-World Software Development) 책을 읽으며 공부한 점을 기록하기 위해 작성합니다. 이번 2장에서는 입출금 내역 분석기라는 소프트웨어를 개발하고, 주어진 요구사항에 맞춰 개발하는 과정에서 단일 책임 원칙(SRP, Single Responsibility Principle)의 개념을 다루고 있습니다. 다음 repository에서 실습을 진행합니다. https://github.com/rkdehdgns1230/Real-World-Software-Development GitHub - rkdehdgns1230/Real-World-Software-Development: "Real World Software-Development" 실습 "Re.. 2023. 8. 28.
728x90