본문 바로가기

분류 전체보기

(187)
Swagger 사용하기 Swagger 개요 API를 설계, 빌드, 문서화하고 테스트하는 데 사용되는 오픈 소스 프레임워크, 주로 RESTful API를 문서화하고 클라이언트 개발을 용이하게 하는 데 활용됨 Swagger는 API 명세를 정의하기 위한 OpneAPI Specification(OAS)를 사용함. 이 명세는 API 엔드포인트, 매개변수, 응답 형식 등과 같은 API의 구조와 동작을 정의함, Swagger를 사용하면 개발자는 API의 동자 방식을 이해하고 API를 통합하는 데 필요한 정보를 쉽게 찾을 수 잇음 주요 기능 API 문서화 : Swagger를 사용하여 API의 명세를 문서화할 수 있음, 이를 통해 API 사용자들은 API의 기능, 엔드포인트, 매개변수 등에 대한 정보를 쉽게 얻을 수 있음 API 테스트 : ..
객체지향 생활체조 9가지 원칙 객체지향 생활 체조 원칙 소트웍스 앤솔러지(ThoughWorks Anthology) 책에서 나오는 원칙으로 9가지 원칙을 준수하면서 객체지향을 추구할 수 있다고 한다. 1. 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다. 2. else 예약어를 쓰지 않는다. 3. 모든 원시 값과 문자열을 포장한다. 4. 한 줄에 점을 하나만 찍는다 5. 줄여 쓰지 않는다(축약 금지). 6. 모든 엔티티(Entity)를 작게 유지한다. 7. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다. 8. 일급 컬렉션을 쓴다. 9. Getter / Setter / 프로퍼티를 쓰지 않는다. 1. 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다. 코드에 너무 많은 들여쓰기가 있다면, 가독성과 유지 관리 측..
Postman API 테스트, Intellij Git Conflict 해결 Postman API Test 준비 사항 Postman Workspaces API 설계(API 명세서 작성) Spring web server-client 파일(intellij 사용) 순서 Workspaces에 Collections 생성 - 이름 설정(프로젝트 이름) 구현 기능 별 API 설계(Add request) HTTP 메서드 타입 결정, Rquest 이름 - 구현 기능, API 주소 입력 API 주소(또는 엔드 포인트) 입력 Input data 있을 경우 변수 명과 입력 값 설정 request save API 기능 구현 후 테스트 실시 API주소 및 데이터 변경 사항 있을 시 Postman에 반영 input 있을 경우 입력 후 send(Ctrl+enter) Response, Server log 확인..
Spring - JPA Entity 연관 관계 JPA Entity 연관 관계 연관 관계 정의 규칙 방향: 단방향, 양방향(객체 참조) 연관 관계의 주인: 양방향일 때, 연관 관계에서 관리 주체 다중성: 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 단방향, 양방향 데이터베이스는 외래 키 하나로 양 쪽 테이블 조인 가능(따라서 DB는 방향을 나눌 필요가 없음). 객체는 참조용 필드가 있는 객체만 다른 객체를 참조하는 것이 가능함. 두 객체 사이에 하나의 객체만 참조용 필드를 가지고 참조하면 단방향 관계, 두 객체 모두 각각 참조용 필드를 가지고 참조하면 양방향 관계. 엄밀히 따지면 양방향 관계는 없고 두 객체가 단방향 참조를 각각 가져 양방ㅇ향 관계처럼 사용하고 말하는 것 JPA를 사용해 DB와 패러다임을 맞추기 위해 객체는 연..
빌터 패턴 Builder Pattern(빌더 패턴) 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴. 생성자에 들어갈 매개 변수를 메서드로 하나하나 받아들이고 마지막에 통합 빌드해서 객체를 생성하는 방식 탄생 배경 점층적 생성자 패턴(Telescoping Constructor Pattern)은 필수 매개변수와 함께 선택 매개변수를 0개, 1개... 받는 형태로, 다양한 매개변수를 입력받아 인스턴스를 생성하고 싶을 때 사용하던 생성자를 오버로딩하는 방식 문제점 클래스 인스턴스 필드들이 많아질 수록 생성자에 들어갈 인자의 수가 늘어나 몇 번째 인자가 어떤 필드였는지 햇갈릴 경우가 발생 생성자로만 필드를 선택적으로 생략할 수 있는 방법이 없음 타입이 다양할 수록 생성자 메서드 ..
Spring - Bean, 로그인/회원가입, Security, Validation Bean Bean 수동 등록 @Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록 일반적으로 @Component를 사용하여 Bean을 자동으로 등록하는 것이 좋음 비즈니스 로직과 관련된 클래스들은 그 수가 많기 때문에 @Controller, @Service와 같은 애너테이션들을 사용해서 Bean으로 등록하고 관리하면 개발 생산성에 유리 수동 등록 사용할 때 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋음 공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가 적이고 공통적인 기능들을 기술 지원 Bean이라 부르고 수동 등록함 비즈니스 로직 Bean 보다는 그 수가 적기 때문에 수동으로 등록하기 부담스..
WIL - 3 Fact : 이번주 있었던 일, 내가 한 일 월 : 항해 프로그래밍 주차 테스트, 자바 - 프로세스, 쓰레드, 모던 자바 학습, SOLID 구조 학습 화 : Intellij github 연동, Spring 프로젝트 세팅, HTTP, MVC 패턴, CRUD, JDBC 학습 수 : 3 Layer Architecture, IoC & DI, Bean, JPA, Entity, Spring Data JPA, Query Method 학습 목 : 1주차 과제 프로젝트 세팅(Intellij 세팅, USD, API 명세서, ERD, Private Git Repository git clone 등) 및 CRUD 구현 금 : 관심사 분리, CRUD 기능 테스트, Update, Delete 시 비밀번호 매칭 기능 추가 프로젝트 ..
RESTful API, 관심사 분리, @Setter 지양 RESTful API RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스 RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따름 API(Application Programming Interface) 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의, 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이 클라이언트 웹에서 정보에 액세스하려는 사용자, 클라이언트는 API를 사용하는 사람이거나 소프트웨어 시스템일 수 있음 리소스 리소스는 다양한 애플리케이션이 클라이언트에게 제공하는 정보, 리소스는 이미지,..