본문 바로가기

반응형

개인공부

(206)
Socket 정리 Socket 소켓(Socket)은 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 처음 소개되었으며 현재 널리 사용되는 것은 1986년의 BSD UNIX 4.3에서 개정된 것입니다. 소켓은 소프트웨어로 작성된 추상적인 개념의 통신 접속점이라고 할 수 있는데 네트웍 응용 프로그램은 소켓을 통하여 통신망으로 데이터를 송수신하게 된다. 소켓은 응용 프로그램에서 TCP/IP를 이용하는 창구 역할을 하며 응용 프로그램과 소켓 사이의 인터페이스 역할을 하고 있습니다 Socket VS Port 소켓을 설명하려면 Port와 차이점을 알아야 한다. 데이터를 주고 받기 위해서는 Host 주소 이외에도 실제로 데이터를 받을 프로세스가 필요하다. 이들을 식별하느 정보가 portN..
클라이언트 token 보안 전략 Access Toekn 만 사용 사용자가 로그인 할 때 클라이언트에게 AccessToken을 발급한다. 이때 AccessToken은 서버에서 관리할 필요가 없고 메모리상에서 미리 정의 된 비밀키를 이용해서 AccessToeken의 유효성을 검증한다. 짧은 만료 시간으로 설정 (30 분 내외) 장점 - 기기나 AccessToken이 탈취되더라도 빠르게 만료됩니다. 단점 - 사용자는 자주 로그인을 해서 인증 받아야한다. 한 사용자가 오랫동안 사용하는 서비스일경우 서비스를 이용하다 도중에 인증이 만료되어 다시 로그린해야하는 불편함을 겪는다. 긴 만료 시간을 설정(2주 에서 한달) 장점 - 사용자가 로그인을 자주 할 필요가 없다 편하다 단점 - 기기나 AccessToken이 탈취되면 공격자가 오랫동안 제약 없이..
REST API / Spring hateoas REST API REST API를 공부하면서 이응준님의 "그런 REST API로 괜찮은가"를 참조했다. https://tv.naver.com/v/2292653 Day1, 2-2. 그런 REST API로 괜찮은가 NAVER Engineering tv.naver.com REST API란 지금까지 client가 api요청을 보내면 그 값을 JSON, XML로 반환해주는 api정도?? 로만 인식하고 있었다. 영상을 들어보니 REST API라는 말이 맞을 수도 있고 틀릴 수도 있다는데 REST API를 만든 로이필딩씨께서는 self-descriptive messages, HATEOAS를 충족하지 못하면 REST API가 아니라고 한다..? REST API이기 위한 몇가지 조건이 있다. Uniform Interfa..
CSRF, CORS 개념 두가지 단언가 이름도 비슷하고 자꾸 혼동이와서 정리할려고 한다. CORS(Cross-Origin Resource Sharing) CORS는 한국어로 직역하면 교차 출처 리소스 공유라고 해석된다. 여기서 교차출처란 "다른출처"를 의미한다. 출처란 무엇인가? 이때 출처는 Protocol과 Host를 나타낸다 (:8080 , :433 포트 번호까지 포함) 즉 서버의 위치를 찾아 가기 위한 기본적ㅇ니 것들을 합쳐놓은 주소이다. SOP(Same-Origin Policy) 웹 생태계에는 다른 출처로의 리소스 요청을 제한하는 것과 관련된 두 가지 정책이 존재한다. 한 가지는 이 포스팅의 주제인 CORS, 그리고 또 한 가지는 SOP(Same-Origin Policy)이다. SOP는 지난 2011년, RFC 6454에..
SpringSecurity 정리 및 샘플코드 SpringSecurity란? Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권환, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Intercepteor는 Dispatcher와 Controller 사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다는 장점이 있다. 인증관련 architecture 의존성 org.sp..
SpringSecurity 패스워드 암호화(bcrypt) bcrypt란? bcrypt는 비밀번호 해시함수로 Niels Provos와 David Mazieres에 의해 만들어졌으며 Blowfish라는 암호에 기반하였다. Bcrypt는 조정할 수 있는 알고리즘을 써서 패스워드를 저장한다. Bcrypt는 패스워드를 해싱할 때 내부적으로 랜덤한 솔트를 생성하기 때문에 같은 문자열에 대해 다른 인코드된 결과를 반환한다. 하지만 공통된 점은 매번 길이가 60인 String을 만든다. Spring Security의 PasswordEncolder를 사용 의존성 org.springframework.boot spring-boot-starter-security Bean 등록 @Bean public PasswordEncoder passwordEncoder() { return Pas..
Mybatis VS Hibernate SQL Mapper SQL Object 필 SQL Mapper는 SQL 문장으로 직접 데이터베이스 데이터를 다룬다. 즉, SQL Mapper는 SQL을 명시해줘야 한다. EX) Mybatis, JdbcTemplates 등 ORM(Object-Relational Mapping) , 객체 - 관계 매핑 데이터베이스 데이터 Object 필드 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다. 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. ORM을 이용하면 SQL Query가 아닌 직관적인 코드(메서드)로 데이터를 조작할 수 있다. 객체 간의 관계를 바탕으로 SQL을 자동으로 생성한다. JPA(Java Persistent API) java ORM 기술에 대한 API 표준 명세로..
git flow, git hub flow , git lab flow ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/ Git flow, GitHub flow, GitLab flow Git flow, GitHub flow, GitLab flow 에대해서 좀 알아보자. 머리아프다. ujuc.github.io

반응형