일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 기술면접공부
- 코테공부
- nestjs스터디
- 알고리즘공부
- K8S
- 스프링부트
- 스프링공부
- Axon framework
- JPA 공부
- 스프링 공부
- nestjs
- JPA스터디
- 프로그래머스
- 자료구조공부
- 기술공부
- 플러터 공부
- DDD
- Flutter
- 자바공부
- querydsl
- 플러터 개발
- 카프카
- 스프링
- JPA
- JPA예제
- 코테준비
- 스프링부트공부
- Kafka
- nestjs공부
- JPA공부
- Today
- Total
목록분류 전체보기 (715)
DevBoi
web.xml web.xml은 설정을 위한 설정 파일이다. WAS가 처음 구동될때 web.xml을 읽어, 웹 애플리케이션 설정을 구성한다. DispatcherServlet을 등록해주면서 스프링 설정 파일을 지정한다. DispatcherServlet은 초기화 과정에서 지정된 설정 파일을 이용해 스프링 컨테이너를 초기화 시킨다. web.xml은 초기 로드시 로드해야하는 xml들에 대한 정의 이다. WAS가 최초로 구동될때 각종 설정을 정의 해주는, 설정에 대한 경로를 정의해주는 파일이다. web.xml에서 두가지 전부 로드된다. root-context servlet-context *root-context root-context에 등록되는 빈들은 모든 컨텍스트에서 사용가능하다. service,dao포함, 웹 ..
Maven은 자바용 프로젝트 관리도구로, Apache Ant의 대안으로 만들어졌다. Maven은 Ant와 마찬가지로 프로젝트 전체적인 라이프사이클을 관리하는 도구이다. Maven은 필요한 라이브러리를 특정 문서에 (pom.xml)에 정의해놓으면 내가 사용할 라이브러리뿐아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리까지 관리하여, 네트워크를 통해 자동 다운을 받아준다. Maven은 중앙 저장소를 통한 자동 의존성 관리를 해주는 곳이라고 보면된다. 라이브러리를 공유하는 파일서버라고도 할수 있다. ant라는 것에 비해 라이브러리 의존관리가 되어서 많이 쓰이고.간단한 설정을 통한 배포관리가 가능하다. 메이븐은 프레임워크이기 때문에 동작방식이 정해져있고 미리 정의하고있는 빌드 순서가 있다. 이를 라이프..
스프링 부트 프로젝트 시작에는 pom.xml에 버전관련 내용은 없다. org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE 해당 내용이 버전 관리를 해주는데, 타고들어가면 알수 있다. spring-boot-starter-parent 폼파일 하위에는 spring-boot-dependencies 이있고, 해당 영역을 타고 들어가면,Spring-boot-dependcies라고 시작하는 이름의 파일을 볼수 있다. dependencyManagement, dependencyManager 영역에 모든 버전 정보들이 명시 되어있다.따라서 직접 버전을 명시하지 않아도, 저곳에서 버전정보를 가져오게 되고, 버전을 직접 명시를 할 수도있지만가급적 충돌문제로인해..
Springboot의 autoConfiguration이란? 자동으로 환경설정을 해주는 것이다. 어떤 API, Component를 작성하기 위해서 설정 클래스를 만들고 properties에 설정하고 등등 이러한 어느정도 규격화 되어있는 설정들을 스프링 부트에서 해주는 것이다. ex. mybatis, connection pool 등등 AutoConfiguration 장점 -버전 관리 -초기 빈호출을 등록안해도 된다, 개발 편리성 증가 실행 주체 EnableAutoConfiguration SpringBootApplication을 사용하면 자동환경설정 기능 사용할 수 있다. 해당 상위에 두개의 어노테이션이 있다면, Import AutoConfigurationImportSelector가 호출된다. 호출할 빈들을 ..
JWT(JSON web Token)이란? Json 포맷을 이용하여, 사용자에 대한 속성을 저장하는 Claim기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self Contained 방식으로 정보를 안전하게 전달 한다. 주로, 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직으로 구현된다. Header, Payload, Signature 3개의 부분으로 구성되어있어, 쿠키나 세션을 이용한 인증보다 안전하고 효율적이다. 일반적으로 Request Header에 담겨져 오기 때문에, Header값을 확인하여 가져올 수 있다. 장점 -중앙 인증 서버, 저장소에 대한 의존성이 없어서 수평 확장에 유리 -Base64 URL Safe Encoding이라 URL,Cookie, Header 어..
페이지는 static page와 dynamic page로 나뉜다. -Static Pages * web server는 파일 경로 이름을 받아 경로와 일치하는 file contents 를 반환한다. * 항상 동일한 페이지를 반환한다. * image,html,css javascript 파일과 같이 컴퓨터에 저장되어있는 파일들 -Dynamic Pages * 인자의 내용에 맞게 동적인 contents를 반환한다. * 즉 웹서버에 의해서실행되는 프로그램을 통해서 만들어진 결과, Servlet : Was위에서 돌아가는 java program Web Server - Web 서버가 설치되어있는 컴퓨터 -웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적 컨텐츠를 제공하는 컴퓨터 프로그램 - 정적인 컨텐츠 제공 - W..
1. 프록시 패턴 프록시 패턴은 어떤 객체에 대한 접근을 제어하기 위한 용도, 실제 객체의 메서드를 호출하면, 호출 중간에 가로채는 패턴이다. 제어흐름을 조정하기 위해 중간에 대리자를 두는 패턴이다. 스프링에선 AOP를 통해, 이런 공통 적인 기능을 분리해, 필요한 곳에서 재사용을 한다. 2.싱글턴 패턴 애플리케이션이 시작될때 어떤 클래스가 최초 한번만 메모리를 할당하고 메모리에 인스턴스를 만들어 사용하는 디자인 패턴으로 생성자가 여러번 호출해도, 실제 생성객체는 하나이고 이 객체를 반환하는 패턴 3.템플릿 메소드 패턴 슈퍼클래스에기본적인 로직 흐름을 작성, 일부 변경이 필요한 부분을 서브클래스에서 추상메소드로 오버라이딩하여 사용할 수 있는 형태로, 서브클래스에서 필요에 맞게 이를 구현하여 사용하는 디자..
스프링의 빈 라이프 싸이클은 아래와 같다. 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백 -> 스프링 종료 해당 사이클에서 사용할 수 있는 콜백 함수들이 있다. * 초기화 콜백 : 빈이 생성되고 빈의 의존관계가 주입이 완료된 이후 호출 * 소멸 전 콜백 : 빈이 소멸되기 전에 호출 스프링은 3가지 방법으로 빈 생명주기 콜백을 지원한다. -인터페이스 (InitializingBean, DisposableBean) 메소드 구현 스프링 전용 인터페이스에 의존한다. 초기화,소멸 메서드의 이름을 변경할 수 없다. 고칠수없는 외부 라이브러리에 적용 불가 - 설정 정보에 초기화 메소드, 종료 메소드 지정 @PostConstruct, PreDestroy 어..
안전하지 않다. 여러 쓰레드에서 상태값을 바꿀수있도록 싱글턴 인스턴스를 stateFul하게 설계하면 다른 쓰레드에서 상태를 변경, 쓰레드마다 값이 다르고, 운영 이슈가 발생하게 된다. 따라서 싱글턴 인스턴스는 stateless하게 설계를 해야한다.
싱글턴 패턴 -소프트웨어 디자인 패턴에서 싱글턴 패턴을 따르는 클래스는 생성자가 여러차례 호출되어도, 실제로 생성되는 객체는 하나이고, 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 싱글턴 패턴을 사용하는 이유 만약 우리가 만들었던 DI컨테이너인 요청을 할 때마다 새로운 객체를 생성한다 요청이 엄청나게 많은 트래픽 사이트에서는 객체를 새로 생성하게 되면 메모리 낭비가 심하다 구현 예제 -static 객체를 통해서 1개의 객체만 생성 할수 있도록 한다. -static 메소드를 통해, 외부에서 생성할수있도록 제한한다. -new 연산자를 통해서 객체를 만드는 것을 private 생성자를 통해서 제한한다. 싱글턴 패턴 문제점 -싱글턴 패턴을 구현하는 코드 자체가 많다. (값이나 특정 속성에 따라서 별..