1. 폴더 구조docker-compose-practice/│── docker-compose-test-app/ # Spring Boot 애플리케이션 (JAR 파일 빌드)│ ├── Dockerfile│ ├── src/ (Spring Boot 코드)│── nginx/ # Nginx 설정│ ├── default.conf│ ├── Dockerfile│── docker-compose.yml작업 디렉토리 생성mkdir -p ~/docker-compose-practicecd ~/docker-compose-practice2. Docker-Compose & Java 설치Docker 깔렸있다는 가정 하에sudo apt updatesudo apt install -y docker..
1. Apache Web Serve 구축Ubuntu image를 다운 받아서, Container로 띄우고 Apache 설치하기2. 도커 이미지 생성Docker hub 에서 nginx image로 불러와서 , container로 동작시킨다.Docke hub에서 nginx image 찾기docker pull nignx:lastest 로 nginx 이미지 다운로드docker image를 통해 지금 가지고 있는 이미지들을 확인한다.Nginx의 기본 index.html을 수정한다. (hello!)nginx 컨테이너 실행nginx:latest 이미지를 기반으로 mynginx 컨테이너 실행docker run --name mynginx -d nginx:latest컨테이너 내부에 들어가서 index.html 수정dock..
0️⃣ 들어가기 전우리는 웹 브라우저와 웹 서버 간에 데이터를 주고 받기 위한 프로토콜로 HTTP를 사용하고 있다는 점은 익히 안다.그러나, 시대가 지남에 따라 다양한 해킹 방법이 등장하고, HTTP 또한 보안적으로 취약한 프로토콜로 지적받기 시작했다.특히, HTTP는 데이터 전송 과정에서 암호화 과정이 포함되어 있지 않기 때문에, 중간자 공격 같은 보안 위협에 쉽게 노출될 수 있다.그래서 더욱 안전하게 리소스를 주고 받을 수 있는 보안 체계가 필요했고, HTTPS가 탄생했다.1️⃣ HTTPSHTTPS는 HTTP의 보안버전이며,SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여데이터를 암호화하고, 서버와 클라이언트 간의 통신을 안전..
컨테이너리눅스 컨테이너 + 추가 기능 (오픈 소스)애플리케이션을 컨테이너로써 사용할 수 있도록가상 머신과 달리 성능 손실이 거의 없는 차세대 클라우드 솔루션VM vs Container가상 머신 (Virtual Machine)Hypervisor를 통한 가상화로 성능 손실이 발생한다.완벽한 독립적인 공간을 생성하나, 이미지 용량이 매우 크고, 가상머신 배포에는 부담이 있다.컨테이너 (Container)컨테이너에 소스 배포하고, 이미지화한다.리눅스 Chroot, 네임스페이스 등을 사용한 프로세스 단위 격리 환경 구성애플리케이션 구동을 위한 라이브러리만 포함한 이미지 생성, 용량이 작음컨테이너는 OS 자체를 가상화 하는게 아니라 Host OS 위에서 가벼운 프로세스 형태로 돌아가기 때문에 훨씬 빠르고 가볍다.L..
LAN 토폴로지와 스위치Packet Tracer에 들어가기 전먼저 네트워크의 기본 구성 요소부터 이해해보자.라우터, 스위치, 엔드 디바이스(PC, 서버 등)가 어떻게 상호 작용하는지 알아보자.가장 기본적인 두 대의 디바이스(PC)가 있다고 가정해보자.두 PC를 연결하고, IP 주소 설정, 서브넷 마스크 설정을 하고 ping 테스트를 통해 연결.이 과정에서 TCP/IP의 기본 개념을 이해해보자.그 다음 단계로 스위치를 추가하여 여러 대의 PC를 연결.L2 통신의 개념과 MAC 주소의 역할을 이해해보자.마지막으로 라우터를 추가하여 서로 다른 네트워크 간의 통신을 구현.라우팅 테이블, 게이트웨이 등의 개념을 학습해보자.사용법PC장치 타입 → End Devices → PC / LAPTOP 등 Drag & Dro..
클라우드에서의 보안 (AWS)IAM사용자의 권한을 관리하는 시스템사용자의 증명, 혹은 Group에 대한 권한을 부여함.최소 권한 원칙 (Principle of Least Privilege)보는 것이 필요할 경우, 나열 혹은 읽기 권한만 준다.viewOnlyAccessVPC네트워크 접근 제어보안 그룹인바운드 규칙 혹은 아웃바운드 규칙을 정한다.인바운드는 필요한 서비스만 연다.아웃바운드는 외부와의 연결이 필요한 인스턴스에만 적용한다.포트와 IP 주소를 기준으로 트래픽 허용 혹은 거부네트워크 ACL서브넷 수준에서 트래픽을 필터링하는 정책 기반의 보안 구성 요소이다.VPC의 서브넷 간에 오가는 트래픽을 제어한다.(보안 그룹과 다르게 상태가 비저장 방식으로 작동하므로, 들어오는 트래픽과 나가는 트래픽을 독립적으로..
다음은 글은 infrean의 "김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵" 강의의 학습 목적으로 작성된 것입니다.강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 1. JPA에 대한 이해 : 들어가기 전스프링부트를 공부하는 개발자라면 한 번쯤은 이런 코드를 작성해보았을 것이다.@Entitypublic class Member { @Id @GeneratedValue private Long id; private String Name;}// 회원 저장memberRepository.save(member);// 회원 조회Member findMmeber = memberRepository.findById(1L).get(); 정말 자주쓰고, 무의식적으로 쓰는 이러한 코드들.우리는 J..
📝 PROBLEMhttps://school.programmers.co.kr/learn/courses/30/lessons/67258 🤔 THINKING[요구사항]배열 gems에서 모든 보석 종류를 하나 이상 포함하는 최소 구간을 찾는 문제이다.최소 구간이 여러 개라면, 시작 번호가 작은 구간을 반환해야 한다. 💡 IDEA["어떻게 모든 종류의 보석을 포함하는지 확인할까?"]1. 중복 제거된 보석의 종류 개수를 파악해야 한다.가장 먼저 떠올릴 수 있는 것은 "set"을 활용하는 것이다. set(gems)를 사용해 보석 종류를 구하고, len(set(gems))으로 종류의 개수를 파악. 2. 현재 구간에서 보석 종류를 실시간으로 추적한다.딕셔너리를 사용해 현재 구간에서 보석의 개수를 관리. ["최소 구간..