본문 바로가기

STUDY/TIL

(27)
JWT를 어디에 저장할까 항상 아무 생각 없이 LocalStorage에 저장했었는데요... 안된답니다..🙅‍♀️ 1. LocalStorage WebStorage의 하나인 localStorage에 저장하는 방식. 가장 흔히 사용하는 방법이다. 장점: 웹 페이지를 새로고침 해도 살아있음 단점: XSS 공격에 취약 sessionStorage는..? localStorage와 똑같다. 브라우저 종료되었을 때 사라지냐, 사라지지 않느냐의 차이 2. Cookie 쿠키에 그냥 저장하는 방식은.. 안전하지 않다. 하지만 httpOnly, sameSite, secure설정을 한다면..?! HttpOnly: javascript에서 document.cookie로 접근하는 것을 막는다 SameSite: SameSite=strict설정을하게되면, CSR..
HTTP 상태코드 자주 자용되는 코드들만 정리 Http Status Code Http 상태 코드는 Http 요청이 성공적으로 완료되었는지 여부를 나타낸다. 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능! 상태 코드는 다섯 가지로 분류할 수 있다. 1xx (Informational) 2xx (Successful) 3xx (Redirection) 4xx (Client Error) 5xx (Server Error) 1xx 요청이 수신되어 처리 중. 거의 사용하지 않음 2xx - 성공 클라이언트의 요청을 성공적으로 처리했을 때 사용 200 OK 201 Created : 요청이 성공해 그 결과 새로운 리소스가 생성됨. 일반적으로 POST혹은 PUT요청 후 발생하는 응답 202 Accepted : 요청이 접수되었으나,..
REST URI 설계 REST? REpresentational State Transfer의 약자 REST의 기본 원칙을 지키면 RESTful하다고 할 수 있지.. client-servr Stateless Cacheable Uniform interface Layered system Code on demand (optional) REST는 HTTP가 아니다 자원은 명사로 표현 RESTful URI는 자원(resource)을 명사로 표현한다 document 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스 row) 예: users/{id}, /users/admin collection 서버가 관리(server-managed)하는 리소스 디렉터리 서버가 리소스의 URI를 생성하고 관리 예: /members, /users/{id}/a..
Spring WebFlux Spring WebFlux Spring Framework, Spring Web MVC를 포함하는 기존의 웹 프레임워크는 Servlet API와 Servlet containers를 통해 만들어졌었다. Spring WebFlux는 reactive-stack web framework다. 스프링 5.0버전에 추가된 개념으로, non-blocking과 Reactive Streams를 완전히 지원한다. 내장서버는 기본적으로 Tomcat이 아닌 Netty 서버를 사용한다. (톰캣으로 사용할 수는 있다) Spring Web MVC와 Spring Web Flux는 동시에 사용할 수 있다. 두 가지를 동시에 사용하게 되면 MVC가 기본으로 적용되고 Spring MVC controller에 reactive WebClient..
URI와 URL 결론: URL은 URI에 포함된 개념이다. 둘을 완전히 분리해서 생각할 수 없고, 거의 동일하게 생각해도 무방하다. URI(Uniform Resource Identifier) 리소스를 식별하는 통합된 방법 Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원. URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL(Uniform Resource Locator) 리소스가 있는 위치 URL은 scheme://[userinfo@]host:[:port][/path][?query][#fragment]와 같은 구조로 구성되어 있다. scheme(스키마)에는 주로 프로토콜(http, https 등)을 사용한다 userinfo는 URL에 사용자 정..
JPA JPA? JPA는 Java Persistence API의 약자로, 애플리케이션과 JDBC사이에서 동작하는 자바진영의 ORM 표준 인터페이스다. 이름에서도 알 수 있듯 Java에서 제공하는 API다. (스프링에서만 사용할 수 있는 것이 아님) JPA는 툴이나 프레임워크가 아닌 인터페이스로, 이를 구현하는 구현체는 여러가지가 있는데(Hibernate, EclipseLink 등) 대표적으로 Hibernate를 많이 사용된다. ORM은 Object Relational Mapping. 즉 객체(Object)와 데이터베이스를 매핑하는 것을 말함. 객체(자바 클래스)와 데이터베이스 테이블이 매핑되는 것이지 SQL과 매핑되는 것이 아님. JPA를 사용해야 하는 이유 생산성 지루하고 반복적인 코드와 CRUD용 SQL을 ..
Lombok 롬복은 어노테이션 프로세서(annotation processor)로, 컴파일 시점에 어노테이션으로 코드를 추가할 수 있다. @Getter, @Setter어노테이션을 추가했다면, 컴파일되는 시점에 실제로는 getter() setter()메서드가 실제 코드로 추가된다는 것. @Getter / @Setter getter나 setter 혹은 둘 다 필요한 변수에 어노테이션을 사용하여 바로 getter, setter를 생성할 수 있다. 필요하면 클래스에 어노테이션을 사용할 수도 있는데, static이 아닌 모든 멤버변수에 getter, setter메서드가 생성된다. @Getter @Setter public class Perscon { private String name; private int age; } @Set..
Svelte | Svelte 프로젝트 github pages로 배포하기 github pages에 배포를 해보자...! 일단 build를 한 후 $ npm run build 빌드 결과물이 담긴 public 폴더로 이동 $ cd public index.html수정 "/"으로 시작되는 경로들을 모두 "./"으로 변경 public경로에서 git init후 gh-pages라는 브랜치 생성(브랜치명은 자유) $ git init $ git branch gh-pages 리포지토리 연동 $ git remote add [별칭] [리포지토리 주소] 그리고 푸시푸시베이비 $ git add . $ git commit -m "커밋메시지" $ git push origin gh-pages 이제 github 세팅을 변경합시다 Settings 메뉴로 들어가서 GitHub Pages설정에서 gh-pages로..