Spring 12

[Spring]빌드하고 실행하기[미완]

[이유]    [윈도우 버전]   [출처]https://deepdeepblueblue.tistory.com/8 [스프링 입문] 빌드하고 실행하기 (영한쌤 윈도우도.. 알려주세요..)콘솔창에서 스프링 프로젝트를 빌드하고 실행하려고 한다. 윈도우는 강의에서 따로 설명해주시지 않아서 검색을 통해 해결했다. cmd창에서 프로젝트가 있는 경로로 이동한 후, dir 명령어로 gradledeepdeepblueblue.tistory.comhttps://sky-h-kim.tistory.com/27 [Windows] 특정 포트 실행중인지 확인 + 강제 종료가끔 IDE를 통해 톰캣을 재시작할때, 갑자기 8080포트(또는 기존에 사용하던 톰캣 포트)를 사용할 수 없다고 에러가 뜨는 경우가 있다. 포트가 정상적으로 종료되지 않..

Spring 2024.11.18

[Spring]JWT

1. JWT란? JWT(Json Web Token)란 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. 즉 토큰의 한 종류이다. 일반적으로 쿠키 저장소를 사용하여 JWT를 저장한다. 앞서 쿠키-세션 방식을 공부했는데 JWT를 사용하는 이유에 대해 알아보자. 클레임(Claim)은 JWT 내에서 중요한 정보를 담고 있는 부분으로, 토큰의 인증 및 권한 부여, 데이터 전달 등 여러 목적을 위해 사용된다. 이 정보는 JWT의 페이로드(payload)에 담기며, 이를 통해 시스템 간에 다양한 정보를 안전하게 공유할 수 있다. 2. JWT 사용 이유 만약 서버가 1대인 경우1. 서버의 부하 증가Session1이 모든 클라이언트의 로그인 정보를 소유하고 있다고 하자. 이..

Spring 2024.11.08

[Spring] 쿠키와 세션 인증 방식

1. 인증과 인가 인증(Authentication)해당 유저가 실제 유저인지 확인하는 개념이다.예) 스마트폰 지문인식, 주로 사용하는 사이트에 로그인 인가(Authorization)해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념이다.예) 관리자는 관리자 권한으로 관리자 페이지에 접근할 수 있다.  2. 웹 애플리케이션 인증  일반적으로 서버 - 클라이언트 구조로 되어있고 실제로 이 두 가지 요소는 멀리 떨어져 있다. Http라는 프로토콜을 이용하여 통신하는데 이로 인해 비연결성과 무상태가 이루어진다. (HTTP의 특징!) 비연결성(Connectionless)서버와 클라이언트가 연결되어 있지 않다는 의미이다.그 이유는 리소스를 절약하기 위해서인데 실제로 계속 연결되어 있다면 서버의 비용이 ..

Spring 2024.10.31

[Spring] 로그(log)

로그란 대체 뭘까?로그는 스프링 프로젝트를 만들고 실행을 해보면 바로 볼 수가 있는데 날짜, 중요도, 발생한 위치, 내용 순으로 찍어준다. 로그는 디버깅할 때 코드 중간중간에 넣어서 확인용을 쓰이거나 요청 메세지를 찍고 싶을 때 쓴다.    System.out.println()와 한번 비교해보자. [결과]print문은 내용만 보여주는 반면 log는 언제 어디서 무슨 내용인지 보여준다.  만약 서버에서 Error가 나올 경우 그 Error가 언제, 어디서, 무슨 내용인지 알아야 한다. 따라서 실무에서는  log를 사용한다. 로그를 남기면 로그를 따로 뽑아서 파일 형태로 만들어서 모아 볼 수 있으며 디버깅할 때도 편리하게 쓸 수 있다.   @ Slf4j@ Slf4j는 다음 코드를 자동으로 생성해서 로그를 선..

Spring 2024.10.31

[Spring] Bean을 수동으로 등록하는 방법 및 BCryptPasswordEncoder

일반적으로 @Component를 사용하여 Bean을 자동으로 등록하는 것이 좋다. @Component를 사용하면 @ComponemtScan에 의해 자동으로 스캔되어 클래스를 Bean으로 등록해 준다.왜냐하면 프로젝트의 규모가 커질 수 록 등록할 Bean들이 많아지기 때문이다. 그러면 Bean 수동 등록은 언제 사용될까?기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들은 수동으로 등록하는 것이 좋다.수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다는 장점이 있다. Bean 수동 등록하는 방법@Configurationpublic class PasswordConfig { @Bean public PasswordEncoder passwordEncoder() { ..

Spring 2024.10.08

[Spring] Spring MVC / Spring HTTP 요청 처리 방법 / Servlet / DispatcherServlet

Spring MVC란 Model - View - Controller의 약자소프트웨어 디자인 패턴 중 하나이다.MVC 디자인 패턴 MVC 패턴은 구성 요소를 위의 세 가지로 구분하여 역할을 분리합니다. Model데이터와 비즈니스 로직을 담당한다.데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업 수행 View사용자 인터페이스를 담당한다.사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현한다. ControllerModel과 View 사이 상호작용을 조정하고 제어한다.사용자의 입력을 받아 Model에 전달, Model의 결과를 바탕으로 View를 업데이트 한다. MVC 디자인 패턴을 사용하는 이유소프트웨어를 구성하는 요소를 분리 → 코드의 재사용성과 유지보수성을 높임 & 개발자 협업 용이    Sp..

Spring 2024.09.28

[Spring] Lombok / application.properties

Lombok이란?자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/생성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리이다.설치세팅 Windows: Ctrl + Alt + SmacOS: command +검색창에 "Annotation Processors" 입력 후, 우측 "Enable ~" 체크하고 OK 클릭Annotation Processors(애노테이션 프로세서)는 컴파일 단계에서 Annotation에 정의된 일렬의 프로세스를 동작하게 하는 것을 의미한다.컴파일 단계에서 실행되기 때문에 빌드 단계에서 에러를 출력하게 할 수 있고, 소스 코드 및 바이트 코드를 생성할 수도 있다.Shift 두 번 누르고 plugins 입력 후 엔터 설치 후 재시작Lombok을 검색했을 때 i..

Spring 2024.09.28

[Spring] 테스트 코드 JUnit

버그(bug)란?소프트웨어가 예상하지 못한 결과를 내는 것이다.소스 코드나 설계과정에서의 오류 때문에 발생. 따라서 소프트웨어가 예상한대로 결과를 내는지 모든 상황에서 체크를 해야 하기 위해 테스트를 한다. 테스트 1. 블랙박스 테스팅소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서 하는 검사.웹 서비스의 사용자의 입장에서 동작을 검사한다.장점누구나 테스트가 가능단점기능이 증가될 수록 테스트의 범위가 증가한다. → 시간이 늘어남.테스트 하는 사람에 따라 테스트 퀄리티가 다를 수 있습니다. → QA 직군이 있는 이유 2. 개발자 테스트개발자가 직접 "본인이 작성한 코드"를 검증하기 위해 "테스트 코드"를 작성한다. 장점빠르고 정확한 테스트가 가능하다.테스트 자동화가 가능하다.배포 절차 시 ..

Spring 2024.09.25

[Spring] HTTP / Headers탭 / Response 탭 / header과 payload

HTTP(HyperText Transfer Protocol)데이터를 주고받는 양식을 정의한 "통신 규약" 중 하나이다. HTTP로 데이터를 주고받는 예시HTTP에서는 언제나 Request, Response라는 개념이 존재한다.브라우저는 서버에게 자신이 원하는 페이지(URL)를 요구(Request)한다.서버는 브라우저가 원하는 페이지가 있는지 확인하고 있다면 해당 페이지에 대한 데이터를 실어 응답(Response)한다.만약 없다면 없는 페이지에 대한 데이터를 반환한다.브라우저는 서버에게 전달받은 데이터를 기반으로 브라우저에 그려준다.   Headers 탭 General브라우저에서 서버로 보낸 Request 데이터이다. HTTP 상태 코드는 3자리 숫자로 이루어져 있다. 첫 번째 자리 숫자는 상태 코드의 분..

Spring 2024.09.25

[Spring] Apache Tomcat / SpringBoot와 Spring / Postman

Apache Tomcat이란? Web Server와 Web Application Server(WAS)Web Sever:브라우저에서 URL을 입력하여 어떠한 페이지를 요청했을 때 HTTP의 요청을 받아들여 HTML 문서와 같은 정적인 콘텐츠를 사용자에게 전달해 주는 역할 Web Sever의 역할 정적인 콘텐츠 즉, 이미 완성이 되어있는 HTML과 같은 문서를 브라우저로 전달 브라우저로부터 ‘로그인하여 MyPage를 요청’과 같은 동적인 요청이 들어왔을 때 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에 전달종류로는 Apache, Nginx 등이 있다.WAS웹 서버와 같이 HTTP 기반으로 동작웹 서버에서 할 수 있는 기능 대부분을 WAS에도 처리 가능동적인 콘텐츠(로그인, 회원가입 처리 /..

Spring 2024.09.25