전체 글40 [docker] 프로젝트 수정 후 다시 배포하기 개요 CI/CD를 구축해두지 않은 상태에서, 배포된 애플리케이션에 대해 수정사항을 수동으로 반영하고 싶은 상황이 생겼습니다. 사이드 프로젝트를 진행하면서, 틈틈이 써먹을 것 같아 기억하고자 관련 내용을 작성해두려고 합니다. 프로젝트 수정 후 배포하는 방법 1. 실행 중인 컨테이너 중지 docker stop [컨테이너 이름 or 컨테이너 아이디] 2. 중지한 컨테이너를 완전히 삭제 docker rm [컨테이너 이름 or 컨테이너 아이디] 3. 도커에 관련 이미지 파일 삭제 docker rmi [이미지 이름 or 이미지 아이디] 4. 원격 리포지토리에서 수정 내용 반영하기 git pull 5. 도커 이미지 빌드하기 docker build -t [이미지 이름] . {공백}.{공백}의 형태를 유지해야 한다. 6.. 2023. 1. 5. [JPA] @SQLDelete와 @Where를 통한 SOFT DELETE 처리 개요 엔티티를 설계하고, 애플리케이션을 구축해 나가다 보면 엔티티간의 여러 연관관계를 고려해주어야할 것입니다. 이렇게 여러 엔티티간의 연관관계를 가지게 되면, 하나의 엔티티가 삭제될 때에도 이 엔티티가 어디까지 영향을 미치는지 고려해주어야 하는데요. 이를 처리하기 위해서는 hard delete와 soft delete가 존재합니다. 이번 포스팅에서는 Hard Delete가 무엇인지 간단하게 언급하고, Soft Delete에 대해 적용해보도록 하겠습니다. Hard Delete? Hard Delete는 DELETE 쿼리를 데이터베이스에 날려 데이터를 실제로 삭제하는 방법을 말합니다. Soft Delete? Soft delete는 hard delete와 다르게, 실제로 데이터베이스에서 데이터를 삭제하는 것이 아.. 2023. 1. 5. [백준] 2578, 빙고 - Python 문제 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 구현력을 요구하는 문제 였습니다. 메인 단에서, 3차원 반복문으로 끊기 위해 엠씨가 부르는 숫자를 저장하는 리스트를 일차원 리스트로 구현하였습니다. 이 후, 빙고 여부를 체크하기 위해 엠씨가 부르는 숫자와, 빙고판의 숫자가 같은 경우 빙고판의 원소를 0으로 초기화 해주고, 초기화 횟수를 세어주었습니다. 초기화 횟수가 12 이상이면, 빙고판의 0으로 체크해준 작업에 대해 빙고가 이뤄진지는 모르지만, 최소한의.. 2023. 1. 2. [AWS] AWS EC2 생성 및 생성된 서버에 docker 설치, docker로 MySQL 띄우기 개요 현재 듣고 있는 부트캠프에서 aws의 ec2를 생성하고 docker로 MySQL을 띄우는 작업을 해보았습니다. 이 과정을 글로 남겨보도록 하겠습니다. AWS EC2 생성 먼저, 인스턴스를 생성하기 위해 인스턴스 시작을 눌러줍니다. 인스턴스 시작 생성할 ec2의 이름을 작성해 줍니다. 애플리케이션 및 OS 이미지 ubuntu 환경을 사용할 것 이므로 ubuntu server 22.04 버전을 선택합니다. 인스턴스 유형 사용할 인스턴스의 유형을 선택합니다 t3.small 유형을 사용할 것이기 때문에 이를 선택해줍니다. 키 페어(로그인) 새 키 페어 생성을 클릭해줍니다. 원하는 이름을 입력하고, RSA와 .pem을 각각 클릭해줍니다. 네트워크 설정 인터넷에서 HTTPs 트래픽 허용, 인터넷에서 HTTP .. 2022. 12. 29. [프로그래머스] 귤 고르기 - Python 문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 이 문제는 해시를 이용해 해결할 수 있었습니다. 따라서, 딕셔너리를 활용하여 Key를 귤의 크기, Value를 Key의 크기에 따른 갯수로 묶어주었습니다. 이 후, 귤의 종류를 기준으로 내림차순 정렬해주어 종류가 가장 많은 귤의 개수를 판매 제한 개수에서 빼주도록 구현하여 해결하였습니다. Python def solution(k, tangerine): answer = 0 orange = dict() # (오렌지 크기, 갯수)의 딕셔너리 생성 for i in tangerine: orange[i] = orange.get(i, 0) + 1 # 크기별로 내림 차순 정렬 sorted_ornage.. 2022. 12. 28. [Spring Boot] Spring Boot 2.7.5 version, JWT를 활용한 인증(Authentication), 인가(Authorization) 구축하기 개요 모든 웹 사이트에게 필수적으로 필요한 것이 바로 로그인과 회원가입 일 것입니다. 스프링에서는 이러한 기능을 비교적 쉽게 구현하는 것을 지원하기 위해 스프링 시큐리티라는 스프링 하위 프레임워크를 제공합니다. 이번 포스팅에서는 Spring Boot에서의 JWT를 활용한 인증(Authentication)과 인가(Authorization)를 구축하는 방법에 대해 알아보도록 하겠습니다. 목차 스프링 시큐리티 라이브러리 추가 스프링 시큐리티 설정 파일 수정 JwtProvider, JwtFilter 구현 스프링 시큐리티 라이브러리 추가 가장 먼저 해야할 일은, 스프링 시큐리티 라이브러리를 추가하는 것입니다. 아래와 같이 build.gradle에 추가해 주면, 관련한 의존성을 추가해 줍니다. implementat.. 2022. 12. 26. 이전 1 2 3 4 5 6 7 다음