Dependency Injection
ㄴ 스프링이 객체를 대신 생성하여 주입하는 기법을 말한다
@Autouired
: 의존성 주입
스프링이 객체를 대신 생성하고 주입한다
Q. 객체 주입 방식이 정확히 무엇을 말하는 것일까?
https://mangkyu.tistory.com/125
Q. fidbyId의 리턴 타입이 Optional이다. 이 자료형의 특징은 뭘까?
https://mangkyu.tistory.com/70
https://mangkyu.tistory.com/203
Q. isPresent()의 역할이 무엇일까?
A.
- Boolean 타입
- Optional 객체가 값을 가지고 있다면 true, 값이 없다면 false 리턴
findBy+엔티티 속성명과 같은 함수이름만 작성해도 입력한 속성의 값으로 데이터 조회가 가능하다
Q. 리포지토리 메소드는 어떤 개념일까?
Q.Mapper와 Repository의 차이점은?
https://pamyferret.tistory.com/69
DB세션 : 스프링부트 application 과 db간을 연결한다
Lazy - 데이터를 필요한 시점에서 가져오는 방식
Eager - 객체를 조회할때 미리 모두 가져오는 방식
패키지 관리 : 프로젝트 주요 기능별로 나눠서 관리한다
템플릿을 사용하기 위해 템플릿 엔진(타임리프가)이 필요하다
타임리프는 템플릿 상속 기능을 제공한다
자주 사용하는 타임리프의 3가지 속성
* 분기문 속성
* 반복문 속성
* 텍스트 속성
Q. 타임리프가 무엇일까?
A. 템플릿 엔진의 일종이다
웹 템플릿 엔진은 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어
model객체 : 자바클래스와 템플릿 사이의 연결고리
Q. 리다이렉트가 필요한 이유?
https://m.blog.naver.com/hands731/221872891036
부트스트랩
웹 디자이너의 도움없이도 개발자 혼자서 상당히 괜찮은 수준의 웹 페이지를 만들 수 있게 도와주는 프레임 워크
스프링시큐리티
회원가입, 로그인을 도와주는 스프링 기반 웹 애플리케이션의 인증(로그인과 같은 사용자의 신원을 확인하는 프로세스)과 권한(접근권한 관리)을 담당하는 스프링의 하위 프레임 워크
로그인 설정부분, 현재 로그인한 사용자의 정보 (Principal 객체 사용) 등을 제공한다
@ Configuration : 스프링의 환경설정 파일
@ Enableweb Security : 모든 요청 URL이 스프링 시큐리티의 제어를 받느다
스프링 시큐리티는 웹 사이트의 콘텐츠가 다른 사이트에 포함되지 않도록 하기 위해 X-Frame-Options 헤더의 기본값을 DENY로 사용하는데, 프레임 구조의 웹 사이트는 이 헤더의 값이 DENY인 경우 이와 같이 오류가 발생한다
스프링 부트에서 X-Frame-Options 헤더는 클릭재킹 공격을 막기 위해 사용한다. 클릭재킹은 사용자의 의도와 다른 작업이 수행되도록 속이는 보안 공격 기술이다
비번은 보안을 위해 반드시 암호화해야한다
ㄴSBB에선 BCryptpassword Encoder / Bcrypt(비크립트) 해시 함수를 사용했다
* 비크립트 : 해시 함수 하나로, 주로 비번과 같은 보안 정보를 안전하게 저장하고 검증할 때 사용하는 암호화 기술이다
bean
스프링에 의해 생성되는 , 또는 관리되는 객체
컨트롤러, 서비스, 리포지토리 모두 빈에 해당한다
403
작동중인 서버에 클라이언트 요청이 들어왔으나 서버가 클라이언트의 접근을 거부했을 때 반환하는 HTTP 오류코드이다
CSRF토큰을 세션(사용자의 상태를 유지하고 관리하는데 사용하는 기능) 을 통해 발행하고
웹 페이지에서는 폼 전송 시에 해당 토큰을 함께 전송해 실제 웹페이지에서 작성한 데이터가 전달되는지를 검증한다
* 토큰 : 요청을 식별하고 검증하는데 사용하는 특수한 문자열 또는 값. 페이지 요청시 항상 다른 값이 적용된다
Q. 화면출력이 완료된 후 JS실행이 좋지 않은 이유가 뭘까?
A. 오류가 발생하고, 로딩이 지연되기 때문이다
Q. 왜 답변 수정은 POST방식을 쓰는거지? (삭제는 왜 get방식을 쓰는거지?)
A. 답변수정은 보안이 필요한 부분이기 때문이다
페이지를 refresh하거나 이동 할 때에는 post방식보다 get방식이 조금더 유연하다
Q. 람다 형식 복습하기
https://go-coding.tistory.com/69
웹을 만들때 고려해야할 것
1. 네비게이션 바
2. 페이징 기능 (JPA관련 라이브러리에 이미 패키지 있다)
get방식으로 첫번째 파라미터는 ?기호를 사용하고, 그 이후 추가되는 값은 &기호를 사용한다
3. 회원가입, 로그인 기능
4. 질문 및 답변 작성 기능
5. 질문 및 답변 수정, 삭제 기능
6. 추천 기능 (DB)
보통 Set으로 받아서 저장한다 (Q. List를 사용하지 않는 이유는?)
7. 앵커 기능
8. 마크다운 기능
텍스트 기반의 마크업 언어
9. 검색 기능 (검색어 입력 + 조회)
검색 대상 : 질문제목, 질문내용, 질문 작성자, 답변내용, 답변 작성자
JPA의 Specification 대신 @Query가 편하다
검색할 때 여러 매개변수를 조합하여 게시물 목록을 조회할땐 get을 사용한다
새로고침 또는 뒤로가기 시 만료 페이지 오류가 발생하기 때문이다
* 댓글기능 추가
* 카테고리 추가
* 비번 찾기 & 변경기능 추가
* 프로필 화면 구현
* 최근 답변과 댓글 순으로 노출시키기
* 조회수 표시하기
* 소셜미디어 로그인 기능
* 마크다운 에디터 (simpleMDE) 적용해보기
Q. aws 라이트세일의 특징은?
https://paperblock.tistory.com/2
Q. JAR과 WAR의 배포차이점은?
Q. SSH 또는 SFTP란?
https://parkadd.tistory.com/129
Q. ci cd란?
https://seosh817.tistory.com/104
'Server > Spring & AWS' 카테고리의 다른 글
[CI/CD] Github Action, AWS로 자동 빌드 및 배포하기 (1) | 2024.08.20 |
---|---|
@PathVariable과 RequestParam 차이점 (0) | 2024.08.15 |
[Spring] MVC 구조 이해 - 함수와 람다식 (0) | 2024.08.12 |
[Spring] 스프링 MVC 구조이해 - 서블릿이란 (0) | 2024.08.02 |
[점프 투 스프링] 질문 및 요약정리 (1) (0) | 2024.02.22 |