분류 전체보기 (197) 썸네일형 리스트형 [Rest Docs vs Swagger] 1편 : Rest Docs로 API 문서 자동화해보기 우테코 선배들이 캠퍼스에 방문했을 때, 프론트 개발자이신 분에게 질문을 한 적이 있다. - 프로젝트를 할 때 백엔드가 프론트를 위해 가장 중요하게 생각해야할 점이 무엇일까요? 답을 주셨다.- API 문서만 잘 뽑아주면 됩니다. 이렇듯 코드협업에 있어 API 문서화는 프로그래밍의 중요한 부분 중 하나이다.이 글은 개인 학습의 목적으로 작성된 글이다. API 자동화 도구인 Swagger와 RestDocs를 공식문서를 참고해 한번씩 실습해보고,이를 통해 내가 느낀 장단을 비교해보고자 한다. API문서란?웹은 정보를 원하는 클라이언트와 그 정보를 제공하는 서버로 나뉜다. 클라이언트들은 서버에게 자신이 원하는 정보를 요청한다.- 클라이언트1 : 정보를 주세요- 클라이언트2 : give me information-.. [Spring] 유효성 검사 목차 유효성 검사비즈니스 로직이 올바르게 작동하려면 데이터 사전 검증작업이 필요하다. 이것을 유효성 검사라고 한다. 자바에서는 2009년부터 Bean Validation이라는 데이터 유효성 검사 프레임 워크를 제공한다. Bean Validation을 사용한다는 것을 유효성 검사를 위한 로직을 도메인 모델과 묶어 각 계층에 사용하겠다는 의미이다.스프링 부트에서의 유효성 검사스프링 부트에서는 각 계층으로 데이터가 넘어오는 시점에 데이터 검사를 실시한다.스프링 부트 프로젝트는 계층간 데이터 전달을 담당하는 DTO 객체를 활용하기에 일반적으로 DTO에서 유효성 검사가 실시된다.스프링 부트 유효성 검사를 위한 의존성 추가스프링 부트 유효성 검사 기능은 spring-boot-starter-web에 포함되어있다. b.. [Python] 7983. 내일 할거야(골5) / 그리디-정렬 목차1. 문제2. 핵심 아이디어3. 코드4. 배운 점 1. 문제 https://www.acmicpc.net/problem/7983 2. 핵심 아이디어 요약- 끝나는 일자를 기준으로 내림차순 정렬합니다.- 이전 과제 시작일은 시스템 최대값으로 초기화합니다.- 이전 과제 시작일보다 현 과제 마감일이 더 이르다면 현 마감일자를 기준으로 시작일자를 초기화합니다.- 이전 과제 시작일이 현 과제 마감일보다 같거나 더 이르다면 이전 과제 시작일 전날을 기준으로 시작일자를 초기화합니다. 예시)3걸리는 시간마감일자28113310 우선 마감일자를 기준으로 내림차순 정렬합니다. 걸리는 시간마감일자11331028 우선 가장 이른 시작일자 구할 것이기 때문에 시작일자를 최대값으로 초기화합니다.start= sys.maxsi.. [Spring] 웹 요청 - 응답 과정 본 글의 목적은 클라이언트에서 웹 요청을 했을 때Spring famework에서 어떤 과정을 통해 응답을 하는지러프한 흐름을 알아보는 것이다. 즉 다음 그림의 흐름이 무엇인지 이해하는 것이다 이 과정을 위해 먼저 알아봐야할 개념이 있다. DispatcherServlet가 그것이다.1. DispatcherServlet디스패처 서블릿은 서블릿의 일종이다 그럼 서블릿이란 무엇일까? 서블릿의 간편 정의" 클라이언트의 요청을 처리하고 그 결과를 반환하는 프로그램" 예를 들어 다음과 같은 HTTP 요청과 응답이 있다고 가정하자HTTP RequestHTTP Response 다음 예시는 매우 간단하지만 실제로는 여러 사용자가 더 복잡한 요청을 보내올 것이다... [오브젝트] ch5. 책임 할당하기 책임할당은 일종의 트레이드 오프 활동이다. 어떤 할당이 최선인지는 문맥과 상황에 따라 달라진다. 이번장에서 다룰 GRASP 패턴은 응집도, 결합도, 캡슐화 등의 기준에 따라 책임을 할당하고 결과를 트레이드 오프하는 기준을 배울 수 있게 도와줄 것이다. 1. 책임 주도 설계를 향해 책임 중심 설계의 2원칙 1. 데이터보다 행동을 우선하라 2. 협력이라는 문맥 안에서 책임을 결정하라 데이터보다 행동을 우선하라 - 데이터의 행동 = 객체의 책임이다 - 데이터란 책임을 수행하는데 필요한 재료일 뿐이다 - 먼저 책임을 떠올리고, 그 책임에 필요한 데이터를 생각하라 협력이라는 문맥 안에서 책임을 결정하라 - 책임의 품질 == 협력에 적합한 정도 - 메세지를 선택한 후, 그 메세지를 처리할 객체를 선택하라(메세지를 .. [오브젝트] ch4. 설계 품질과 트레이드 오프 / 데이터 중심 설계의 문제점 객체지향 설계의 핵심은 협력, 역할, 책임이다. 협력 : 애플리케이션 기능 구현을 위해 메시지를 주고 받는 객체간의 상호작용 책임 : 객체가 다른 객체와 협력하기 위해 수행하는 행동 역할 : 대체 가능한 책임의 집합 객체 지향 설계란 : 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동 01. 데이터 중심의 영화 예매 시스템 : 자신이 포함하고 있는 데이터 조작에 필요한 오퍼레이션 정의 : 객체의 상태에 초점을 맞춤 : 객체를 독립된 데이터 덩어리로 바라봄 => 객체의 상태에 초점을 맞추면 일어나는 일 - 상태는 내부 구현에 속한다 => 불안정하다 - 인터페이스에 내부 상태가 스며든다 => 캡슐화가 깨진다 - 상태변경이 인터페이스 변경을 초래하여 변경이 전파.. [오브젝트] ch3. 역할, 책임, 협력 객체지향의 본질은 협력하는 객체들의 공동체를 만드는 것이다. 객체지향 설계의 핵심을 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다. 애플리케이션 기능에만 몰두하여, 협력,역할,책임을 고려하지 않은 채 구현에만 초점을 맞추는 것은 유연하지 못한 코드를 낳는 원인이 된다. 1. 협력 영화 예매 시스템 돌아보기 => 객체끼리 영화 예매라는 기능을 구현하기 위해 메시지를 주고받으며 상호작용한다 협력 애플리케이션 기능을 구현하기 위해 수행하는 상호작용 책임 객체가 협력에 참여하기 위해 수행하는 로직 역할 협력 안에서 수행하는 밀접한 책임의 집합 협력 - 메세지 전송 : 객체끼리 협력을 위해 사용하는 유일한 소통수단 - 메시지를 수신한 객체는 메서드를 실행해 요청에 응답 => 외.. [오브젝트] ch2. 객체지향 프로그래밍 1. 영화 예매 시스템 설명 - 영화와 상영의 의미 영화 : 제목, 상영시간, 가격정보처럼 영화가 가진 기본적인 정보 상영 : 상영일자, 시간, 순번 등 => 사용자가 실제로 예매하는 대상은 영화가 아니라 상영 - 할인 조건이란? 할인조건 순서 조건 상영 순번을 이용해 할인 여부 결정 ex) 조조 할인 -매번 첫번째 상영 기간 조건 - 영화 상영 시작시간을 이용해 할인여부 결정 - 요일, 시작시간, 종료시간 ex) 월요일 오전 10시 -오후 1시 기간 동안 할인 혜택 -할인 정책이란? 할인 정책 설명 금액 할인 일정 금액을 할인하는 정책 ex) 800원 할인 비율 할인 일정 비율을 할인하는 정책 ex) 10% 할인 2. 객체지향 프로그래밍을 향해 1) 어떤 클래스가 필요한지 고민하기 전에 어떤 객체가 필.. 이전 1 2 3 4 5 6 7 8 ··· 25 다음