본문 바로가기

분류 전체보기66

DTO란 무엇인가, VO와의 비교 오늘은 다음의 고민 때문에 글을 작성하게 되었다. DTO가 정확히 뭘 의미하는 거지? DTO를 꼭 써야하는 이유가 뭐지? DTO랑 VO를 많이 비교하던데, 뭐가 다른거지? DTO란 무엇인가 DTO(Data Transfer Object, 데이터 전송 객체)는 프로세스 간에 데이터를 전달하는 객체이다. 이해를 위해, "리팩토링"의 저자로 유명한 마틴 파울러가 DTO에 대해 어떻게 정의했는지 참고해 보자. P of EAA: Data Transfer Object | P of EAA Catalog | Data Transfer Object An object that carries data between processes in order to reduce the number of method calls. For a .. 2021. 2. 16.
Controller에서 Service에 값을 어떻게 전달할까? 바로 직전에, 스프링 부트에서 MVC 패턴을 구현하는 방법에 대해 간단한 글을 올렸다. 고민: SpringBoot에서의 MVC 패턴 이 글은 다음의 고민에서 시작한 글이다. 내가 스프링 부트로 지금까지 만든 프로젝트들은 MVC 패턴을 잘 따르고 있나? 각각의 계층은 어떤 역할을 수행하고, 어떻게 영향을 주고 받아야 하나? 스 kafcamus.tistory.com 그런데, 스프링 부트를 통해 MVC 패턴으로 기능을 구현하면서 늘 궁금했던 부분이 있다. "컨트롤러(Web Layer)에서 서비스(Service Layer)로 값을 전달할 때, 무엇으로 전달해야 하나?" 1. 지금까지의 개발 지금까지의 진행 이전에는 우아한테크코스에서 학습한 내용 및 책에 있는 내용을 따라하다 보니, 컨트롤러가 뷰의 요청을 DTO.. 2021. 2. 15.
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.
반응형