전체 글 (199) 썸네일형 리스트형 [우테코- Lv3] 아이디어 기획본1 보호되어 있는 글입니다. [Rest Docs vs Swagger] 2편 : Swagger Spring docs적용기 지난 글에서는 Spring Rest Docs를 활용해 Api 문서를 자동화해보았다.하지만 Rest Docs에 비해 상대적으로 오래전부터 Api 문서화에 쓰였던 툴이 있으니 바로 Swagger이다. 이번 글에서는 Swagger로 Api문서를 작성해보면서어떤 점이 Rest Docs에 비해 좋았고, 또 아쉬웠는지 적어보고자 한다. 먼저 Swagger에 대해 이해하기 위해서는 OpenAPI에 대해 이해할 필요가 있다.- OpenApI란?: RESTful API의 표준 명세 작성 방식: RESTful API가 API 그 자체의 표준 규정이라면, : OpenApI Specification(OAS)는 그 API를 어떻게 문서로 명세해야하는지 표준 구조를 명시 OpenAPI를 지켜 문서를 작성한다면- 코드 사용자가 코.. [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. 데이터 중심의 영화 예매 시스템 : 자신이 포함하고 있는 데이터 조작에 필요한 오퍼레이션 정의 : 객체의 상태에 초점을 맞춤 : 객체를 독립된 데이터 덩어리로 바라봄 => 객체의 상태에 초점을 맞추면 일어나는 일 - 상태는 내부 구현에 속한다 => 불안정하다 - 인터페이스에 내부 상태가 스며든다 => 캡슐화가 깨진다 - 상태변경이 인터페이스 변경을 초래하여 변경이 전파.. 이전 1 2 3 4 5 6 7 8 ··· 25 다음 목록 더보기