Dependency Injection
ㄴ 스프링이 객체를 대신 생성하여 주입하는 기법을 말한다
@Autouired
: 의존성 주입
스프링이 객체를 대신 생성하고 주입한다
Q. 객체 주입 방식이 정확히 무엇을 말하는 것일까?
https://mangkyu.tistory.com/125
[Spring] 다양한 의존성 주입 방법과 생성자 주입을 사용해야 하는 이유 - (2/2)
Spring 프레임워크의 핵심 기술 중 하나가 바로 DI(Dependency Injection, 의존성 주입)이다. Spring 프레임워크와 같은 DI 프레임워크를 이용하면 다양한 의존성 주입을 이용하는 방법이 있는데, 각각의 방
mangkyu.tistory.com
Q. fidbyId의 리턴 타입이 Optional이다. 이 자료형의 특징은 뭘까?
https://mangkyu.tistory.com/70
[Java] Optional이란? Optional 개념 및 사용법 - (1/2)
이번에는 Java8부터 지원하는 Optional 클래스에 대해 알아보도록 하겠습니다. 1. Optional이란? Optional 개념 및 사용법 [ NPE(NullPointerException) 이란? ] 개발을 할 때 가장 많이 발생하는 예외 중 하나가 바
mangkyu.tistory.com
https://mangkyu.tistory.com/203
[Java] 언제 Optional을 사용해야 하는가? 올바른 Optional 사용법 가이드 - (2/2)
앞선 포스팅에서는 Optional의 개념과 문법을 살펴보았습니다. Optional은 Null이 될 수 있는 객체를 감싸는 Wrapper 클래스이기 때문에 비용이 발생합니다. 그래서 Optional은 필요한 경우에만 사용하는
mangkyu.tistory.com
Q. isPresent()의 역할이 무엇일까?
A.
- Boolean 타입
- Optional 객체가 값을 가지고 있다면 true, 값이 없다면 false 리턴
findBy+엔티티 속성명과 같은 함수이름만 작성해도 입력한 속성의 값으로 데이터 조회가 가능하다
Q. 리포지토리 메소드는 어떤 개념일까?
Q.Mapper와 Repository의 차이점은?
https://pamyferret.tistory.com/69
Mapper와 Repository의 차이
DB에 연결해서 데이터를 가져오는 것에 아무 생각 없이 @Repository 어노테이션을 붙여서 개발을 하고 있었다. 그러던 중 지인이 @Mapper와 @Repository의 차이에 물어왔고 생각해보니 그 둘의 차이점을
pamyferret.tistory.com
DB세션 : 스프링부트 application 과 db간을 연결한다
Lazy - 데이터를 필요한 시점에서 가져오는 방식
Eager - 객체를 조회할때 미리 모두 가져오는 방식
패키지 관리 : 프로젝트 주요 기능별로 나눠서 관리한다
템플릿을 사용하기 위해 템플릿 엔진(타임리프가)이 필요하다
타임리프는 템플릿 상속 기능을 제공한다
자주 사용하는 타임리프의 3가지 속성
* 분기문 속성
* 반복문 속성
* 텍스트 속성
Q. 타임리프가 무엇일까?
A. 템플릿 엔진의 일종이다
웹 템플릿 엔진은 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어
Thymeleaf(타임리프)란 ? 타임리프의 기본 기능알아보기
Thymeleaf(타임리프)란 ? 타임리프는 JSP, Freemarker와 같은 템플릿 엔진의 일종으로 다음과 같은 특징을 갖고 있습니다. 서버 사이드 HTML 렌더링 (SSR) 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용
hstory0208.tistory.com
model객체 : 자바클래스와 템플릿 사이의 연결고리
Q. 리다이렉트가 필요한 이유?
https://m.blog.naver.com/hands731/221872891036
redirect 와 forward 사용 시기, 필요 이유
$리다이렉트가 필요한 이유 -리다이렉트는 사용하기 나름이지만 네이버 카페를 예로 들어 보겠습니다. 카페...
blog.naver.com
부트스트랩
웹 디자이너의 도움없이도 개발자 혼자서 상당히 괜찮은 수준의 웹 페이지를 만들 수 있게 도와주는 프레임 워크
스프링시큐리티
회원가입, 로그인을 도와주는 스프링 기반 웹 애플리케이션의 인증(로그인과 같은 사용자의 신원을 확인하는 프로세스)과 권한(접근권한 관리)을 담당하는 스프링의 하위 프레임 워크
로그인 설정부분, 현재 로그인한 사용자의 정보 (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
[JAVA] 람다는 무엇일까?
이 글은 모던 자바 인 액션책 내용을 정리한 내용입니다. 람다 표현식은 무엇일까? 람다 표현식은 메서들 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없
go-coding.tistory.com
웹을 만들때 고려해야할 것
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
아마존 라이트세일의 특징과 장점 (웹호스팅 vs. VPS)
이번 글에서는 웹 호스팅과 VPS (Virtual Private Server) 호스팅의 차이를 알아보고, 최근 많은 사람들이 사용하고 있는 아마존의 VPS 서비스인 라이트세일에 대해서 알아보도록 하겠습니다. 라이트세
paperblock.tistory.com
Q. JAR과 WAR의 배포차이점은?
JAR WAR 배포 차이점과 장단점
JAR(Java ARchive)와 WAR(Web ARchive)은 Java 애플리케이션을 패키징하는 방식이다. 1. JAR(Java ARchive) 파일 1-1) 장점 독립적인 Java 애플리케이션을 패키징할 수 있고, 실행 가능한 JAR 파일로 만들어서 개발자
cocococo.tistory.com
Q. SSH 또는 SFTP란?
https://parkadd.tistory.com/129
[네트워크] SSH 와 SFTP (feat. SCP vs SFTP)
SCP 와 SFTP 둘 다 파일을 전송할 수 있는 프로토콜인데 무슨 차이가 있는지 궁금해서 학습을 시작했습니다 :) SSH란? SSH(Secure SHell)은 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로
parkadd.tistory.com
Q. ci cd란?
https://seosh817.tistory.com/104
[CI/CD] CI/CD란? - 지속적 통합(Continuous Integration)/지속적 배포(Continuous Deployment) 기본개념
매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요됩니다. 하지만 git에 코드를 올리는 것만으로도 누군가가 빌드와 테스트, 배포까지 해준다면,
seosh817.tistory.com
'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 |