- HTTP 상태 코드2024-01-25 16:02:00HTTP 상태 코드? HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려준다. 응답은 5개의 그룹으로 나누어진다. 분류 1xx (Informational) : 정보 2xx (Successful) : 성공 3xx (Redirection) : 리다이렉션 완료 4xx (Client Error) : 요청 오류(클라이언트 오류) 5xx (Server Error) : 서버 오류 모든 상태 코드에 대한 내용 1xx (Informational) : 정보 요청을 받았으며 프로세스를 계속 진행한다. 상태 코드 요약 설명 100 Continue 클라이언트가 서버로 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미/ 이미 요청이 완료되었다면, 이 응답은 무시해도 된다. 2xx (..
- STOMP 란?2024-01-17 14:09:39오늘은 실시간 채팅 및 채팅방 동적 생성을 구현하기 위해 STOMP에 대해서 알아보겠다. STOMP(Simple/Streaming Text Oriented Messaging Protocol) 텍스트 기반의 메시지 프로토콜이다. 클라이언트와 서버 간 전송할 메시지의 유형, 형식, 내용들을 정의한 규칙(FRAME)으로 TCP 또는 WebSocket과 같은 양방향 네트워크 프로토콜 기반으로 동작한다. HTTP와 같은 프로토콜에서 사용되는 request-response 패턴과 다르게, 브로커와 연결된 클라이언트 간에 메시지를 교환하는 방식으로 동작한다. STOMP는 기본적으로 Publish-Subscribe 구조로 되어있으며, 이 구조는 메시지를 공급하는 주체와 소비하는 주체를 분리해 제공하는 메시징 프로토콜이..
- Spring Data JPA란?2024-01-09 19:06:10JPA는 인터페이스로서 자바 표준 명세서이다. 인터페이스를 구현하기 위해서는 구현체가 필요한데 대표적으로 Hibernate, Eclipse, Link 등이 있다. 하지만 Spring에서 JPA를 사용할 때는 이 구현체들을 직접 다루진 않는다. 어플리케이션의 데이터 액세스 계층을 구현하는 것은 꽤 오랫동안 성가신 일이었다. 간단한 쿼리를 실행하고 pagination 및 auditing을 수행하려면 너무 많은 boilerplate코드를 작성해야 한다. Spring Data JPA는 실제로 필요한 양으로 노력을 줄여 데이터 액세스 계층의 구현을 크게 개선하는 것을 목표로 만들어졌다. 그래서 Spring에서는 구현체들을 좀 더 쉽게 사용하고자 추상화 시킨 Spring Data JPA라는 모듈을 이용하여 JPA ..
- Spring JPA란?2024-01-09 18:42:58이번 글에서는 JPA(Java Persistence API)가 무엇인지 알아보려고 한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제 적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임 워크이다. JPA를 구현한 대표적인 오픈 소스로는 Hibernate가 있다. 우선 JPA에 앞서, 먼저 ORM에 대해 알아보도록 하자. ORM(Object-Relational Mapping) 우리가 일반적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화해주는 것이라고..
- Spring Cache란?2024-01-07 22:00:59애플리케이션을 개발하며 쓰기 동작보다 읽기 동작이 많은 데이터가 있다면 캐시 도입을 고민할 수 있다. 예를 들어, 상품의 카테고리 목록은 자주 바뀌지 않는 데이터들인데 쇼핑몰 내에서 페이지를 이동할 때마다전체 카테고리들을 DB에서 매번 Query해서 모두 불러오는 것은 비효율적이기에 이런 경우에도 캐시를 적용하면 좋은 케이스다. 일반적으로 캐시는 메모리에 데이터를 미리 적재하고 이를 빠르게 읽어 응답하는 구조다. 그래서 읽기 동작이 많은 서비스에 캐시를 사용하면 서비스 응답 속도를 향상할 수 있고, 시스템 리소스도 효율적으로 사용할 수 있다. Spring은 다양한 저장소에 데이터를 캐시할 수 있는 기능을 제공한다. 또한 저장소에 독립적이고 추상화된 캐시 매커니즘을 제공한다. AOP 기반의 어노테이션을 제..
- Spring Boot란?2024-01-04 17:00:511. spring boot 란? 스프링 부트는 단독적이고, 상용화 수준의 스프링 기반 어플리케이션을 단지 실행할 수 있을 정도로 쉽게 만들 수 있다. 기존 스프링 프레임워크 위에 구축되었다. 스프링 부트를 사용하면 독립실행형과 프로덕션 등급 스프링 기반 어플리케이션을 쉽게 만들 수 있다. 설정의 많은 부분을 자동화하여 사용자가 편하게 스프링을 활용할 수 있도록 도와준다. 2. spring과 spring boot의 차이 spring framework의 경우, dependency를 설정해 줄 때 설정 파일이 매우 길고, 모든 dependency에 대해 버전 관리도 하나하나 해주어야 한다. org.springframework spring-web 5.3.5 org.springframework spring-web..
- Spring 이란?2024-01-03 10:18:53너무나 당연하게 쓰고 있던 Spring에 대해서 궁금증이 생겼기에 이 글을 쓴다. Spring framework란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로 엔터프라이즈급 애플리케이션 개발을 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션 경량 컨테이너로 자바 객체를 담고 직접 관리 엔터프라이즈급 개발 환경 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경 객체의 생성 및 소멸, 라이프사이클을 관리하며 언제든 spring 컨테이너로부터 필요한 객체를 가져와 사용하기 때문에 spring은 IOC(Inversion Of Control) 기반의 Framework임을 알 수 있다 IOC Spring에서는 일반적인 Java 객체를 new로 생성하여 개발자가 ..
- [Spring Boot] Spring Security & OAuth2.0 사용 - 소셜 로그인 기능 구현하기12023-11-08 22:42:20오늘은 Spring Security 와 OAuth 2.0 으로 소셜 로그인을 구현해 봤는데 각각 뭘 의미하는지와 버전이 달라지면서 바뀐 부분들을 설명하겠다. 0. 환경 설정 Gradle 사용 plugins { id 'java' id 'org.springframework.boot' version '3.1.2' id 'io.spring.dependency-management' version '1.1.2' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } 1. 구글 서비스 등록 구글 클라우드 플랫폼 주소로 이동하여 프로젝트를 생성해야 하는데 이 과정은 여기를 참고하면 되겠다. 2-1. application-oau..