본문 바로가기
반응형

Study53

[비교] Session vs JWT Intro 토이프로젝트 설계 중 사용자 인증을 세션으로 할지, JWT로 할지 선택해야 했다. 둘의 장단점이 명확해서 어느것을 고르기가 힘들었고, 결정의 기준이 된 두 기술의 특징, 장점, 단점을 정리해봤다. Session 특징: 인증 정보를 서버에서 관리한다. 장점 서버에서 사용자 인증 상태를 관리하기 쉽다. 로그아웃 시 세션을 만료시키기만 하면 끝난다. 단점 세션 ID 및 인증 정보를 서버에 저장해야 한다. Client가 Request를 보낼 때마다 세션 정보를 메모리 또는 DB에서 가져와야 한다. 서버 컨테이너가 여럿일 경우 이들간의 동기화를 위해 세션 클러스터링이나 스티키 세션 기법을 사용해야 한다. 동기화하지 않는다면 외부 DB에 세션 정보를 저장해야 한다. 주로 Redis와 같이 속도가 빠른 I.. 2022. 10. 28.
[Docker-Compose] 여러 Docker 컨테이너를 한꺼번에 관리하기 Intro 이전에 Docker 이미지 다운로드 및 컨테이너 실행 방법에 대해 알아봤었다. 하지만 하나의 PC에서 여러 컨테이너를 실행해야 하는 경우 일일이 다 관리하기도 힘들고, 네트워크 설정도 복잡하다. 이럴 때 docker-compose를 사용하면 yml 파일을 만드는것 만으로 간단하게 컨테이너들을 관리할 수 있다. 이번 시간엔 간단한 예제를 통해 docker-compose 사용 방법을 알아보자. [Docker] 도커 간단한 명령어 모음 도커 간단 사용법 이전 글에서 Docker를 설치하는 방법에 대해 알아봤다. 이번엔 Docker의 이미지, 컨테이너 관리 방법에 대해 알아보자. [Docker] 도커 설치하기 도커 설치 및 간단한 사용법 이번 devjaewoo.tistory.com 프로젝트 구조 소스.. 2022. 10. 4.
[Javascript] Number, Number.parseInt, parseInt의 차이 Intro Number('123'), Number.parseInt('123'), parseInt('123') 모두 문자열 '123'을 숫자 123으로 변환해준다. 이 세 함수들의 차이가 무엇인지 알아보자. Number('string') 문자열에 숫자가 아닌 다른 문자가 들어있는 경우 NaN을 반환한다. Ex) '123a', '#123', '1+2', ... 하지만 예외적으로 진법을 나타내는 문자 (0b, 0o, 0xA~F), 음수 ( - ), Infinity는 허용된다. parseInt 문자열 뒤에 진법을 넘겨줄 수 있다. 또한 숫자가 아닌 다른 문자가 들어있는 경우 해당 문자 이전까지의 값 까지만 변환한다. Ex) parseInt('123z4') => 123 // 아래의 코드들은 전부 15를 반환한다... 2022. 9. 26.
[Docker] 도커 간단한 명령어 모음 Intro 이전 글에서 Docker를 설치하는 방법에 대해 알아봤다. 이번엔 Docker의 이미지, 컨테이너 관리 방법에 대해 알아보자. [Docker] 도커 설치하기 도커 설치 및 간단한 사용법 이번 시간에는 이전 글에 이어 Docker를 설치하는 방법에 대해 알아보도록 하자. [Docker] Docker는 무엇이고, 왜 사용해야 할까? Docker는 무엇이고, 왜 사용해야 할까? devjaewoo.tistory.com 이미지 관리 Docker Hub에서 다른 사람들이 만들어 둔 다양한 이미지를 명령어 하나로 다운로드 받아 실행할 수 있다. 이런 이미지들을 관리하는 명령어에 대해 알아보자. Docker Hub Container Image Library | App Containerization Build.. 2022. 9. 8.
[Docker] 도커 설치하기 Intro 이번 시간에는 이전 글에 이어 Docker를 설치하는 방법에 대해 알아보도록 하자. [Docker] Docker는 무엇이고, 왜 사용해야 할까? Docker는 무엇이고, 왜 사용해야 할까? 요즘 개발 공부를 하면서 개발 관련 프로그램을 설치할 일이 많아졌다. 근데 다른 블로그나 설치 및 사용 튜토리얼들을 보면 Install on Docker, docker pull처럼 Dock devjaewoo.tistory.com Docker 설치 Docker는 리눅스 기반에서 돌아가기 때문에, Windows 환경에 Docker를 설치하려면 WSL (Windows Subsystem for Linux)를 통해 리눅스를 실행하고, 그 리눅스를 기반으로 Docker를 설치해야 한다. Docker를 설치하면 기본적으.. 2022. 9. 8.
[Spring Boot] Spring과 Android에서 RabbitMQ 사용해보기 Intro 프로젝트 진행 중 실시간으로 주문 상태를 알려주는 서비스를 제공하는 요구사항이 추가됐다. 어떤 기술을 사용해야 할 지 찾아보다가, 메시지 큐를 사용하면 된다는 것을 알게 되었다. Kafka, RabbitMQ, Redis, Mosquitto 등 다양한 기술 중 RabbitMQ가 지금 프로젝트에 가장 적합하다고 판단되어 적용하기로 했다. 시나리오 상 Spring이 Publisher, Android가 Subscriber이기 때문에 이 예제도 동일하게 진행했다. 소스코드는 Github에 업로드 되어있다. GitHub - DevJaewoo/blog-code Contribute to DevJaewoo/blog-code development by creating an account on GitHub. gi.. 2022. 9. 7.
[Docker] Docker는 무엇이고, 왜 사용해야 할까? Intro 요즘 개발 공부를 하면서 개발 관련 프로그램을 설치할 일이 많아졌다. 근데 다른 블로그나 설치 및 사용 튜토리얼들을 보면 Install on Docker, docker pull처럼 Docker라는 단어가 자꾸 보인다. 이게 대체 뭐길래 사람들이 이렇게 많이 사용하나 싶어서 사용해봤더니 엄청 편해서 글로 정리해봤다. Docker란? 리눅스에서 다양한 이미지들을 격리된 환경인 컨테이너로 실행하고 관리해주는 도구이다. Docker Hub라는 곳에서 다른 사람들이 올려둔 이미지를 받아 로컬에서 실행할 수도 있고, 필요한 이미지를 직접 빌드해서 다른 사람들한테 배포할 수도 있다. 가상머신(VM)과의 차이점 가상머신은 가상화된 하드웨어를 만들고 그 위에 설치하고자 하는 OS가 올라가는 반면, 컨테이너는 .. 2022. 9. 6.
[Spring Boot] Spring Data Redis 사용해보기 Intro Github나 다른 블로그를 돌아다니며 남들이 진행한 프로젝트를 보다 보면 백엔드 구조에 Redis란 것을 자주 볼 수 있다. 주로 캐시 데이터나 세션을 저장하는 용도로 사용되는데, 이번 시간에는 Redis가 무엇인지, 어떤 특징을 갖고 있는지, 언제 사용하는지에 대해 알아보고, 간단한 예제를 통해 직접 사용해보자. Redis란? Remote Dictionary Server의 약자로, Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 DBMS이다. 인메모리 방식의 데이터 저장소로, 일반적인 DB에 비해 속도가 빠르다. Redis의 특징 데이터를 디스크가 아닌 메모리에서 처리하기 때문에 속도가 매우 빠르다. String, Set, Sorted Set, Hash, List와 같이 다.. 2022. 9. 4.
[DevOps] Github Actions로 Workflow 자동화하기 Intro Github Actions는 Github의 push, pull 등의 이벤트 발생 시 해당 이벤트에 대해 미리 정해둔 동작을 자동으로 수행하는 도구다. 이를 통해 pull 하기 전 자동으로 테스트를 수행하여 Fail 시 PR을 취소시키고 Slack을 통해 알림을 준다거나, 배포용 브랜치에 push 이벤트가 발생할 경우 AWS에 자동으로 Deploy 하는 등의 CI/CD 구성이 가능하다. 이번 시간엔 간단한 예제를 통해 Github Actions를 사용하는 방법에 대해 알아보자. 테스트 프로젝트 생성 Github Actions를 사용하기에 앞서 테스트용 프로젝트를 만들어주자. 아래와 같이 4개의 Dependency만 추가했다. 그리고 간단한 웹 어플리케이션을 작성한다. Github 링크에 소스코드.. 2022. 8. 31.
반응형