일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- oauth
- Project
- programmers
- server send event
- jQuery
- javascript
- Stream
- session
- Anolog
- Hibernate
- spring
- flask
- real time web
- jenkins
- bean
- cookie
- Spring Security
- Java
- JWT
- SseEmitter
- 생명주기 콜백
- web
- 항해99
- hanghae99
- google oauth
- JPA
- DI
- python
- WIL
- html
- Today
- Total
목록전체 글 (109)
끄적끄적 코딩일지
Bean을 사용하면서 초기화나 Bean 삭제시 발생시켜야할 이벤트를 지정해야할 때가 있다. 예를들어 Socket통신등 네트워크를 사용하는 객체는 프로그램 시작시 특정 Server와 연결하거나 프로그램 종료시 Bean 삭제시 해당 Server와의 연결을 안전하게 종료해야 할 때가 있다. 이처럼 Bean의 초기화나 종료 작업을 관리하는것을 Bean의 생명주기 콜백이라고 한다. 생명주기 콜백에서 초기화 작업은 모든 의존성이 주입된 후 호출된다. 1. Interface를 사용한 방법 Bean으로 등록되는 객체에 특정 Interface를 implement하는 방식으로 초기화는 InitializingBean, 종료는 DisposableBean을 사용하여 구현한다. @Component public class NetW..
HTTP 란? Hyper Text Transper Protocol의 약자 하이퍼텍스트 문서(HTML)을 교환하기 위해 만들어진 통신 규약 서버간 통신시 어떠한 형식으로 통신할지에 대해 정해둔 규약 TCP/IP 기반의 통신 방식 HTTP 란? Hyper Text Transper Protocol의 약자 하이퍼텍스트 문서(HTML)을 교환하기 위해 만들어진 통신 규약 서버간 통신시 어떠한 형식으로 통신할지에 대해 정해둔 규약 TCP/IP 기반의 통신 방식 HTTP 구조 Request / Response ( 요청 / 응답 ) 보내는 쪽을 요청(Request), 요청을 받아 데이터를 보내는것을 응답 (Response) 라고 한다. 3-Way Handshake 방식을 쓴다. 3-Way Handshake : 양쪽 모..
항해를 시작한지 벌써 4주차가 되었다. 이번 주차에서는 꽤 배운것이 많다. @Transactional에 대한 개념 사용법 트랜잭션에 대한 개념과 사용법, HTTP 구조, Jwt와 Refresh Token, Spring Security 사용법 그리고 ORM과 Hibernate, MVC 패턴 ,SQL 구조 Bean 등록 및 사용, @Qualifier @Primary 이미 알고 있는 내용도 있었지만 블로그에 쓰면서 개념을 다시한번 정리할 수 있는 시간이였다.
MVC 패턴이란? 디자인 패턴중 하나로써 동적인 web Application을 만들기 위해서 역할에 따라 Model, View, Controller으로 나눈 패턴이다. Jquery 등을 사용한 DOM 조작 없이 동적인 Web Page를 만들수 있어 로직의 분리가 가능하고 유지보수가 간편해진다. Model Application의 Data, 무엇을 할지등을 정의하는 부분으로 내부 비즈니스 로직을 처리하귀 위한 역할을 한다. Model의 상태에 변화가 있을시 Controller와 View 에게 이를 통보하여 View는 최신의 결과를 보여줄 수 있고 Controller는 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있다. Model의 규칙 • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한..
SQL 이란? Structured Query Language의 약자로써 RDBMS(관계형 데이터베이스 관리 시스템, Relational DataBase Management System)을 제어하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 데이터베이스 별로 조금씩 차이가 있지만 기본적인 구조는 똑같기 때문에 하나만 배우고 다른 데이터베이스는 어떻게 다른지 숙지정도만 해주어도 된다. SQL 종류 SQL은 문법의 종류에따라 3가지로 분류된다. 1. 데이터 정의 언어(DDL : Data Definition Language) : 컴퓨터의 데이터를 정의하는 언어. RDB상에서는 해당 DB의 구조를 정의한다. - Create : 테이블, View, Index등의 새로운 개체을 만든다. - Drop : 이미 존재..
Hibernate 란? JPA으로 구현된 대표적인 ORM 프레임워크이며 Spring에서는 기본적으로 Hibernate를 사용해서 Database와 CRUD를 수행한다. JPA란? 2022.06.01 - [Spring] - [Spring 기초] JPA 사용하기 [Spring 기초] JPA 사용하기 JPA란? Java Persistance API의 약자로 ORM(Object-Relational-Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. Java를 사용해서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스로써 SQL를 blablacoding.tistory.com ORM(Object-Relational Mapping) 일반적으로 알고 있는 Class와 database의 Table을 연결..
Spring Security란? Spring Web에서 사용자에 대한 인증과 권한등을 관리하고 주요 공격으로부터 어플리케이션을 보호하는 프레임워크이다. 명령형과 반응형 어플리케이션 모두에서 작동 가능하기때문에 Spring 기반 프로그램의 표준 보안 프레임워크로 사용된다. Spring Security 구조 1. 인증하기 사용자 인증을 하고 해당 정보를 저장하거나 권한을 검사하는등의 역할을 수행하는 아키텍처는 다음과 같다. 1. Client에서 로그인 요청(Id, Password 정보 전송) 2. AuthenticationFilter에서 받은 정보를 AuthenticationManager에게 요청 3. AuthenticationManager에서는 AuthenticationProvider에게 요청을 하여 사용..
드디어 끝이 보이네.... 부트캠프 중간중간 조금씩 만들어 가니까 진도가 빠지지 않는다. 간단한 프로젝트라서 맘잡고 만들면 2~3일이면 될것같은데 생각보다 오래걸린다. 그래도 월드컵 게임 진행화면과 결과 화면까지 만들었으니 남은건 로그인, 댓글 기능만 남았다. 일단 메인화면 쪽 코드이다. 번호 제목 등록자 플레이횟수 등록날짜 1 test member number ► 플레이하기 Controller private final WorldCupGameService service; @GetMapping(value = "/") public String index(Model model){ model.addAttribute("games",service.getRepo().findAll()); return "main"; }..
JPA란? Java Persistance API의 약자로 ORM(Object-Relational-Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. Java를 사용해서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스로써 SQL를 사용하지 않아도 Database의 CRUD가 가능하다는 특징이 있다. ORM(Object-Relational Mapping) 일반적으로 알고 있는 Class와 database의 Table을 연결한다는 의미이며, Java의 Class를 RDB(Relational Database)의 Table으로, 해당 Class가 가지고 있는 속성을 Column으로, 객체 들을 Table의 Row으로 연결해준다. JPA를 구현한 ORM 프레임워크중 대표적으로 Hibernate가 ..
Spring에서 DI를 사용하다보면 대상의 Bean이 2개 이상인 경우가 있다. 예를들어 할인정책을 DiscountPolicy라는 추상화 객체로 만들고 고정할인인 FixDiscountPolicy와 구매 금액에 따라 일정 비율만큼 할인해주는 RateDiscountPolicy를 구현체로 만들고 Bean으로 등록했다고 해보자. // 추상화 @Component public interface DiscountPolicy{ public int discount(int cost); } //구체화 @Component public class FixDiscountPolicy implement DiscountPolicy{ @Override public int discount(int cost){ return cost - 1000..