WIL(2022-11-14~2022-11-20) 프로젝트 , 알고리즘 문제풀이
이번주 학습 요약
1. 첫 번째 프로젝트
1-1) S.A 작성
ㄴ 와이어프레임 , Api 등 작성
1-2) 트러블 슈팅
ㄴ 문제 발생, 문제 원인 확인, 문제 해결
1-3) github 사용 - commit , branch , merge 등
2. jwt 인증방식
- jwt 인증방식 - 서버에 세션 정보를 저장하지 않고 , 로그인 시 클라이언트에게 로그인 사용자 정보가 포함된 토큰을 발행하고, 클라이언트는 서버에 작업을 요청 할 때 마다 토큰을 같이 보내어 토큰에 저장된 사용자 정보를 가지고 처리하는 방식
- 서버 세션 방식과 jwt 인증의 차이
서버 세션 | JWT | |
인증 정보 보관 | 서버 | Token에 포함, 클라이언트 |
인증 정보 노출 여부 | 노출 x | 노출 |
인증 정보 무효화 | 쉽게 가능 | 복잡한 로직 구현 |
타임아웃 처리 | 사용자가 요청을 보내면 계속 연장 | 연장 불가능, 재발급 필요 |
- jwt 장단점
- 인증에 필요한 모든 정보를 토큰 자체에 포함되기 때문에 별도의 인증 저장소가 필요없음
- 쿠키를 전달하지 않아도 되기 때문에 쿠키 사용시 발생하는 취약점이 사라짐
- REST 서비스로 제공 가능
- 독립적임
3. API
- APi - 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘
- REST API - Representational State Transfer의 줄임말으로 클라이언트가 서버 데이터에 엑세스하는데 사용할 수 있는 GET,POST,PUT등의 함수 집합을 정의한것
- 프로젝트 진행하면서 작성한 API
4. 알고리즘 문제 풀이
java 문법
- a.toLowerCase() >> a문자열 소문자
- b.toUpperCase() >> b문자열 대문자
- StringBuffer sb = new StringBuffer(a);
String revers = sb.reverse().toString(); >> 문자열 뒤집기
-String mA = String.valueOf(변수명1); >> 정수형을 문자형으로
-String mB = Long.toString(변수명1); >> long형을 문자형으로
-String mC = Integer.toString(변수명2); >> 정수형을 문자형으로
-String mD = Long.parseLong(변수명2); > 문자열에서 long형으로
- 문자열.contains("포함 글자") - 문자열 포함 여부 확인
- list.sort(Comparator.naturalOrder()); > java 리스트 오름차순
- ArrayList<Integer> 리스트명 = new ArrayList<>(); > arraylist 생성
ㄴ 리스트명.get(n) > 리스트의 n번째 요소 출력
ㄴ 리스트명.size() > 리스트의 사이즈 출력 (배열.legnth)
더 공부해야될 부분
-for-each문
-향상된 for문
-string Builder,Buffer
-배열,리스트
-hash map
-collections
이번주 느낀점
실제로 프로젝트를 기획하고 진행하고 완성하면서 생각보다 신경쓸 부분이 많았고 예상 외 상황이 많이 발생했지만
기획부터 완성까지 끝까지 완료하는 과정에서 많은 시행착오를 거치고 해결하면서 이전 보다 많이 성장한 것 같다
알고리즘 문제를 처음 접했을 때는 어려움도 많고 익숙하지 않았지만 알고리즘 문제 풀이 세션 강의를 듣고 문제 풀이 접근 법등을 배운 뒤 문제를 풀어보니 한결 수월했다.
java 문법에 대해 새로운 것들을 많이 알았고 부족한 부분은 공부가 필요할 것 같다