목록Web_App (20)
우노
컨트롤러(Controller)와 서비스(Service)의 개념Spring Framework에서 컨트롤러(Controller)와 서비스(Service)는 애플리케이션 아키텍처의 중요한 부분으로, 각각의 역할과 책임이 명확히 나뉘어 있습니다.이 둘은 Spring MVC(Model-View-Controller) 패턴의 일부로, 애플리케이션의 데이터 흐름을 구조화하고 유지보수를 용이하게 합니다.컨트롤러(Controller)컨트롤러는 클라이언트의 요청을 받아 응답을 반환하는 역할을 합니다. 주로 RESTful API 개발에서 사용됩니다.역할사용자가 보낸 요청(Request)을 받고, 적절한 서비스를 호출하여 처리 결과를 반환(Response).URL 경로를 매핑하고 HTTP 요청을 처리.데이터를 직접 처리하지 않..
@SqlResultSetMapping@SqlResultSetMapping은 네이티브 쿼리의 결과를 JPA에서 사용할 수 있는 형식으로 매핑하기 위해 사용하는 어노테이션입니다.쉽게 말하면, 데이터베이스에서 가져온 데이터를 Entity나 DTO로 변환해주는 설계도라고 보면 됩니다.왜 필요한가요?기본적으로 JPA는 쿼리 결과를 자동으로 매핑해 주지만,복잡한 쿼리나 특정 구조의 데이터를 반환해야 할 경우 직접 매핑을 설정해야 합니다.@SqlResultSetMapping을 사용하면 이런 매핑 과정을 명확하고 간단하게 정의할 수 있습니다.어떻게 사용하나요?데이터베이스의 결과를 Entity로 매핑 (EntityResult)사용 예시 @SqlResultSetMapping( name = "UserMapping..
구성 요소 요약JPA (Java Persistence API) ├── ORM (Object-Relational Mapping) │ └── Entity ├── Spring Data JPA │ └── Repository │ ├── JpaRepository │ └── CrudRepositoryJPA : ORM을 Java에서 쉽게 사용할 수 있도록 정의한 표준 API입니다.ORM : 객체와 데이터베이스 간 매핑을 처리하는 기술입니다.Entity : 데이터베이스의 테이블과 매핑되는 자바 객체입니다.Spring Data JPA : JPA를 쉽게 사용할 수 있도록 도와주는 Spring 모듈입니다.Repository : 데이터베이스에 접근하기 위한 인터페이스..
@Entity목적JPA의 Entity 클래스는 데이터베이스 테이블에 매핑되는 객체입니다.데이터베이스 테이블과 자바 객체 간의 매핑을 담당합니다.어노테이션@Entity: 해당 클래스가 데이터베이스 테이블과 매핑된다는 것을 명시합니다.@Table(name = "table_name"): 데이터베이스 테이블 이름을 지정할 수 있습니다.@Id: 해당 필드가 기본 키(primary key)임을 지정합니다.@GeneratedValue: 기본 키 값의 자동 생성 전략을 지정합니다.예: GenerationType.IDENTITY@Column(name = "column_name"): 필드와 데이터베이스 컬럼 간의 매핑을 지정합니다.특징Entity 클래스는 데이터베이스 작업을 직접 수행하지 않고, JPA에서 데이터를 저장하..
DTO와 Entity의 관계DTO(Data Transfer Object)와 Entity는 역할과 사용 목적이 다르며,이로 인해 서로 명확히 구분해서 사용됩니다.DTO와 Entity의 차이항목DTOEntity역할데이터 전송에 사용되는 객체데이터베이스와 직접 연결된 객체목적클라이언트-서버 간 데이터 교환 간소화데이터베이스 테이블의 구조를 반영속성필요한 데이터만 포함, 가공된 데이터 가능데이터베이스의 컬럼에 직접 매핑되는 필드 포함위치주로 API 요청/응답에서 사용됨서비스 내부에서 사용됨종속성독립적, 데이터베이스와 무관데이터베이스와 밀접하게 연관DTO → Entity필수는 아닙니다.단순 조회만 수행하는 경우에는 DTO를 Entity로 변환할 필요가 없습니다.하지만, DTO 데이터를 기반으로 데이터베이스 저장,..
들어가기 앞서,Spring의 @Scheduled 작업은 기본적으로 싱글 스레드에서 실행됩니다.두 개 이상의 @Scheduled 작업이 정의되어 있어도, 병렬 스케줄링 설정을 하지 않으면 스프링의 기본 설정으로 인해 동시에 실행되지 않고 순차적으로 실행됩니다.해당 개념을 모르고 무작정 코드부터 짰다가 병렬 쓰레드로 동작하지 않아, 원인을 찾느라 시간을 많이 썼습니다.. ㅜㅜ@Scheduled 란?@Scheduled는 Spring 프레임워크에서 제공하는 스케줄링 작업을 정의하는 어노테이션입니다.특정 메서드를 주기적으로 실행하거나 예약된 시간에 실행할 수 있도록 설정하는 데 사용됩니다.Spring Scheduling 기능을 활성화하면, @Scheduled 어노테이션이 붙은 메서드가 자동으로 실행됩니다.주요 기..
들어가기 앞서, .npmrc 파일은 Node.js 프로젝트에서 npm (Node Package Manager) 구성을 저장하는 설정 파일입니다. 이 파일을 사용하여 프로젝트별로 npm 관련 설정을 구성할 수 있습니다. 해당 포스팅에선 사용자 지정 패키지 스코프와 인증 정보를 설정하는 방법에 대해서 다뤄보겠습니다. .npmrc 사용자 지정 패키지 스코프와 인증 정보 설정 예제 @yourscope:registry=https://registry.npmjs.org/ //registry.npmjs.org/:_authToken=YOUR_AUTH_TOKEN @yourscope:registry=https://registry.npmjs.org/ 사용자 지정 스코프(@yourscope)가 npm 기본 레지스트리에서 호스팅..
SOP(Same Origin Policy)란? SOP는 동일한 출처로부터의 리소스 접근만 허용하는 웹 보안 정책입니다. 웹 애플리케이션과 API 서버가 같은 서버에 있으면 동일 출처, 서로 다른 서버에 있으면 다른 출처라고 이해하시면 이해가 쉽습니다. 이해를 위해, 브라우저 스크립트(예: JavaScript)를 통해 서버 리소스에 접근하는 예를 들어보겠습니다. 당신은 은행 웹 사이트에 로그인하여 개인 정보를 입력하고 있습니다. 이때 당신의 개인 정보를 노리는 다른 악성 웹 페이지가 열려 있는 상태라면, 해당 악성 웹 페이지는 본인들의 악성 스크립트를 실행하여, 은행 웹 사이트로부터 당신의 개인 정보를 훔칠 수 있습니다. 따라서, SOP를 사용하지 않는다면, 다른 출처로부터의 예상치 못한 리소스 접근을 통..
토큰 기반 인증이란? 토큰 기반 인증(Token-based authentication)은 웹 애플리케이션에서 사용자 인증을 처리하기 위한 인증 방식 중 하나입니다. 이 방식은 세션 기반 인증과는 다르게 서버에 사용자의 상태를 저장하지 않고, 토큰을 사용하여 인증을 수행합니다. 토큰 기반 인증의 주요 아이디어는, 클라이언트가 인증을 위해 사용자의 자격 증명(예: 로그인 정보)을 제공하면, 서버는 그 정보를 검증한 후에 클라이언트에게 토큰을 발급합니다. 이 토큰은 클라이언트에 저장되고, 일반적으로 HTTP 요청의 헤더에 포함되어 서버로 전송됩니다. 클라이언트가 서버에 요청을 보낼 때마다, 헤더에 포함된 토큰을 서버가 검증하고 인증을 확인합니다. 이를 통해 클라이언트는 인증된 상태를 유지하며, 서버는 클라이언..
Nginx proxy_pass 시 cookie 전달 location / { proxy_pass http://backend; add_header Set-Cookie "my_cookie=my_value; Path=/; HttpOnly; Secure"; } HttpOnly 브라우저에서 해당 쿠키로 접근할 수 없습니다. Secure HTTPS가 아닌 통신에서는 쿠키를 전송하지 않습니다.