전체 글 87

[TIL] 인증·인가와 비밀번호 해시 (Authentication & Authorization)

수업일 : 2026.11.10인증 그리고 인가앞에서 정리한 쿠키와 세션이 인증·인가에 어떻게 활용되는지 정리한다.인증: "내가 누구인지" 증명하는 것 → 로그인인가: 인증된 사용자가 "이 기능을 써도 되는지" 권한을 확인하는 것순서: 인증 후 인가 ■ 인증 설계인증은 두 가지로 나누어 조합해서 설계한다. (최초 로그인 방법 × 로그인 유지 방법)최초 로그인 방법 (Form, OAuth 2개)Form Authentication (ID/PW 직접 인증): 서비스에 직접 회원가입한 뒤 ID/PW로 로그인OAuth(소셜 로그인, 대리 인증): 카카오·구글 같은 외부 인증 서버가 대신 확인해 주고, 서비스는 그 결과를 믿고 로그인 처리※ SSO(중앙 인증): 한 번 로그인으로 여러 계열사 서비스 이용 (구글 → ..

[TIL] 웹 브라우저와 웹 서버의 저장소 (Cookie, Session, Storage)와 쿠키 보안

저정하던수업일 : 26.11.10기억 저장소1. Cookie쿠키는 서버가 클라이언트를 식별하기 위한 정보를 클라이언트(브라우저)에 저장해두는 작은 데이터다. 쿠키가 필요한 이유는 HTTP가 기본적으로 stateless 구조라서, 같은 클라이언트가 100번 요청해도 서버는 매번 처음 보는 클라이언트처럼 처리하기 때문이다.서버가 응답의 Set-Cookie Response Header로 쿠키를 내려주면, 브라우저가 저장해뒀다가 이후 요청마다 Cookie Request Header에 담아 자동으로 보낸다.2. Session쿠키에 담기엔 크거나 복잡한 정보, 또는 브라우저에 두면 위험한 민감한 정보는 서버 측 저장소인 Session에 저장한다. (기본은 서버 메모리, 필요하면 Redis·DB 등 외부 저장소) 서..

[TIL] (CI/CD) ④ GitHub Actions로 EC2 단일 컨테이너 자동 배포하기 (docker run)

실습을 하다가 중간에 compose를 통해 DB가 연동된상태로해서 compose 배포 자동화만 실습하여 단일 컨테이너 CI/CD 구축을 해보려한다. ▣ CI / CD 실습용 AWS 환경 만들기 1. AWS EC2 Public 인스턴스 만들기 이미 이전 실습 정리를 통해 자세히 작성했으니 간단하게 이미지만 기록 2. IAM 계정 만들기이전 실습과 동일 (미진행 이미지만 첨부) 3. EC2 인스턴스 도커 설치sudo yum update -y # 인스턴스 내 모든패키지 업데이트 (호환성용)sudo yum install docker -y # 도커 엔진 설치docker -v # 도커 설치 확인sudo service docker start # 도커 구동..

[TIL] (CI/CD) ③ GitHub Actions로 EC2 자동 배포하기 (docker-compose)

GitHub Actions로 구축한 CI 참고 [TIL] GitHub Actions로 Docker 이미지 빌드·배포 자동화하기CI / CD란CI (Continuous Integration, 지속적 통합) : 코드를 push 할 때마다 자동으로 빌드하고 테스트해서, 여러 사람의 코드가 합쳐져도 문제가 없는지 계속 확인하는 것CD (Continuous Delivery/Deployment, 지속soly-log.tistory.com GitHub Actions로 CD 구축하기 1. AWS에 GitHub Actions가 접근 할 수 있도록 IAM 계정 생성GitHub Actions가 EC2에 배포하려면 아래와 같은 이유로 두 가지 접근이 필요하여 IAM 사용자를 만들어서 발급 받은 엑세스키를 GitHub Scret..

[TIL] (CI/CD) ② Docker Hub 이미지 EC2에서 수동 배포하기 (docker run → compose)

[TIL] GitHub Actions로 Docker 이미지 빌드·배포 자동화하기CI / CD란CI (Continuous Integration, 지속적 통합) : 코드를 push 할 때마다 자동으로 빌드하고 테스트해서, 여러 사람의 코드가 합쳐져도 문제가 없는지 계속 확인하는 것CD (Continuous Delivery/Deployment, 지속soly-log.tistory.com 이전 작업에서 Docker Hub에 이미지를 만들어서 올려놨다. 해당 이미지를 EC2에 올려 실행시키는 실습 정리한다. 1. 실습을 위한 EC2 Public 인스턴스 생성 (참고 - https://soly-log.tistory.com/164)2. AWS 내 EC2 연결 3. EC2 내 인스턴스에 있는 모든 패키지 업데이트업데이트..

[TIL] (CI/CD) ① GitHub Actions로 Docker 이미지 빌드·푸시 자동화하기

CI / CD란CI (Continuous Integration, 지속적 통합) : 코드를 push 할 때마다 자동으로 빌드하고 테스트해서, 여러 사람의 코드가 합쳐져도 문제가 없는지 계속 확인하는 것CD (Continuous Delivery/Deployment, 지속적 제공/배포) : CI를 통과한 결과물을 자동으로 배포 가능한 상태로 만들거나(Delivery), 실제 서버까지 자동으로 배포하는 것(Deployment) ⊙ 이러한 CI / CD를 인간이 매번 하기 귀찮! 그래서 자동화 도구가 존재한다.JenkinsGitHub Actions -> 이번 글의 주체GitLab Runner ⊙ GitHub Actions로 테스트 -> 빌드 -> 이미지 배포 자동화하기 1. DockerHub에 계정을 만들어 이미..

[위클리페이퍼] 261012 AWS & Github Actions

Q. AWS RDS를 활용하는 주요 이점과 EC2에 직접 데이터베이스를 설치하여 운영하는 것과 비교했을 때의 차별점에 대해 설명해 주세요. 그리고 RDS를 사용하는 것이 적합하지 않을 수 있는 상황도 함께 언급해 주세요. RDS(Relational Database Service)란 AWS에서 제공하는 클라우드 기반 관리형 데이터베이스 서비스로 이를 통해 관계형 데이터베이스를 쉽게 설정, 운영 및 확장할 수 있다.RDS의 주요 이점완전관리형 서비스데이터베이스 설치, 운영체제 패치 등 다양한 설치, 업데이트를 AWS가 자동으로 처리한다.데이터베이스의 유지보수를 위한 별도의 인력이 필요하지 않다.자동 백업과 복구지정된 시간에 맞춰 자동으로 백업을 수행하며 운하는 시점(Point-in-Time Recovery)..

[TIL] (실습) Docker로 내가 만든 프로젝트 구동하기 (Dockerfile , docker-compose)

1. Docker가 무엇이기 때문에 사용하는 건가공식 문서에서는 Docker를 애플리케이션을 개발, 제공 및 실행하기 위한 개방형 플랫폼이라고 설명한다. 이 말만 봐서는 무슨 뜻인지 잘 와닿지 않는다. 문제상황애플리케이션을 개발할 때, 개발한 환경과 실제로 운영하는 환경이 다르면 문제가 생길 수 있다. 이런 문제가 생길 때마다 하나하나 체크해야 하는 상황이 발생한다.이러한 불편함을 Docker로 해결할 수 있다면?Docker는 실행 환경과 애플리케이션을 하나로 묶어서 실행한다. 실행 환경 + 애플리케이션을 묶은 패키지를 이미지라고 하고, 이 이미지를 실행해서 만든 것을 컨테이너라고 한다. 컴퓨터에서 실행하지 않은 상태를 프로그램, 실행한 상태를 프로세스라고 하는 것처럼! 프로그램 하나로 프로세스를 여러 ..

[TIL] 환경변수는 어디서 와서 어떻게 적용될까? (Java → Spring → Docker)

환경 변수란Environment Variable: 프로그램 코드를 직접 수정하지 않고, 외부에서 설정값(시스템 경로, 사용자 정보, 실행 모드 등)을 주입하거나 변경할 수 있게 해주는 값예시: PATH, JAVA_HOME, DB_PASSWORD범위(Scope)에 따라 나뉨시스템 환경변수: 그 컴퓨터의 모든 사용자에게 적용사용자 환경변수: 특정 사용자에게만 적용프로세스가 실행될 때 부모 프로세스(OS, 터미널 등)로부터 환경변수를 물려받음 자바에서 외부 설정을 꺼내는 방법종류설정방법받는 쪽값을 넣는 시점코드에서 꺼내는 방법OS 환경변수export DB_URL=....OS(프로세스가 물려받음)실행 전 (OS/ 터미널에서 미리 설정)System.getenv("DB_URL")자바 시스템 속성java -Durl=..

[TIL] Docker 네트워크

Docker 네트워크란 무엇인가Docker 컨테이너 간의 통신을 관리하고 격리하기 위한 기능을 제공하는 것으로 컨테이너화 된 애플리케이션은 여러개의 컨테이너로 구성될 수 있는데 이들 컨테이너가 서로 통신하고 데이터를 주고 받아야 할 경우가 있다. 이때 도커 네트워크를 통해 컨테이너간 통신을 쉽게 설정하고 관리할 수 있다. 즉 기본적으로 같은 호스트 내에서 실행중인 컨테이너 간 연결할 수 있도록 돕는 논리적 네트워크 개념이다. 1. Docker 네트워크 종류 Docker는 기본적으로 6개의 네트워크 드라이버를 제공한다. 대부분의 개발 환경은 bridge 네트워크를 주로 사용하고, 복잡한 환경에서는 overlay를 활용한다네트워크 확인 : docker network lsbridge기본 네트워크로 컨테이너 간..

반응형