분류 전체보기 75

TIL 2024-11-13 (Spring 숙련 - 2주차)

- 학습한 내용 CookieSessionTokenJWTFilter   Cookie주로 사용자 세션 관리(로그인, 장바구니, 접속시간)나 광고 트래킹(사용자 행동) 등의 목적으로 사용.웹 브라우저에 저장되는 데이터Cookie에 담겨있는 값으로 인증/인가 를 진행한다.서버가 클라이언트의 상태를 기억하도록 도와준다.로그인 상태 유지 등에 활용된다.보안에 취약하다민감한 정보를 저장하지 않아야한다.사용자 임의 수정이 가능하다. Session서버에서 중요한 정보를 보관하며 로그인을 유지하는 방법SessionId를 탈취하여도 민감한 정보는 없다.  만료 시간을 설정해서 탈취 문제를 최소화한다.HttpSession은 최근 Session을 요청한 시간을 기준으로 만료 시간을 유지한다.동작 순서 Token인증/인가 과정에..

TIL/Spring 2024.11.13

TIL 2024-11-12 (Spring 숙련 - 1주차)

1 ) 학습한 내용SOLID 원칙과 Spring 객체 지향Spring ContainerSpring BeanIOC/DI싱글톤 패턴Spring Bean 등록의존관계 주입Validation SOLID 원칙 - 객체 지향 설계의 5가지 기본 원칙, 소프트웨어 설계에서 유지보수성, 확장성, 유연성을 높이기 위한 지침을 제공.종류단일 책임 원칙 SPR (Single Responsibility Principle)개방 폐쇄 원칙 OCP (Open Closed Principle)리스코프 치환 원칙 LSP (Liskov Substitution Principle)인터페이스 분리 원칙 ISP (Interface Segregation Principle)의존관계 역전 원칙 DIP (Dependency Inversion Princ..

TIL/Spring 2024.11.12

Trouble Shooting ( 일정 관리 앱)

1 ) 배경처음에 날짜를 직접 입력하게 만들었는데, 조건을 보니 날짜별로 내림차순 정렬이라는 조건 확인.  2) 발단조건을 맞추기 위해 날짜를 내림차순으로 정렬하였으나 가장 최근 기록이 올라오지 않는 것을 확인.이유가 시, 분, 초를 넣어주지 않아서 정렬이 똑바로 되지 않음  3) 전개 & 위기사용자가 데이터를 직접  YYYY-mm-DD  HH : mm : sss을 입력하기엔 너무 번거로울 뿐 더러 날짜를 자동으로 실시간 데이터를 넣어주는 게 프로그램에 더욱 적합하다고 생각이 들었으나 자동 입력이 안되는 문제 발생 // 일정 생성 @PostMapping public ResponseEntity createCalender(@RequestBody CalenderRequestDto requestDto..

TIL/Project 2024.11.08

TIL 2024-11-07 (Spring 입문 - 응답 데이터)

1 ) 응답 데이터Server에서 Client로 Data를 전달하는 방법은 정적리소스, View Template, HTTP Message Body 세가지 방법이 존재  정적리소스정적인 HTML, CSS, JS, Image 등을 변경 없이 그대로 반환한다.View TemplateSSR(Server Side Rendering)을 사용할 때 View가 반환된다.HTTP Message Body응답 데이터를 직접 Message Body에 담아 반환한다.  정적 리소스 - 웹 애플리케이션에서 변하지 않는 파일들을 의미한다. 예를 들어 HTML, CSS, JavaScript, 이미지 파일들 등이 정적 리소스에 해당된다.Spring boot의 정적 리소스 경로 ( 아래 경로들에 정적 리소스가 존재하면 서버에서 별도의 ..

TIL/Spring 2024.11.07

TIL 2024-11-06 (Spring 입문 - 요청 데이터)

1 ) @RequestBody, @ResponseBodySpring에서 @RequestBody, @ResponseBody 어노테이션을 사용하면 각각 Request, Response 객체의 Body에 편하게 접근하여 사용할 수 있다. @RequestBody요청 메시지 Body Data를 쉽게 조회할 수 있다.@RequestHeader요청 헤더 정보 조회@ResponseBody응답 메시지 바디에 쉽게 담아서 전달할 수 있도록 해준다.View가 아닌 데이터를 반환한다.  요청 파라미터, HTML Form Data에 접근하는 경우@RequestParam, @ModelAttributeHttp Message Body에 접근하는 경우@RequestBody를 사용한다.(JSON, XML, TEXT)  2 ) JSONJ..

TIL/Spring 2024.11.06

TIL 2024-11-05 (Spring 입문 - Spring Annotation, Mapping)

1 ) Slf4jSlf4j는 인터페이스이고 그 구현체로 Logback같은 라이브러리를 선택한다.실제 개발에서는 Spring boot가 기본으로 제공하는 Logback을 대부분 사용한다.  @ControllerView가 있는 경우 사용한다.즉, Template Engine인 Thymeleaf, JSP 등을 사용하는 경우@RestController응답할 Data가 있는 경우 사용현재는 대부분 @RestController를 사용하여 API가 만들어진다 (Restful API)return 값으로 view를 찾는 것이 아니라 HTTP Message Body에 Data를 입력한다. 2 ) Annotation @ComponentSpring Bean에 등록하여 역할을 수행한다.Spring Bean은 애플리케이션의 구성..

TIL/Spring 2024.11.05

TIL 2024-11-04 (Spring 입문 - MVC)

스프링을 처음 접하여 처음 배우는 내용이 많아 TIL이 밀려버렸다..ㅠ 더욱 열심히 하자! 1 ) Template Engine동적인 웹 페이지를 생성하기 위해 사용되는 도구이며 템플릿을 기반으로 정적인 부분과 동적인 데이터를 결합하여 HTML, XML 등의 문서를 생성하는 역할을 수행한다.우리가 흔히 말하는 UI(User Interface)를 만들며, SSR(Server Side Rendering)에 사용된다.템플릿 엔진이 나온 이유 - 자바 코드로 HTML을 만들어 내는 것이 아닌 HTML 문서에 동적으로 변경해야 하는 부분만 자바 코드를 넣을 수 있다면 더 편리하다 대표적인 템플릿 엔진Thymeleaf - Spring과 통합 잘 되어있음 주로 이거 사용하는 것 같다.JSP - 예전엔 많이 사용했다고 ..

TIL/Spring 2024.11.04

TIL 2024-11-01 (Spring 입문 - Web Application)

1 ) Web Server웹 서버는 HTTP 기반으로 동작하며 정적 리소스(HTML, CSS, JS, 이미지 등)를 제공한다.정적 리소스? - 리소스가 이미 완성된 채로 서버에 존재하여 원본 그대로 응답하는 데이터  WAS(Web Application Server)HTTP 기반으로 동작하며 웹 서버의 기능을 포함한다. 추가적으로 코드를 실행해서 Application 로직을 수행하고 DB와 상호작용하여 동적 컨텐츠를 생성.대표적인 WASTomcat - Spring boot 내장JettyUndertow  Web Server 와 WAS 차이점실제로는 Web Server도 Application 로직 포함 가능.WAS는 Application 코드를 실행하는 것에 더욱 특화되어있다.java에서는 Servlet Co..

TIL/Spring 2024.11.01

TIL 2024-10-31 (Spring 입문 - HTTP)

1 ) HTTP  동작 순서클라이언트는 Request(요청)을 보내고, 응답을 기다린다.서버는 요청에 대한 처리를 수행 후 결과를 Response(응답)한다.     2. Message 구조Start Line Get요청의 의도를 가진 GET, POST, PUT, PATCH, DELETE 등이 있다Create - POSTRead - GETUpdate - PUT(전체), PATCH(일부)Delete - DELETERequest Targetpath/eventHTTP Request가 전송되는 대상, 절대 경로, ("/"로 시작하는 경로)Query String(=Query Parameter)에 해당되는 값도 포함된다.HTTP Version1.1HTTP Version을 나타낸다.HeaderHost : ... 를 ..

TIL/Spring 2024.10.31

TIL 2024-10-30 (Spring 입문 - 2)

1 ) Web 기초DNS ( Domain Name System)도메인 이름과 IP 주소를 서로 변환하는 역할을 수행한다. 즉, 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 읽을 수 있는 IP 주소로 변환한다.DNS가 나오게된 이유 컴퓨터 간의 통신을 위해선 IP 주소가 필요하다.IP는 변경되는 주소이다.DNS 동작 순서원하는 이름과 도메인을 구매한 후, DNS 서버에 등록.도메인 명을 입력하면 DNS 서버는 IP 주소를 반환한다.IP가 변경되면 DNS 서버에 등록된 IP 주소만 바뀌면 된다.우리는 IP주소의 형태가 아닌 도메인의 형태로 웹에 접속된다. URI (Uniform Resource Identifier)인터넷 자원을 나타내는 고유 식별자를 뜻한다.Uniform : 자원을 식별하는 통일된 방식을 의..

TIL/Spring 2024.10.30