본문 바로가기

공부34

JWT - 1 오늘 면접에서 JWT관련해서 질문을 받았는데 어디에 사용되는지 라던가 하는 부분은 알아도 정확하게 어떻게 구성되고 어떤식으로 작동하는지에 대한 답변이 부족했다고 생각이 들어서 JWT에 대해서 정리해보려고 한다. 일단 첫번째 포스팅에서는 JWT 자체에 대해서 알아보고 다음 포스팅에서 직접 사용하는 방법을 정리하면 좋을 것 같다. JWT? JSON Web Token의 두문자어로서 JSON 포맷을 통해서 데이터를 저장하는 웹 토큰이다. JWT는 사용자 인증의 과정에서 보편적으로 사용되는 토큰이다. 토큰 자체에 정보가 저장되는 Self-Contained 라는 특성을 가진다. JWT의 구성 JWT는 Header, Payload, Signature의 총 3가지 부분으로 구성된다. 최종적으로 생성된 토큰에서는 '.'.. 2022. 3. 2.
Django - Admin(Search, Filtering) 최근 내가 Django에 대해서 어느정도 알고 있는지도 확인하고 부족한 부분, 모르는 부분을 좀 보완하고자 인프런에서 강의를 듣고 있다. 아직 초반부임에도 불구하고 몰랐던 내용들이 줄줄이 나와서 좀 당황스러웠음;;; 지금까지 내가 알고 쓰던 기능들은 API 개발을 하기위한 최소 단위였다고 볼 수 있을 것 같다. 지금까지 내가 Django를 사용하면서 크게 신경쓰지 않았던 부분이 바로 Admin 페이지일 것이다. 전에 회사에 다닐때도 관리페이지를 따로 만들어서 사용했었기 때문에 Admin 페이지에 대해서 알아볼 생각을 못한 것도 있긴한데, 어쨋든 Admin 페이지에 대해서 별 생각을 안했던 것은 사실이다. DB에 저장된 데이터를 빠르게 수정할 필요가 있을 때나, Shell 통해서 데이터 관리하는 게 조금 .. 2022. 2. 4.
Note.9 포폴 준비 시작 또 2주 넘게 블로그 포스팅을 걸러버렸다. 얼마만에 게임을 재밌게 해보는 지 모르겠다. 헤일로 참 재밌음ㅋㅋ 사족은 치우고, 그 동안 프로그래머스 코딩 테스트 연습을 1문제 이상(2레벨), 2~3문제 이상(1레벨) 가능한 매일 해보고 있었다. 어느정도 코딩 테스트의 유형에 대해서 익숙해지고 있기는 한데, 큐나 스택같은 단순한 개념이 아닌 트리, 그래프 활용이 필요한 문제를 만나면 여전히 뇌가 멈추는 느낌이다. 더 확실하게 준비해야겠다. 그리고 "한권으로 개발자가 원하던 파이썬 심화 A to Z"(문용준, 문성혁 / 잇플) 이 책을 커뮤니티에서 추천하는 글을 봐서 예전에 사놨었는데 최근들어서 조금씩 읽어보고 있다. 책을 읽다보니 이전까지 가지고 있던 파이써닉한 코드를 만드는 것에 대해서 다시 생각을 하게 .. 2021. 12. 13.
Note.7 I have a bad feelling about this... 요즘들어서 굉장히 안좋은 예감이 들고 있다. 아마 예감으로 끝날 것 같지는 않다. 거의 확신에 가까운 느낌... 새로 들어가게 된 회사에서 인수인계 받으면서, 그리고 2주 조금 안되는 시간동안 근무시간에 함께 있으면서 느낀 건데 팀의 분위기가 아주 개씹창이 나있는 것 같다. 그리고 그 씹창난 팀 케미의 원인은 PM으로 보인다. 내가 PM과 나눴던 이야기를 통해서 짐작한 PM의 이미지와 지금까지 업무를 진행해온 팀원들과 이야기를 통해서 그려지는 PM의 이미지의 괴리가 너무 심하다. 이 괴리를 통해서 문제가 꽤나 심각함을 느낄 수 있었다. 하긴 분위기가 좋았으면 기존의 개발팀이 이렇게 공중분해 되지는 않았겠지... 일단 지금까지 들어본 여러 에피소드를 들어보면 종합되는 PM의 문제는 이 개발건에 대해서 PM.. 2021. 11. 10.
Note.6 재취업 성공 어쩌다보니 3주만에 블로그에 글을 쓰게되었다. 코테보고 현타가 세게와서 공부고 뭐고 놓아버리고 있었는데, 별 생각없던 곳에서 기술면접을 통과해서 임원면접까지 보게 되었고... 결과적으로 붙어서 오늘인 11월 1일부터 출근하고 있다. 조금 걸리는 점이 있는데 출근 전부터 들던 점은 소프트웨어 개발이 주력 사업이 아닌 곳이라는 점이고, 전체 기업 규모에 비하면 개발팀이 굉장히 소규모라는 점, 그리고 기업 문화가 조금 경직된 것 같은 점이 있었다. 오늘 출근하고 새롭게 알게 된 점은, 현재 구성되어 있는 개발팀의 대부분이 곧 교체될 예정이라는 점이다. UI/UX 디자이너는 계속 남아있는다고는 하지만 사실상 새롭게 배치될 개발자 중 내가 제일 먼저 뽑혔기 때문에 부담이 조금 되는 것 같음 그리고 잘 모르는 분야.. 2021. 11. 1.
자주 쓰는 psql 명령어 정리 psql 은 텍스트 기반의 PostgreSQL 관리 툴이다. PgAdmin을 쓸 수도 있지만 나는 터미널 환경에서 뭘 하는걸 좋아하다보니 psql을 사용하는 편이다. 보통 psql을 사용할 때에는 DB 인스턴스를 생성하거나 생성한 인스턴스에 저장된 데이터들을 확인하기 위한 목적으로 사용하고 있다. 실무에서는 AWS의 RDS서비스에 PostgreSQL을 올려서 사용하다보니 psql에서 DB 인스턴스를 만드는 과정은 그냥 넘기면 됐지만 로컬에서 실습 목적으로 프로젝트를 진행하다보니 인스턴스 생성 과정이 꼭 필요했다. 그리고 굳이 초기 세팅 단계가 아니더라도 인스턴스 선택이나 인스턴스의 정보 확인을 위해서 psql을 사용할 때마다 이전에 사용했던 명령어를 기억을 못해서 항상 찾아보고 난 후에 사용했었다. 그래.. 2021. 10. 8.
Django - Redis 캐싱 위코드 기간중에 진행했던 프로젝트 중에서 데이터 로딩 속도 확보를 위해서 Redis를 통한 캐싱을 적용했던 적이 있다. 상품 데이터 로딩 속도가 너무 느려서 로딩 속도를 빠르게 해 볼 생각만 가지고 캐싱을 적용해봤던 거라서 어떤 상황에서 캐싱을 적용하면 좋을지 정확하게는 모르겠다. 일단은 전에 적용했던 방식을 간단하게 정리해서 혹시라도 나중에 사용할 일이 있으면 참고하려고 한다. 캐싱이란 내가 전부터 알던 캐싱이라는 단어는 CPU의 캐시 메모리를 기반으로 한다. 사용이 잦은 데이터의 경우 매번 기억장치 간 이동으로 인한 시간 손실을 피하기 위해서 CPU 내부의 크기는 작지만 접근 속도가 압도적으로 빠른 캐시 메모리에 저장해 놓고 사용하는 방식 WAS에서의 캐싱 또한 비슷한 개념으로 이해했다. 특히나 데이.. 2021. 9. 27.
그레이들 프로젝트 기반으로 스프링 부트 프로젝트 생성 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책을 통해서 스프링 부트를 공부하고 있다. 이 책에서는 프로젝트 초기 세팅으로 스프링 이니셜라이저가 아닌 직접 설정을 입력하는 방식으로 초기 세팅을 진행하는데 까먹기 쉬운 방식인지라 초기 세팅 절차를 간단하게 정리해도 좋을 것 같다. IDE는 IntelliJ IDEA Community 2020.2.2 기준으로 진행하였다. 프로젝트 생성 책에서는 그레이들 프로젝트(Gradle) 세팅을 기준으로 진행한다. 따라서 인텔리제이에서 일단 그레이들 프로젝트를 생성한다. Next를 누르면 프로젝트 이름등을 설정하게 된다. GroupId의 경우 프로젝트 패키지의 이름, ArtifactId는 프로젝트 이름으로 설정된다. Finish를 눌러 완료하면 그레이들 프로젝트가.. 2020. 9. 28.
Java - 제네릭 (2) Java의 제네릭에 대해서 남은 개념들에 대한 22강이었다. 와일드카드라는 기능에 대한 설명이 길게 진행되었는데, 확실히 쉽게 이해하기는 힘들었다. 지금도 조금씩 헷갈리는 데, 복습을 확실히 해야겠다. 제네릭 클래스의 상속 제네릭 클래스 인스턴스와 참조변수간의 관계는 기본적인 상속 관계와 동일하게 작동한다. 단, 키워드로 감싸진 타입 매개변수가 동일해야 함 class Box { protected T ob; public void set(T o) { ob = o; } public T get() { return ob; } } class PaperBox extends Box { public PaperBox(T o) { ob = o; } } Box iBox = new PaperBox;//참조 가능 Box sBox.. 2020. 9. 27.