Recommend
-
스프링 시큐리티 없이 JWT 회원가입 및 로그인 구현
스프링 시큐리티 없이 JWT를 이용한 회원가입 및 로그인 구현을 정리하고자 한다. 시큐리티를 쓰지 않는 이유는 시큐리티 자체가 너무 많은 역할을 해주기 때문에 직접 구현하며 어떤 식으로 진행되는지 확인하고자 함이다. 물론 내가 진행한 프로젝트 내에서 스프링 시큐리티를 아예 쓰지 않는 것은 아니지만 JWT 인증에 한해서는 사용하지 않는다. 0. JWT 에 관해 이 글을 읽기 전 JWT에 관한 이해가 필요하다. 앞선 글을 읽고 오길 바란다. 2024.02.23 - [Web] - JWT(Json Web Token) 이란 무엇인가? - 쿠키와 세션 비교를 통해 1. dependency 설치 implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'io...
-
Spring Initializer를 이용한 Spring Boot 환경설정
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 김영한 님의 스프링 입문 강의를 보며 공부한 내용을 정리해보고자 한다. Spring Boot를 기반으로 진행되는 강의이다. Spring Initializer Spring Boot를 이용한 초기 설정을 위해서는 https://start.spring.io/라는 페이지를 이용한다. Gradle / Maven, Language, Spring boot version, dependency..
-
언어별 백엔드 프레임워크 비교
Python 웹 프레임워크 Python 의 다양한 라이브러리 사용 가능 → 데이터, 머신러닝 관련 라이브러리가 다른 언어보다 제공이 잘 된다. Django MTV (Model - Template - View) 패턴을 사용 → 역할에 따라 독립적으로 개발되기 때문에 유지보수가 수월하고 확장이 용이하다. 테스트 관련 라이브러리 제공 Django ORM 을 이용하여 편리하게 데이터베이스 접근 SQL 쿼리를 직접 사용하지 않고도 파이썬 객체를 사용해 DB 를 다룰 수 있다. → DB 종류에 의존하지 않음 → 추후 DB 가 바뀌더라도 유연하게 대처 가능 자체 Admin 페이지 제공 지속적인 업데이트 23년 12월에 Django 5.0 이 나올 만큼 개발자들이 지속적으로 업데이트를 해주고 있다. (물론 다른 프레임..
-
Portainer를 이용한 간편한 CI/CD
1. 개요 캡스톤디자인을 하며 프로젝트 개발 중 어려움이 생겨 멘토링을 진행하게 되었다. 멘토링 중 멘토님께서 Portainer를 이용하여 CI/CD를 구축하는 것을 추천해주셨다. 2. Portainer 란? https://www.portainer.io/ Kubernetes and Docker Container Management Software Portainer is your container management software to deploy, troubleshoot, and secure applications across cloud, datacenter, and Industrial IoT use cases. www.portainer.io Portainer란 도커를 관리하는 오픈 소스 컨테이너 관리..
-
git action 을 이용한 CI/CD 구축
학교에서 알파프로젝트를 진행하며 항상 새로운 것을 배우는 것을 목표로 하고 있다. 지난 학기 알파프로젝트에서는 Docker 컨테이너에 대해 학습하고 적용해 보았고 이번 프로젝트에서는 개발뿐 아니라 테스트 코드 작성 및 CI/CD 파이프라인을 간단하게 라도 시도해보고자 하였다. CI / CD 파이프라인 CI/CD 란 Continuous Integration / Continuous Delivery를 의미한다. 지속적 통합, 지속적 배포라고도 불린다. 소프트웨어의 개발, 테스트, 배포를 통합하고 이를 자동화하는 것을 목표로 한다. 이를 이용하면 사용자가 개발한 코드에 대해서 직접 테스트를 하지 않더라도 CI/CD가 자동으로 테스트를 해주며 문제가 없을 시 배포까지 자동으로 연결되도록 진행할 수 있다. 저번 프..
-
가비아 도메인 구매 및 AWS Route 53 설정
1. 개요 Portainer CI/CD 구축 전 도메인 연결을 먼저하기 위해 가비아에서 도메인을 구매하고 AWS 에 설정하는 방법을 기록한다. 2. 가비아 도메인 구매 https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아 그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브 www.gabia.com 우선 내가 만드는 서비스의 도메인 구매를 먼저하려고 한다. 나중에 ssl 인증을 통해 https 보안 연결 작업을 할 때 필요하기 때문에 미리 설정을 해두기로 했다. 메인 화면에 가서 원하는 도메인을 적어 어떤 도메인이 구매 가능한지 확인한다. 나는 wequiz 라는 이름으로 도메인 검색을 했다. 다양한 도메인이 나오는데 맘에 드는 도메인을 구매한다. 3. AWS Route 53 설정 AWS R..
-
Git action과 docker hub을 이용한 Continuous Integration
1. 개요 전체적인 CI/CD 작업과정을 설명하고 이 포스트에서는 CI 작업을 진행하고자 한다. 이 글은 스프링 백엔드 서버를 기준을 설명한다. 2. 설계한 CI/CD 과정 유저가 브랜치에 변경사항을 push함에 따라 git action이 실행된다. git action이 CI 과정을 진행한다. Docker image 빌드 Docker hub에 빌드한 image push CI action이 종료됨에 따라 자동으로 git action이 CD 과정을 호출하여 진행한다. Portainer에서 컨테이너 별로 제공하는 webhook을 post 메소드로 호출한다. Portainer는 docker hub에서 새로운 이미지를 요청하여 ec2에 이미지를 빌드할 수 있게 해준다. 3. Dockerfile Spring 이 빌..
-
JWT(Json Web Token) 이란 무엇인가? - 쿠키와 세션 비교를 통해
글 다 썼는데.. 갑자기 사라졌다. 화가 나지만 복습 겸 다시 쓴다.. 다른 분들은 꼭 임시 저장하시길.. 그동안 프로젝트를 하면서 로그인, 회원가입 부분을 구현하다 보면 세션 방식, JWT 방식으로 구현해보곤 했다. 구체적인 차이에 대해서 잘 몰랐으나 이번 프로젝트를 하면서 다시 공부하였고 공부한 부분을 정리해보고자 한다. 1. JWT(Json Web Token) 란 무엇인가? JWT는 클라이언트와 서버 간 인증방식을 안전하게 하기 위해 이용하는 토큰이다. .(점)으로 이루어진 세 문자열로 이루어져 있다. https://jwt.io/ 이 사이트에서 JWT 토큰 인코딩 디코딩을 해볼 수 있다. 세 부분은 다음과 같이 나눠진다. Header 헤더 부분에는 토큰의 종류 (JWT), 사용된 해쉬암호화 방식 등..
-
백준 2164 : 카드2
문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 프로..
Recent
-
[JDK 뜯어보기] Collection interface
본 글은 JDK 17을 기준으로 작성하였습니다.java.util.CollectionCollection은 그 안에 있는 요소들을 나타낸다. 인터페이스이기 때문에 JDK는 직접적인 구현체를 제공하지는 않지만, Set, List 와 같은 더 구체적인 하위 인터페이스의 구현체들로 구현체를 제공한다. Unmodifiable CollectionUnmodifiable Collection 이라고 해서 반드시 불변인 것은 아니다. 포함되어 있는 요소가 가변적이라면 컬렉션이 가변적일 수 있다. 하지만 모든 요소가 불변이라면 불변 Collection이라고 생각할 수 있다.Collections.unmodifiableList() 우테코 프리코스를 경험하며 위의 메소드를 이용하여 불변 Collection으로 만드려는 것을 많이 ..
2024.04.29 11:56 -
가비아 도메인 구매 및 AWS Route 53 설정
1. 개요 Portainer CI/CD 구축 전 도메인 연결을 먼저하기 위해 가비아에서 도메인을 구매하고 AWS 에 설정하는 방법을 기록한다. 2. 가비아 도메인 구매 https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아 그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브 www.gabia.com 우선 내가 만드는 서비스의 도메인 구매를 먼저하려고 한다. 나중에 ssl 인증을 통해 https 보안 연결 작업을 할 때 필요하기 때문에 미리 설정을 해두기로 했다. 메인 화면에 가서 원하는 도메인을 적어 어떤 도메인이 구매 가능한지 확인한다. 나는 wequiz 라는 이름으로 도메인 검색을 했다. 다양한 도메인이 나오는데 맘에 드는 도메인을 구매한다. 3. AWS Route 53 설정 AWS R..
2024.04.22 12:24 -
Git action과 docker hub을 이용한 Continuous Integration
1. 개요 전체적인 CI/CD 작업과정을 설명하고 이 포스트에서는 CI 작업을 진행하고자 한다. 이 글은 스프링 백엔드 서버를 기준을 설명한다. 2. 설계한 CI/CD 과정 유저가 브랜치에 변경사항을 push함에 따라 git action이 실행된다. git action이 CI 과정을 진행한다. Docker image 빌드 Docker hub에 빌드한 image push CI action이 종료됨에 따라 자동으로 git action이 CD 과정을 호출하여 진행한다. Portainer에서 컨테이너 별로 제공하는 webhook을 post 메소드로 호출한다. Portainer는 docker hub에서 새로운 이미지를 요청하여 ec2에 이미지를 빌드할 수 있게 해준다. 3. Dockerfile Spring 이 빌..
2024.04.11 13:59 -
Portainer를 이용한 간편한 CI/CD
1. 개요 캡스톤디자인을 하며 프로젝트 개발 중 어려움이 생겨 멘토링을 진행하게 되었다. 멘토링 중 멘토님께서 Portainer를 이용하여 CI/CD를 구축하는 것을 추천해주셨다. 2. Portainer 란? https://www.portainer.io/ Kubernetes and Docker Container Management Software Portainer is your container management software to deploy, troubleshoot, and secure applications across cloud, datacenter, and Industrial IoT use cases. www.portainer.io Portainer란 도커를 관리하는 오픈 소스 컨테이너 관리..
2024.04.10 22:23 -
[JPA] ORM과 JPA 이해하기
1. 서론 Spring Framework의 많은 프로젝트를 보면 많은 사람들이 JPA라는 기술을 사용한다. 오늘은 이 JPA라는 기술에 대해 설명해보고자 한다. 2. ORM JPA를 알기 위해서 우선 ORM 이라는 것에 대해 알아보자. ORM 이란 Object-Relational Mapping의 약자이다. ORM은 SQL을 사용하지 않고 데이터베이스를 관리할 수 있는 도구이다. 데이터베이스에 테이블을 만들고 CRUD 기능을 사용하기 위해서는 SQL 쿼리를 데이터베이스 서버에 전달해야 한다. 하지만 코드만으로 이런 SQL 쿼리를 대신할 수 있도록 도와주는 것이 ORM이다. 예를 들어보면 User라는 테이블에 id, name, age라는 열이 있다고 가정하자. id name age 1 금장 26 2 준범 2..
2024.03.15 22:44 -
Discord에서 Github Bot 설정하기
현재 캡스톤 프로젝트를 진행 중인데 역할 별로 어떤 부분을 개발하고 있는지 잘 알기 위하여 Github Bot을 적용하기로 했다. 현재 Discord에서 회의를 하기 때문에 Discord에서 설정하기로 했다. 0. Webhook 웹훅이란 웹에서 발생하는 특정 이벤트를 콜백으로 변환해 주는 것이다. 즉, 서버에서 이벤트가 일어나면 미리 정의한 callback URL로 클라이언트를 호출하는 방식이다. 우리는 Git에서 어떤 이벤트가 일어날 때 Discord 클라이언트를 호출하게 된다. 1. Discord 에서 채널 설정 우선 Discord에서 채널을 하나 생성한다. 나는 github라는 채널을 생성하였다. github 오른쪽의 톱니바퀴 모양을 눌러 해당 채널의 설정으로 들어가 연동 탭에 들어간다. 연동 탭에..
2024.03.13 23:27 -
스프링 시큐리티 없이 JWT 회원가입 및 로그인 구현
스프링 시큐리티 없이 JWT를 이용한 회원가입 및 로그인 구현을 정리하고자 한다. 시큐리티를 쓰지 않는 이유는 시큐리티 자체가 너무 많은 역할을 해주기 때문에 직접 구현하며 어떤 식으로 진행되는지 확인하고자 함이다. 물론 내가 진행한 프로젝트 내에서 스프링 시큐리티를 아예 쓰지 않는 것은 아니지만 JWT 인증에 한해서는 사용하지 않는다. 0. JWT 에 관해 이 글을 읽기 전 JWT에 관한 이해가 필요하다. 앞선 글을 읽고 오길 바란다. 2024.02.23 - [Web] - JWT(Json Web Token) 이란 무엇인가? - 쿠키와 세션 비교를 통해 1. dependency 설치 implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'io...
2024.03.08 23:28 -
JWT(Json Web Token) 이란 무엇인가? - 쿠키와 세션 비교를 통해
글 다 썼는데.. 갑자기 사라졌다. 화가 나지만 복습 겸 다시 쓴다.. 다른 분들은 꼭 임시 저장하시길.. 그동안 프로젝트를 하면서 로그인, 회원가입 부분을 구현하다 보면 세션 방식, JWT 방식으로 구현해보곤 했다. 구체적인 차이에 대해서 잘 몰랐으나 이번 프로젝트를 하면서 다시 공부하였고 공부한 부분을 정리해보고자 한다. 1. JWT(Json Web Token) 란 무엇인가? JWT는 클라이언트와 서버 간 인증방식을 안전하게 하기 위해 이용하는 토큰이다. .(점)으로 이루어진 세 문자열로 이루어져 있다. https://jwt.io/ 이 사이트에서 JWT 토큰 인코딩 디코딩을 해볼 수 있다. 세 부분은 다음과 같이 나눠진다. Header 헤더 부분에는 토큰의 종류 (JWT), 사용된 해쉬암호화 방식 등..
2024.02.23 02:07