본문 바로가기

공부

(30)
[Web] REST에 대해 간단 정리 REST란 - Representational State Transfer의 약자로, API 작동 방식에 조건을 거는 소프트웨어 아키텍처이다. - REST는 통신을 관리하기 위한 지침으로 만들어졌다. - REST 아키텍처 스타일을 따르는 API를 REST API 라고 한다. - REST 아키텍처를 구현하는 웹서비스를 RESTful API라고 한다. - RESTful API는 시스템끼리 정보를 안전하게 교환하기 위해 사용하는 인터페이스이다. - REST API와 RESTful API의 차이는 REST 규칙을 더 잘지켰을 때 RESTful API 라고 한다. REST 아키텍처 스타일의 원칙 - 균일한 인터페이스 - 무상태 무상태(Stateless)란? 클라이언트-서버 관계에서 서버가 클라이언트의 상태를 보존하지..
[Spring] Spring에서 사용되는 어노테이션 @Controller 이 어노테이션을 사용하면 해당 클래스가 Controller의 역할을 한다고 명시하는 어노테이션이다. @RestController JSON 형태의 데이터를 반환하는 REST API의 엔트포인트로 사용된다. @Service 비즈니스 로직이 구현되는 서비스 계층의 클래스임을 선언하는 어노테이션이다. @Component 개발자가 생성한 클래스를 Bean으로 등록하고 싶을 때 사용한다. @Repository 데이터 접근 계층의 구현체임을 나타내는 어노테이션이다. @Configuration 해당 클래스가 스프링의 configuration 파일임을 나타내는 어노테이션이다. @ComponentScan @Component, @Service, @Repository, @Controller, @Confi..
[Web] HTTP Method HTTP Method는 클라이언트와 서버 사이간 요청과 응답 데이터를 송수신하기 위해 약속해놓은 수단이다. HTTP Method 의 종류 - GET - POST - HEAD - PUT - DELETE - OPTIONS - CONNECT - TRACE GET Method 데이터 요청시 사용 - URL에 쿼리 스트링을 붙여 전송한다. - 캐시됨 (같은 데이터 요청 시 캐시에 저장한 값을 사용해 속도 향상) - 브라우저 기록에 남음 - URL에 정보가 담기기 때문에 민감한 정보를 사용하면 안된다 - 길이 제한이 있다. (URL 길이는 브라우저 마다 다르나 약 2천자까지) - 일반적으로 데이터 요청시에만 사용한다. POST Method 리소스 생성/업데이트시 사용 - 캐시되지 않음 - 브라우저 기록에 남지 않음..
비즈니스 로직? MVC 패턴이란, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. Service 계층에서는 비즈니스 로직을 수행하기 위해 Repository 인스턴스를 사용할 수 있습니다. Spring Integration is guided by the following principles: Components should be loosely coupled for modularity and testability. The framework should enforce separation of concerns between business logic and integration logic. (프..
[JAVA / Spring] Controller, Service, Repository 스프링에서는 일반적으로 MVC(Model - View -Controller) 패턴을 사용한다. MVC패턴을 사용함으로 사용자의 인터페이스로부터 비지니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. 즉, 서로 분리되었기 때문에 각각의 역할에 집중하여 개발할 수 있음을 의미한다. MVC에서의 각각의 역할은 다음과 같다. Model - 어플리케이션이 어떤 일을 해야할지 정의한다. 데이터베이스와 연결하여 사용자에게 입출력하게 될 데이터를 다룬다. View - 사용자들이 시각적으로 보는 부분이다. Controller - 사용자들이 보는 페이지와 데이터처리 중간에서 제어자의 역할을 한다. 그리고 스프링에서는 하나..
[JAVA / Spring] Entity, DTO, VO Entity - 비지니스 로직과 데이터베이스를 연결하는 역할로, 데이터의 저장 및 검색을 위해 사용한다. public class EntityExample { private Long id; private String name; private Integer age; public EntityExample(Long id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public Long getId() { return id; } public String getName() { return name; } public Integer getAge() { return age; } public void setAge(Integer ..
[JAVA / Spring] DDD설계와 SQL중심설계 DDD (Domain - Driven Design) Domain - Driven Design은 도메인 모델을 중심으로 소프트웨어 시스템을 설계하는 방법 중 하나이다. DDD에서의 도메인은 비지니스 Domain이다. 유사한 업무들의 집합을 의미한다. DDD가 지향하는 목표는 낮은 결합도와 높은 응집도이다. 그리고 DDD의 핵심 특징을 3가지로 정리하면, 첫째, 도메인 그자체와 도메인 로직에 초점을 맞춘다. 둘째, 도메인 전문가와 소프트웨어 개발자 상호간 이해할 수 있는 보편적인 언어 사용하기. 마지막으로 소프트웨어 엔티티와 도메인 컨셉을 가까이 일치시키는 것이다. SQL 중심설계 (SQL-Driven Design) 데이터베이스의 스키마를 중심으로 설계하는 방법론이다. SQL-DD는 데이터 모델링과 구현에 ..
[JAVA / Spring] DI, IOC DI : 의존성 주입 (Dependency Injection) - 의존성이란, 하나의 객체가 다른 객체 없이는 역할을 수행할 수 없게 되는 것을 의미한다. 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것을 의미한다. - 주입은 말 그대로 밀어 넣는 것이다. 의존성과 주입을 합하면 '어떤 객체가 필요한 객체를 외부에서 밀어 넣는' 행위를 의미한다. - 빌드 자동화 도구인 maven이나 gradle 도 의존성 주입방식을 사용한다 IoC : 제어의 역전 (Inversion of Control) - 의존성을 관리하는 주체를 바꾸는 것을 의미한다. 객체들의 연결을 역전시켜 의존성을 외부에서 관리하는 것을 의미한다.