전체 글 149

[Springboot] DAO, DTO, VO

DAO DB의 data에 접근하기 위한 객체. DB에 접근 하기 위한 로직 & 비즈니스 로직을 분리하기 위해 사용한다. 직접 DB에 접근하여 data를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다. DTO 계층 간 데이터 교환을 하기 위해 사용하는 객체. 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스) VO VO(Value Object) 값 오브젝트로써 값을 위해 쓰임 read-Only DTO와 유사하지만 VO는 getter 기능만 존재한다 DTO와 VO 차이점 DTO는 인스턴스 개념이고 VO는 리터럴 값 개념이다. VO는 값들에 대해 Read-Only를 보장해줘야 존재의 신뢰성이 확보되지만 DTO의 경우는 단지 데이터를 담는 그릇의 역할일 뿐 값은 그저 ..

Springboot 2023.07.18

[WIL] week 5

Fact: 학습내용 [Springboot] CORS란? CORS(Cross Origin Resource Sharing): 도메인이 다른 자원에 리소스를 요청할 때 접근 권한을 부여하는 메커니즘 친구의 물건을 쓰려면 친구가 제한하는 규약안에서 사용해야 하듯, 다른 도메인의 자원을 developerhun.tistory.com [Spring] Handler, @ExceptionHandler, @ControllerAdvice Handler 클라이언트로부터의 요청을 처리하고, 해당 요청에 대한 적절한 작업을 수행하는 역할 @Controller와 @RestController를 사용하여 정의한다. 핸들러는 특정 URL에 매핑되고 해당 URL로 요청이 들어 developerhun.tistory.com [Spring] ..

TIL, WIL 2023.07.16

[Springboot] CORS란?

CORS(Cross Origin Resource Sharing): 도메인이 다른 자원에 리소스를 요청할 때 접근 권한을 부여하는 메커니즘 친구의 물건을 쓰려면 친구가 제한하는 규약안에서 사용해야 하듯, 다른 도메인의 자원을 쓰려면 자원의 주인이 허락한 규약을 지켜야 하는 것이고 이러한 규약을 표준화한 것이 CORS이 여기서 말하는 도메인이란 Resource를 의미하며 프로토콜, 호스트, 포트를 의미한다. (ex. http : 프로토콜, localhost : 호스트, 8080: 포트) 프로토콜 - http와 https 도메인 - domain.com, other-domain.com 포트 번호 - 8080, 7070 위의 3개가 같아야 같은 출처이다. SOP와 CORS 📌 SOP와 CORS에 대해서 설명해주세..

Springboot 2023.07.15

[CS] 스케줄링

스케줄링: 프로세스 실행 시 필요한 여러 자원을 해당 프로세스에게 할당하는 것 스케줄링의 종류 장기 스케줄링 : 어떤 프로세스가 시스템 자원을 할당받을지 결정 후 준비상태 큐로 보냄 작업 스케줄링, 상위 스케줄링이라고도 하며 작업 스케줄러에 의해 수행 중기 스케줄링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업 CPU를 할당받으려는 프로세스들이 많을 시 일시보류 시킨 후 활성화해서 부하 조절 단기 스케줄링 : CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업 프로세서 스케줄링, 하위 스케줄링 이라고도 한다 프로세서 스케줄링 및 문맥교환은 프로세서 스케줄러에 의해 수행됨 문맥교환(Context Switching) : OS에 의해 CPU가 할당되는 프로세스 변경 시 실행 프로세스에 CPU..

CS 2023.07.15

[CS] 병행(Concurrency)과 병렬(Parallel)

공부를 하던 도중, 병행과 병렬의 개념이 헷갈려서 정리해봤다. 병행(Concurrency) 병렬(Parallel) 동시에 실행되는 것 같이 보이는 것 실제로 동시에 여러 작업이 처리되는 것 싱글 코어에서 멀티 쓰레드(Multi thread)를 동작 시키는 방식 멀티 코어에서 멀티 쓰레드(Multi thread)를 동작시키는 방식 한번에 많은 것을 처리 한번에 많은 일을 처리 논리적인 개념 물리적인 개념 병행(Concurrency) 단일 프로세서 또는 단일 코어에서 여러 작업이 시분할 방식으로 조금씩 번갈아가며 실행되는 방식이다. 여러 작업을 번갈아 가며 실행되면서 자원을 최대한 활용하여 작업을 빠르게 완료하는 것이 목표이다. 작업들이 서로에게 영향을 주지 않거나 의존성이 적을 경우 성능 향상을 노릴 수 ..

CS 2023.07.12

[Spring] Spring AOP(Aspect-Oriented Programming)

Spring AOP는 관점 지향 프로그래밍이라고도 불리며, 애플리케이션의 핵심 비즈니스 로직과는 별개로 동작해야 하는 동작을 모듈화하고 분리할 수 있도록 도와준다. @Aspect을 SpringAOP로 설정하려는 class에 작성한다. 사용목적 1. 로깅(logging): 메서드 실행 시간, 매개변수 값, 리턴 값 등을 기록할 수 있다 2. 보안(security): 인증, 권한 부여 등의 보안 관련 작업을 수행할 수 있다 3. 트랜잭션(transaction): 데이터베이스 트랜잭션 관련 작업을 처리할 수 있다 4. 캐싱(caching): 메서드의 결과를 캐시 하여 성능을 향상할 수 있다. 5. 예외 처리(exception handling): 예외 발생 시 특정 작업을 수행 및 예외를 변환할 수 있다. 구성..

CS 2023.07.11

[Springboot] Handler, @ExceptionHandler, @ControllerAdvice

Handler 클라이언트로부터의 요청을 처리하고, 해당 요청에 대한 적절한 작업을 수행하는 역할 @Controller와 @RestController를 사용하여 정의한다. 핸들러는 특정 URL에 매핑되고 해당 URL로 요청이 들어오면 실행된다. @ExceptionHandler @ExceptionHandler: @ExceptionHandler를 사용한 handler에서 발생하는 모든 예외를 하나의 메서드로 처리할 수 있다. 아래는 PostController에서 NullPointerException발생 시 nullex 메서드를 호출하는 코드이다. @RestController public class PostController { ... ... @ExceptionHandler(NullPointerException..

Springboot 2023.07.11

[WIL] Week 4

Fact: 학습내용 1. IoC, Bean, DI [Springboot] IoC, Bean, DI IoC (Inversion of Control): 객체의 제어권한을 개발자가 아닌 외부로 넘김(제어의 역전, 의존성 역전) 객체 지향 프로그래밍(AOP)에서 유연하고 확장 가능한 애플리케이션을 구현하기 위한 원리 개발자 developerhun.tistory.com 2. Filter와 Security [Springboot] Filter와 Spring Security Spring에서 모든 호출은 DispatcherServlet을 통과하게 되고 이후에 각 요청을 담당하는 Controller로 분배된다. 이때, 각 요청에 대해서 공통적으로 처리해야 할 필요가 있을 때 DispatcherServlet 이전에 단계 d..

TIL, WIL 2023.07.08

[CS] DBMS

DBMS는 DB를 효율적이고 직관적이며 안전하게 사용할 수 있게 해주는 DB ManagerSystem이다 효율성: 중복 제어 및 무결성 제약조건을 정의/검사하는 기능을 가짐 직관성: 서로 다른 데이터 간의 관계를 표현해주는 관계 표현 및 편리한 인터페이스를 제공 안전성: 접근하는 사용자마다 다른 권한을 주어 접근통제 및 데이터 수정/삭제 시 백업 기능 제공 트랜잭션: DB의 상태를 변화시키는 작업 단위나 병행제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용된다. 트랜잭션의 특성: ACID - Atomicity(원자성) : 모두 반영(Commit)되거나 전혀 반영되지 않아야 함(Rollback) - Consistency(일관성) : 시스템의 고정요소는 트랜잭션 수행 전, 후의 상태가 같아야 함 -..

CS 2023.07.08