본문 바로가기
728x90

전체 글158

BOJ - 23291번 어항 정리 문제 문제 https://www.acmicpc.net/problem/23291 23291번: 어항 정리 마법사 상어는 그동안 배운 마법을 이용해 어항을 정리하려고 한다. 어항은 정육면체 모양이고, 한 변의 길이는 모두 1이다. 상어가 가지고 있는 어항은 N개이고, 가장 처음에 어항은 일렬로 바 www.acmicpc.net 이번 문제는 백준 사이트의 삼성 SW 역량 테스트 기출문제집에 있는 문제로, 구현 유형의 문제입니다. https://www.acmicpc.net/workbook/view/1152 문제집: 삼성 SW 역량 테스트 기출 문제 (baekjoon) www.acmicpc.net 저는 어항을 접어서 시뮬레이션하는 과정이 막혀, 다른 분의 풀이를 참고해서 풀이하게 되었습니다. 풀이 과정 참고 https:.. 2023. 10. 6.
Spring Boot 2.7.7 버전 프로젝트 swagger-ui를 이용한 API documentation 적용기 들어가며.. 개발 공부를 틈틈이 하고자, 이전에 구현했던 프로젝트를 리팩터링 하고 새로운 기능을 구현하거나 기술을 적용하는 과정을 최근 들어 진행하고 있습니다. 오늘은 그 중에서 swagger를 이용해 API 문서화를 하면, 협업 과정에서도 좋고, 별도로 문서를 따로 만들 필요가 없을 것 같다는 생각이 들어서 적용했고, 그 과정을 기록하려 합니다. 프로젝트 개발 환경 개발 환경 버전 Java 1.11 Spring Boot 2.7.7 Build 관리 도구 Gradle Swagger 3 springdoc openapi ui 1.6.11 spring fox vs spring doc 선택 과정과 이유 🐾 우선 swagger를 Spring project에서 사용하기 위해서 크게 두 가지 선택지가 있었습니다. sp.. 2023. 9. 20.
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.
728x90