초기화 과정 SecurityBuilder / SecurityConfigurer SecurityBuilder는 빌더 클래스로서 웹 보안을 구성하는 빈 객체와 설정 클래스들을 생성하는 역할을 한다 ex) WebSecurity, HttpSecurity SecurityConfigurer는 Http요청과 관련된 보안처리를 담당하는 필터들을 생성하고 여러 초기화 설정에 관여한다 SecurityBuilder는 SecurityConfigurer를 포함하고 있으며 인증 및 인가 초기화 작업은 SecurityConfigurer에 의해 진행된다. HttpSecurity는 최종적으로 SecurityFilterChain이라는 빈을 만든다 WebSecurity는 설정클래스에서 정의한 SecurityFilterChain 빈을 Se..
5강 싱글톤 컨테이너 웹 애플리케이션과 싱글톤 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 고객이 요청한 객체를 반환할때마다 새로운 객체를 생성해서 반환해주면 메모리 낭비가 심하다 해결 방안은 해당 객체가 딱 1개만 생성되고, 공유하도록 설게하면 된다 -> 싱글톤 패턴 싱글톤 패턴 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다 private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다 예시 public class SingletonService{ //1. static 영역에 객체를 딱 1개만 생성해둔다. private sta..
김영한님의 스프링 핵심 원리 기본편을 보고 학습한 내용을 정리해보았습니다 1. 객체 지향 설계와 스프링 스프링을 왜 쓸까? 스프링은 자바 언어 기반의 프레임워크 자바 언어의 가장 큰 특징 - 객체 지향 언어 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 그렇다면 객체지향은 무슨 특징이 있나? 추상화 캡슐화 상속 다형성 특히 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다 예시를 들면 다형성은 역할과 구현으로 세상을 구분할 수 있는데, 운전자역할과 자동차역할이 있다고 했을때 운전자는 자동차가 K3이든, 아반떼이든 상관없이 자동차라면 엑셀을 밟으면 앞으로 가고, 브레이크를 밟으면 멈춘다는 자동차의 역할만 알면 된다 자동차가 어떤 모델로 구현됐는지 알 필요가 없다 즉, 역할과..
JPA(Java Persistence Api)의 필요성 객체지향으로 만든 객체를 관계형 데이터베이스에 저장하는 작업(쿼리문) 이 번거롭기때문에 이 작업을 손쉽게 해주는 JPA를 사용한다 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다 객체는 참조를 사용해서 연관된 객체를 찾는다 테이블과 객체 사이에는 이런 큰 간격이 있다 그래서 도메인 만들때 Member 클래스안에 Team에 대한 연관관계를 넣고싶으면 private Long teamid; 가 아닌 private Team team; 객체로 선언한다 양방향 연관관계에서 객체와 테이블의 차이점 객체는 Team team, List members 두개가 있다 단방향관계가 두개이다 테이블은 TEAM_ID 하나로 TEAM에서 MEMBER의 정보, MEMB..
1. 연동할 레포지토리를 clone 받는다 2. start.spring에서 다운받은 폴더를 연동할 레포지터리에 넣어준다 3. 인텔리제이를 켜고 open 해준다 4. build.gradle 오픈 여기까지하면 이렇게 빨간불이 뜬다 난 이게 에런줄 알았다 또 상단에 RUN이 회색으로 되어있어서 연동과정에서 뭔가 문제가 생긴줄알았다 근데 나중에 알고보니 그게 아니었다 빨간색은 commit이 안돼서 뜨는거였고 RUN이 회색표시로 뜨는이유는 처음 open했을때 RUN한 기록이 없어서 그냥 안뜬거다 여기서 그냥 저 버튼을 누르면 톰캣서버가 잘돌아간다 나중에는 이렇게 상단에 RUN이 활성화된다 난 이게 연동오류로 인텔리제이에서 오류를 표시하는 건줄 알았는데 그냥 처음 커밋안하고 처음 런안해서 생기는거였다 이거때문에 계..
다대다 관계는 관계형데이터베이스에서 표현 불가능 따라서 중간에 맵핑테이블을 두어 다대다를 일대다, 다대일로 풀어야한다 일대다 양방향관계에서는 다에다가 외래키를 두어야한다 강의 들으면서 든 생각 백엔드 개발자에게 테이블 연관관계 및 설계능력이 정말 중요하다는 것 이걸 할 수 있어야지 데이터베이스에서 테이블을 만들고 그 테이블을 토대로 비즈니스 로직을 짤 수 있다 근데 나는 객체지향설게과목을 좀 못했었고 내가 설계능력이 떨어진다는 것을 알게되었다 강의 들으면서 안보고 최대한 그려보고있는데 설계능력을 기를 필요를 느꼈다
웹 브라우저에서 localhost:8080/hello라는 url로 이동하면 내장 톰캣 서버를 거쳐 컨트롤러로 가서 hello를 GetMapping한 컨트롤러가 있는지 확인하고, 있으면 model등으로 처리를 한 후 return값으로 hello를 반환한다 여기서 hello는 html의 이름을 말하고, 뷰 리졸버가 해당 리턴값의 html이 resources:templates/안에 있는지 확인하고 있으면 렌더링해준다 nodejs를 다뤄보니까 이게 라우팅기법이라는 것을 알겠다 나타낼 부분을 url에 주어서 처리하는데 nodejs는 라우팅 기법, 스프링 부트는 Model, View, Controller 세가지가 동작하는 MVC방식이라는 것에서 차이가 있는 것 같다 이게 첫번째 방식이고, 두 번째 방식은 API인데..
- Total
- Today
- Yesterday
- Android Studio
- html
- oauth2.0
- CSS
- 데이터3법
- bfs
- html #웹 #웹사이트 #플레이리스트
- 2024인프콘
- authorization code
- SpringBoot
- 오픈소스
- git
- git commit 수정
- 데이터 3법
- DDL
- 데이터베이스
- SQL
- oauth
- DML
- 클로아
- kloa
- git 예전 커밋 수정
- authorization_code
- 로스트아크 캐릭터
- 리눅스
- 프로그래머스
- javascript
- 인프콘2024
- infcon 2024
- 우분투
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |