본문 바로가기

프로그래밍49

SpringBoot에서의 MVC 패턴 이 글은 다음의 고민에서 시작한 글이다. 내가 스프링 부트로 지금까지 만든 프로젝트들은 MVC 패턴을 잘 따르고 있나? 각각의 계층은 어떤 역할을 수행하고, 어떻게 영향을 주고받아야 하나? 스프링 부트를 이용해 다양한 프로젝트를 만들어 보면서, MVC 패턴을 사용했다. MVC 패턴이 어떤 것인지 더 자세히 알고 싶다면, 위키피디아 링크 역시 참고하길 바란다. 모델-뷰-컨트롤러 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 모델, 뷰, 컨트롤러의 관계를 묘사하는 간단한 다이어그램. 웹 애플리케이션에서 일반적인 MVC 구성요소 다이어그램 모델-뷰-컨트롤러(Model–View–Controller, MVC) ko.wikipedia.org MVC 패턴의 구조는 Model, View, Con.. 2021. 2. 15.
5. Request DTO의 Validation / 예외 테스트와 ParameterizedTest 오늘은 저번 글에 이어서, DTO 및 비즈니스 로직의 검증과 그 테스트에 대해 다뤄보려고 한다. 4. TDD 개발 : Read/delete 기능 만들어보기 kafcamus.tistory.com/7 이전 포스팅에 이어서, 오늘은 남은 기능들을 구현해 보는 시간을 가지려구 한다. 3. TDD 개발 : Create 기능 만들어보기 최근 프로젝트가 잠시 부진했다. 아무래도 아직은 본격적 kafcamus.tistory.com 이 부분은 나도 학습을 하면서 함께 포스팅하는 부분이라, 일반적인 관습과 다르거나 아예 틀린 코드가 있을 수 있다. 만약 발견하신다면 지적을 부탁드린다. 이전 포스팅에서, 도서에 대해 요청을 보내 생성/목록 조회/삭제가 가능한 서버를 만들어 보았다. 그러나 저번 프로젝트는 너무 허술했던 터라.. 2021. 2. 9.
N Queen 문제의 최적화 방법 N-Queen 문제는 재귀를 이용한 완전탐색 문제의 정석 중 하나이다. ko.wikipedia.org/wiki/%EC%97%AC%EB%8D%9F_%ED%80%B8_%EB%AC%B8%EC%A0%9C 여덟 퀸 문제 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 8 퀸 문제는 8x8크기의 체스판에 퀸을 8개 배치하는 문제이다. 1848년 막스 베첼이 처음 제안하였다. 이 문제를 일반화하면 NxN 크기의 체스판에 퀸을 N개 배치하는 ko.wikipedia.org 위키피디아에도 항목이 있는 것은 글을 작성하면서 처음 알았는데. 어쨋든 대충 저런 문제이다. 각 퀸이 서로를 잡지 않으면서, 판에 최대한 많이 둘 수 있는 경우를 구하는 문제라는 것. 우리에게 정사각형 모양 체스판의 크기 N(1=.. 2021. 2. 5.
4. TDD 개발 : Read/delete 기능 만들어보기 kafcamus.tistory.com/7 이전 포스팅에 이어서, 오늘은 남은 기능들을 구현해 보는 시간을 가지려구 한다. 3. TDD 개발 : Create 기능 만들어보기 최근 프로젝트가 잠시 부진했다. 아무래도 아직은 본격적인 개발보다는 이전 학습 내용을 정리하면서 진행하고 있는지라 일정에 맞춰 기능이 하나씩 나오는 재미가 없어서 그런가보다. 이번주 kafcamus.tistory.com 어차피 도메인 설계도 아직 완성되지 않았고... 현재 만드는 내용은 실제 프로젝트에는 반영되지 않는 부분이다. 지금 진행중인 내용의 목적은, MVC 구조에서 TDD로 어떻게 개발하는지, 어떻게 테스트하는지 이전의 기억을 불러오고 나만의 기준을 정립하기 위해서이다. 그래서 오늘 리스트로 값을 전달받는 전체조회 기능, 삭제.. 2021. 2. 5.
3. TDD 개발 : Create 기능 만들어보기 최근 프로젝트가 잠시 부진했다. 아무래도 아직은 본격적인 개발보다는 이전 학습 내용을 정리하면서 진행하고 있는지라 일정에 맞춰 기능이 하나씩 나오는 재미가 없어서 그런가보다. 이번주 주중으로 ERD 설계를 해볼 생각인데, 이에 대해 추후 포스팅해보겠다. 설계가 나온 이후부터는 기능 구현에 대한 포스팅이 주가 될 것으로 보인다. ERD가 확정되기 전에, 먼저 간단한 도메인을 만들어서 MVC 구조에 대한 틀을 잡아보려고 한다. 간만에 개발하는 만큼, 학습 목적으로 진행하려고 한다. 오늘은 도메인 생성 기능을 TDD로 구현하는 것을 목표로 한다. 다음에는 조회와 삭제에 대한 컨트롤러/서비스 기능 구현, 그리고 validator 구현까지 진행해 보려고 한다. 먼저, 도메인을 작성해 본다. package com... 2021. 2. 2.
2. Lombok 사용과 고민 저번 게시물에서는 프로젝트 컨벤션을 정하는 과정에 대해 이야기했다. 그 사이 깃헙 저장소도 만들었고, 저장소를 클론해 프로젝트 생성도 마무리했다. 원래는 Spring Initializer를 통한 프로젝트 생성에 대해 포스팅 해볼까도 싶었는데, 다시 생각해보니 그렇게 어려움을 겪은 적도 없고 나중에 수정하기도 쉬운 부분이라... 대신 이전 프로젝트에서 참 유용하게 사용했던, 하지만 조금씩 고민도 있었던 Lombok에 대해 이야기해보려 한다. Lombok 롬복(링크)은 자바 개발자들의 필수 라이브러리(라고 많이 알려진)이자, 코드의 가독성과 양을 획기적으로 개선해 주는 라이브러리다. 롬복을 사용할 경우 우리가 Java로 객체를 만들면서 사용하는 다양한 형식의 생성자, Getter, Setter, toStri.. 2021. 1. 31.
반응형