반응형

멋쟁이 사자처럼 The Origin/SpringBoot 17

9주차 - RabbitMQ, Redis, WebSocket, WebClient

Message Broker Scale Out 기능을 여러 서비스에 걸쳐서 제공하는 MSA에서 필요로 하는 기법들 HTTP 요청과 응답의 구조로는 힘든 일이 있습니다. 그래서 중간에 Message Queue를 두게됩니다. Message Broker 미들웨어 Message를 주고받기 위해서 사용합니다. Redis In-Memory: 휘발성 데이터 NoSQL:SQL을 이용한 조회를 하지 않음 외부 캐시 또는 Message Broker로 활용 Redis 활용1 Redis 활용2 WebSocket 클라이언트와 서버가 자유롭게 메세지를 주고받기 위한 방법들이 연구가 되는데 그중 하나가 웹소켓이라고 생각하면 됩니다. 양방향 통신을 하기위해서 가장 흔하게 사용되는 통신 규약중 하나입니다. 에러가 발생을 할때 onOpe..

8주차 - Auth의 의미, OAuth2와 JWT

Authorization & Authentication Login - 한 개인이 자기 자신을 증명함으로서 특정 컴퓨터 시스템에 접근하는 행위 Auth -> Authorization & Authentication Authentication 사용자가 자신이 누구인지를 증명하는 과정 ex)로그인, 소셜 로그인 Authorization 사용자의 기능 사용 권한을 검증하는 과정 ex)권한 관리, 작성, 차단 등 로그인 과정 첫 요청 이후 HTTPS TLS 컴퓨터 네트워크 상에 정보를 안전하게 공유하기 위한 암호화 규칙 흔히 말하는 HTTPS는 HTTP에 TLS가 적용된 형태이다. 암호화 특정 규칙(알고리즘)을 가지고 평범한 데이터(평문)를 제3자가 확인 할 수 없도록 정보를 숨기는(암호문) 과정 대칭키 암호화 같..

7주차 - Spring Boot Tests, Spring Boot Actuator

Testing에 대하여 기존에는 Postman을 활용하여 산출물의 기능적 측면의 테스트를 하였습니다. Test를 위한 의존성 TDD(Test Driven Development) 테스트 주도 개발 실제 작동하는 코드 이전에 통과행할 테스트를 우선 개발하는 방식 상용 서비스 준비 여태까지의 작업은 기능을 제공하는데 집중했습니다. 서비스가 안정적으로 돌아가는데 필요한 기능 Spring Boot Actuator Prometheus

7주차 - Exception Handling, Interceptors & Filters

Exception - 예외 특수한 처리를 필요로 하는 비상적 또는 예외적 상황 Java의 예외처리 try, catch, finally throws 예외 처리를 호출하는 대상에게 전가 Java에서는 Method Signature의 일부로, 처리되지 않은 예외는 Compile Error를 발생시킵니다. * RuntimeException 혹은 RuntimeException을 상속받은 클래스 제외 Spring Boot의 예외처리 방법들 1. ResponseStatusException - 단발적 예외 2. @ExceptionHandler - Controller 내부 예외 3. HandlerExceptionResolver - 예외 처리 Handler 4. @ControllerAdvice - ExceptionHand..

6주차 - Logging, Spring AOP, Validation

Logging의 기본 개념들 Log Level: Debug -> Debug 이상의 Log만 출력됩니다. application에 설정된 레벨보다 중요한 메시지만 출력됩니다. Logback 설정법 Aspect Oriented Programming AOP는 횡당 관심을 어떻게 구분하느냐가 핵심입니다. Validation 사용자뿐만 아니라 프론트단에서 사용할 경우에도 필요합니ㅣ다. JPA와 Hibernate ORM의 관계와 비슷합니다. Validation Annotation

5주차 - MyBatis 사용해보기, ORM

Database를 사용하는 이유 전통적으로 JDBC API를 사용했지만 과정이 복잡하여 MyBatis가 등장하게 되었습니다. MyBatis 관계형 데이터베이스의 결과 Table ORM 관계형 데이터베이스의 한계 Dto에서 id는 필요가 없고 Order라는 클래스 안에 Food 클래스가 있어야 하지만 없습니다. 이 간극을 해결하기위해 나온것이 ORM입니다. ORM Object Relational Mapping 관계형 데이터를 객체로 표현하는 프로그래밍 기법 JPA Java Persistence API 현재는 Jakarta Persistence 실제로 사용하는것은 HIBERNATE JPA에 대한 이해가 충분하면 직접 ORM 프레임워크를 만들 수 있습니다.

4주차 - Spring Stereotypes, Database 다뤄보기

Component란? 함수단위 : @Bean 클래스 단위 : @Component 모든 Bean에 Component를 사용해도 작동하기는 합니다. Controller RequestMapping과 함께 사용합니다. MVC의 'Controller' 역할을 함을 알림 Repository Data Access Object와 같이 실제 데이터 근원과 소통하는 부분임을 알림 Service 비지니스 로직이 구현된 부분임을 알림 잘 분류하여 사용하는것이 좋습니다. 관계형 데이터베이스와 ERD Codd의 12규칙을 따르고자 하는 Database REST와 같이 전부다 따르지는 않는다. Table(Relation)의 형태로 데이터를 저장합니다. 관계형 연산자로 테이블 형태로 데이터를 반환합니다. 현재는 관계형 데이터베이스에..

4주차 - CRUD란? CRUD와 REST

서비스의 자원 서비스에서 사용할 자원의 관리 기본적인 서비스의 시작은 자원관리로부터 시작됩니다. 주소록 CRUD 기본적으로 어떠한 형태의 자원이든 CRUD 네가지의 작업을 할 수 있어야지 서비스 작업이 가능합니다. RESTful이란? 클라이언트가 사용할 API를 문제없이 누구나 사용할 수 있는것이 REST API를 만드는 과정입니다. 여러가지 제약사항들을 잘 지키는것이 RESTful입니다. 제약사항 1. Client Server Architecture 얼마나 잘 분리가 되어있는지 서로의 역할을 잘 분담하였는지 알아봅니다. UI가 바뀐다고해서 내용물들이 큰 변화가 있지는 않습니다. 보여주는 형태가 바뀔뿐입니다. 2. Statelessness 상태라는것을 가지지 않습니다. API 자체가 상태를 저장해서 무엇..

3주차 - HTML template

동적 HTML 정적 컨텐츠 동적 웹 페이지 일반적인 HTML문법과는 다른 형태입니다. template Github Repository 실습 commit React, Vue.js, node.js React, Vue.js 두가지 모두 user interfaces 즉, UI를 만들기 위한 라이브러리 / 프레임워크 입니다. HTML을 효율적으로 작성하기 위한 기술입니다. node.js JavaScript runtime environment, Back-end 프레임워크 JavaScript를 브라우저 외부에서 사용하기 위한 기술입니다. 일반적으로 웹 어플리케이션을 만드는데 활용합니다. 백엔드와 프론트엔드

3주차 - 컴퓨터 통신과 HTTP

HTTP란? 응용계층 HTTP, SMTP, FTP 주고받을 데이터를 어떤 규칙을 가지고 작성하느냐 입니다. SMTP : 이메일 관련 FTP : 서버와 파일을 주고받는것 중요한것은 세가지 모두 응용계층에서 정의된다는 부분입니다. HTTP, SMTP, FTP를 사용하는것에 스프링부트가 도움을 준다고 생각하면 됩니다. HTTP(HyperText Transfer Protocol) 응용 계층에 정의된 통신 규약입니다. 서버와 클라이언트 간에 메시지를 전달하는 형식을 정의한 규약 HTTP와 REST는 비슷해보이지만 다릅니다. REST(REpresentatinal State Transfer) HTTP 요청 / 응답의 형식 요청 마지막 아래는 Request Body 에 해당합니다. 요청에 관한 실제 데이터가 들어가게 ..

반응형