본문 바로가기

개인 공부185

TIL : 서버 인증 방식 (쿠키, 세션, 토큰) (15) 🍪 쿠키 인증 방식 쿠키란? 서버를 통해서 클라이언트 쪽에 저장되는 Key-Value 형식의 문자열 덩어리이다. 이 쿠키를 통해서 클라이언트가 누구인지 인증한다. 🌊 Flow 클라이언트가 서버에 요청을 보낸다. 서버가 요청에 대한 응답 헤더에 쿠키를 담아서 보낸다. 이후 클라이언트가 요청을 보낼 때마다 쿠키를 같이 보내고 서버는 해당 쿠키로 클라이언트를 확인한다. 🧷 단점 요청 시 쿠키의 값을 그대로 보내기 때문에 보안성이 떨어진다. 쿠키에는 용량 제한이 있다. 브라우저마다 쿠키 지원 형태가 다르기 때문에 공유가 불가능하다. 📖 세션 인증 방식 쿠키의 보안 이슈를 해결하기 위해 클라이언트 쪽이 아닌 서버 측 저장소에 보관하는 방식이다. 쿠키와 마찬가지로 Key-Value의 형태의 데이터를 저장하고 Key.. 2022. 11. 30.
TIL : Swagger 사용하기 (14) 📚 Swagger Swagger란? API 명세서를 자동으로 작성해주는 라이브러리이다. Swagger2, Swagger3이 있는데 버전이 다른 게 아니라 진짜 다른 라이브러리이다. (Spring Rest Doc) 1️⃣ 의존성 추가하기 implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' 2️⃣ Configuration 추가하기 @Configuration @EnableSwagger2 public class SwaggerConfig { /** http://loca.. 2022. 11. 28.
자바 ORM 표준 JPA 프로그래밍 : 연관관계 매핑 기초 (5장) 📌 단방향 연관관계 회원과 팀의 관계를 통해서 객체와 테이블의 차이를 보면 다음과 같다. 객체 : 단방향 관계이다. 회원은 Team 필드를 통해서 팀을 알 수 있지만, 반대로 팀은 알 수 없다. 테이블 : 양방향 관계이다. 외래 키를 통해서 서로 JOIN 할 수 있다. 참조를 통한 연관관계는 항상 단방향이다. 양방향으로 만들고 싶으면 반대쪽에서도 필드를 추가해 참조를 보관해야 한다. 하지만 이건 서로 다른 단방향 관계 2개이다. 테이블과 다르게 외래 키 하나로 양방향으로 JOIN 할 수 없다. 1️⃣ 순수한 객체 연관관계 참조를 통해서 연관관계를 탐색하는 것을 객체 그래프 탐색이라고 한다. 2️⃣ 테이블 연관관계 데이터베이스의 외래 키를 사용해서 연관관계를 탐색하는 것을 조인이라고 한다. 3️⃣ 객체 관.. 2022. 11. 18.
[React] useEffect 경고 : React Hook useEffect has missing dependencies 📌 UseEffect 렌더링 이후에 발생하는 Side Effect들을 처리하기 위해 제공하는 리액트 Hook이다. // Callback Function, deps로 구성되어 있다. useEffect( () => { do something.. }, [deps]) deps에 지정해둔 값에 따라 다음과 같은 Side Effect에 맞춰 Callback 함수를 실행한다. Mount, 처음 나타났을 때 Unmount, 사라질 때 Update, 특정 props가 바뀔 때 🧐 Missing Dependency Warnig? React Hook useEffect has a missing dependency: 'xxxxx'. Either include it or remove the dependency array. (re.. 2022. 10. 26.
[Python] 프로그래머스 : 호텔 방 배정 https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 ✔️ 느낀 점 💻 코드 import sys sys.setrecursionlimit(10000000) def find(x, rooms): if x not in rooms: rooms[x] = x+1 return x rooms[x] = find(rooms[x], rooms) return rooms[x] def solution(k, room_number): ans = [] rooms = .. 2022. 10. 19.
[Backend] 트랜잭션, Transaction (1) ✍️ 학습 목표 트랜잭션 트랜잭션 격리 수준 📌 트랜잭션 트랜잭션이란? 데이터베이스의 상태를 변화시키는 작업의 단위이다. Data Manipulation Language(DML)을 사용해서 DB에 접근하는 것을 말한다. 🧷 트랜잭션 특징, ACID Atomicity : 트랜잭션이 DB에 모두 반영되거나 반영되지 않아야 한다. Consistency : 트랜잭션 이전과 이후의 데이터베이스의 상태는 동일해야 한다. Isolation : 모든 트랜잭션은 다른 트랜잭션으로부터 독립적이다. Durability : 성공적으로 처리된 트랜잭션의 결과는 지속적으로 유지돼야 한다. 🧷 트랜잭션 연산 Rollback : 작업 도중 오류가 발생하면 이전 상태로 되돌린다. Commit : 작업이 성공적으로 처리되면 데이터베이스.. 2022. 10. 13.