2024.05.19 – [Spring] – [Spring] Security,Jwt 그리고 쿠키를 이용한 로그인과 인증처리 (feat. Front End) [1] – 쿠키와 세션이란? [Spring] Security,Jwt 그리고 쿠키를 이용한 로그인과 인증처리 (feat. Front End) [1] – 쿠키와 세션이란?개요저는 이전까지 Spring Security을 사용하여 jwt로 인증을 진행하였습니다. Json 로그인이 성공하면 accessToken과 refreshToken을 프론트에 발급해 주었으며, 서버에 접근하기 위해서는 헤더에 토큰 정보100cblog.tistory.com 개요이전 포스팅에서는 쿠키와 세션에 대해 알아보는 시간을 가졌습니다.이번 포스팅에서는 저번에 알아본 쿠키와 세션, JWT등..
[Tistory] 카카오테크캠퍼스 2기 | STEP2 | 27일차(24-07-30) 회고
⭕ 카카오테크캠퍼스 2기 | STEP2 | 27일차(24-07-30) 회고📝 에러 핸들링지난주 리뷰를 통해 서버에서 전달하는 에러 메시지를 활용하는 방법에 대해 고민하게 되었다. 기존에는 fetch를 사용하여 에러를 처리했지만, 서버에서 전달하는 에러 메시지를 활용하면 사용자에게 더 구체적이고 유용한 피드백을 제공할 수 있다는 점을 알게 되었다. 특히, axios를 사용하여 인터셉터를 통해 에러를 처리하는 방법이 더 효율적일 것이라는 피드백에 특히 집중했다.fetch와 axios의 차이점fetch는 브라우저 내장 API로서 가볍고 간편한 비동기 요청 처리 방법을 제공한다. 예를 들어, fetch를 사용하여 HTTP 요청을 보내는 코드는 다음과 같다.fetch(”) .then(response => r..
[Tistory] [정처기 기출 개념 정리] – 1. 소프트웨어 설계
* 2022 1, 2회차 / 2021 1, 2, 3회차를 정리한 내용입니다. UML(Unified Modeling Language) 다이어그램(X): 절차 다이어그램(Procedural diagram)액티비티(Activity) 다이어그램클래스(Class) 다이어그램시퀀스(Sequence) 다이어그램 – UML객체 지향 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화하는데 사용된다.즉, 개발하는 시스템을 이해하기 쉬운 형태로 표현하여 분석가, 의뢰인, 설계자가 효율적인 의사소통을 할 수 있게 해준다. 따라서, 개발 방법론(X)이나 개발 프로세스(X)가 아니라 표준화된 모델링 언어이다.기능적 모델은 사용자 측면에서 본 시스템 기능이며, UML에서는 Usecase Diagram을 사용한다. – UML ..
[Tistory] [C++ 배열 포인터 관련 문법과 활용] 배열 및 포인터 개념, 배열을 매개변수로 던지기, 배열을 return하기
폭탄 폭발 문제 설계하는데, C++에서 배열 포인터 관련 개념 부족, 배열을 매개변수로 던질 때, 배열을 return 값으로 반환할 때 관련 지식 부족해서 포스팅참고 링크는 아래에 있다. [배열과 포인터 관계 기본]=> “배열의 이름은 배열의 시작 주소를 가리키는 상수 포인터다.따라서 포인터로 넘겨줄 때 그냥 배열 이름 그대로 넘겨주면 된다.” 일부 발췌 배열의 이름인 arr = 배열의 주소값 = &arr[0]int *arr = int arr[] 관련 참고 링크 및 출처C언어 배열 리턴과 매개변수 https://velog.io/@sp1rit/C%EC%96%B8%EC%96%B4-%EB%B0%B0%EC%97%B4-%EB%A6%AC%ED%84%B4%EA%B3%BC-%EB%A7%A4%EA%B0%9C%EB%..
[Tistory] EC2 프리티어 Jenkins 서버 다운 현상 (swap 메모리)
😬 EC2가 자꾸 죽어버린다..Jenkins, Docker로 CI/CD를 구성하고 과제를 진행하면서 EC2 무한로딩, 서버 다운 현상이 발생했다.. 안 그래도 Jenkins 할 때마다 애가 좀 버벅거린다 싶은 느낌은 있었다. 🤔 왜 그랬을까??18:15 이후로는 서버가 다운되어 있었고 AWS에서 CPU 사용량과 RAM 사용량을 보니 그럴만했다.. 싶었다…EC2 프리티어에서 사용할 수 있는 t2.micro는 RAM 1GB, 물리 디스크 최대 30GB까지 할당 가능하다. 리소스를 잡아먹는 빌드를 진행하면서 1GB를 야물딱 지게 사용하면서 버티지 못하고 그대로 사망하셨다. 그동안 유료 인스턴스를 제공받아 사용하다 보니 프리티어 인스턴스는 생각보다 작고 소중했다.. 😲 그럼.. 사야 해?..물론.. 구..
[Tistory] Local에서 Docker로 Redash 설치하는 방법 (2024.07 기준)
부트캠프에서 지원해주던 AWS 서버 기간이 끝나서 새롭게 Local에서 Redash를 설치하려했다. 근데, 애초에 Redash 설치하는 방법이 인터넷에 잘 없기도 하고, 있다하더라도 최근 내용이 아니거나, 거의 local에 설치하지 않아서 너무 헤맸다…ㅠㅠ 거의 6-7시간동안은 진행했던 것 같다. 그래도 해결해서 다행이다! 해결하고 보니까 방법이 매우 간단하다^^ (항상 해결하고 막상 보면 쉬움;;) 0. 공식 문서 확인하기먼저, Redash github에서 제공해주는 개발 설정 과정을 확인한다. https://github.com/getredash/redash/wiki/Local-development-setup Local development setupMake Your Company Data Driv..
[Tistory] [NLP 학습] 1주차 : Attention Mechanism / 논문 리뷰 : Neural Machine Translation by Jointly Learning to Align and Translate
이전 포스트에서 다룬 Seq2Seq의 개념을 바탕으로 Attention Mechanism에 대해 학습해본다. Attention Mechanism과 관련된 논문 “Neural Machine Translation by Jointly Learning to Align and Translate”를 리뷰한다. 1. Attention Mechanism 2. 논문 리뷰 1. Attention Mechanism 1) Attention Mechanism 등장 배경 – Seq2Seq 방식은 고정된 크기의 벡터에 문장 속의 모든 정보를 인코딩하기 때문에 정보 손실이 발생한다. – Seq2Seq까지의 encoder-decoder 모델은 다른 길이의 input에 대해 고정된 길이의 context vector를 출력 – ..
[Tistory] 230928
due on or before today short mode not done 🍒 오늘 공부한 내용 커넥션 풀링 (Connection Pooling) DataSource 객체를 통해 미리 커넥션을 만들어 두는 것 새로운 커넥션을 생성하는 것이 비용이 많이 들어서 미리 만들어두면 성능상 이점이 있다. (쓰레드 풀에 미리 쓰레드 만들어 놓는 것과 같은 이점) 리소스 관리 쓰레드 재사용 제어 가능한 병렬처리 부하 분산 커넥션 풀링에 미리 만들어둔 커넥션은 재사용 가능 Connection Pooling and Statement Pooling package connectionpool; import com.mysql.cj.jdbc.MysqlDataSource; import com.zaxxer.hikari.Hikari..
[Tistory] [React] 디바운싱을 이용한 추천 검색어, 인기 검색어, 키워드 검색 기능 구현하기
검색 페이지 요구사항 1. 검색 페이지에 맨 처음 진입 시 사용자들이 제일 많이 검색한 위스키 리스트 Top 10을 출력한다. 2. 사용자가 입력한 값이 있을 경우 해당 입력값을 기반으로 입력값이 포함된 위스키 리스트를 출력한다. 3. 사용자가 값을 입력하고 검색 버튼을 클릭했을 경우 바로 해당 키워드가 포함된 위스키 리스트를 출력한다. 4. input에 입력된 값이 아무것도 없을 경우 다시 위스키 리스트 Top 10을 출력한다. 5. 리스트에 출력된 위스키들은 각각 클릭 시 해당 위스키 상세 페이지로 이동한다. 인기 검색어 구현하기 인기 검색어 추적은 사용자가 검색어를 입력하거나 또는 검색 페이지에서 상세 페이지로 넘어갈 때마다 해당 값을 count하는 로직을 백엔드에서 구현한다. 해당 API 호출 시..
[Tistory] JWT 토큰은 어디에 저장해야 할까?
서버에서 발급한 Access Token 및 Refresh Token을 어디에 저장해야 할까? 현재 상황 현재 제 프로젝트에서 JWT 토큰을 활용합니다. Access Token이 탈취됐을 때 대비를 위해 Refresh Token 개념을 도입하여, 두 토큰 모두 쿠키에 저장했습니다. 쿠키에 담아 JS 파일에서 토큰 여부를 확인하기 위해 setHttpOnly()를 설정하지 않았습니다. 문제점 클라이언트 측에서 둘다 갖고 있으면 탈취 당할 가능성이 있지 않을까? 고민 먼저, JWT 인증은 서버가 상태를 갖지 않아 클라이언트 측에서 토큰을 저장하고 있어야 합니다. 클라이언트가 사용할 수 있는 저장소는 쿠키, 세션 스토리지, 로컬 스토리지가 있습니다. 이 중 어떤 저장소에 저장할지 선택하기 위해 각 저장소별 차이점..