SEB_BE_45/공부 정리


🧑🏻💻 TIL(Today I Learned) ✔️ 지속적 배포 💡 지속적 배포(CD, Continous Deployment) ➡️ 애플리케이션 개발 및 배포 과정에서 사용되는 방식 중 하나, 코드 변경사항이 발생하면 자동으로 애플리케이션을 빌드하고 테스트한 후 운영환경에 배포하는 것을 의미 개발 및 운영팀 간 소통 및 협업을 더욱 향상할 수 있음 → 개발팀은 더 빠르고 안정적인 애플리케이션 배포 가능 애플리케이션의 배포 주기를 단축하고 버그를 빠르게 발견하고 수정할 수 있도록 도와줌 → 시스템 관리자와 개발자에게도 편리할 뿐 아니라 사용자에게도 향상된 서비스 제공 ➡️ 일부 조직에서는 보안과 안정성에 대한 우려가 있을 수 있으므로 조직의 상황에 맞게 적절한 방법으로 구성하고 운영해야 함 💡 배포 자동화..

🧑🏻💻 TIL(Today I Learned) ✔️ 빌드, 지속적 통합 💡 빌드(Build) ➡️ 소프트웨어 개발에서 소스 코드 파일들을 컴퓨터가 이해할 수 있는 실행 가능한 소프트웨어 산출물로 변환하는 과정 ➡️ 산출물은 "아티팩트(Artifact)" 라고 부름, 바이너리 파일, 라이브러리, 패키지 등의 형태로 제공됨 🔎 빌드 도구가 필요한 이유 ➡️ 빌드 과정을 자동화하면 더 효율적이고 안정적인 소프트웨어 릴리즈를 위한 과정을 간소화할 수 있음 🔎 빌드 도구 종류 Java : Maven, Gradle Python : (의존성 관리 및 빌드 스크립트 실행 도구) pip, setuptools JavaScript : (의존성 관리 및 빌드 스크립트 실행 도구) npm, yarn C++ : CMake, Ma..

🧑🏻💻 TIL(Today I Learned) ✔️ 프록시 서버, 로드 밸런서, 오토 스케일링 💡 프록시 서버(Proxy Server) ➡️ 클라이언트가 서버와 소통할 때 서버에 바로 접근하지 않고 자신을 통해 서버에 접근할 수 있도록 해주는 일종의 대리(proxy) 서버 ➡️ 보통 일반 사용자는 제한되어있는 서비스를 이용하기 위해 우회하거나 캐시를 통해 더 빠른 이용을 하기 위해 사용함 🔎 프록시 서버 종류 ➡️ 위치에 따라, 프록시 서버가 클라이언트에 가까이 있는지 서버에 가까이 있는지, 두 가지로 구분 Forward Proxy : 클라이언트에 가까이 위치한 프록시 서버, 클라이언트를 대신해 서버에 요청 전달 : 주로 캐싱을 제공하는 경우가 많아 사용자가 빠른 서비스를 이용 할 수 있도록 도와줌 캐싱..

🧑🏻💻 TIL(Today I Learned) ✔️ AWS 💡 클라우드 컴퓨터(Cloud Computing) 기존 서버의 방식 전산실 등에 컴퓨터를 배치하고 인터넷을 연결하여 서비스 제공 → 하지만 서버가 요청에 대한 수용 능력이 한계에 도달하게 된다면? 같은 공간에 더 많은 컴퓨터를 두어 한 대가 해결할 수 있는 요청을 여러 대가 나누는 방식을 사용하거나 컴퓨터 한 대의 성능을 높이는 방식을 사용할 수 있음 하지만 따라오는 한계점이 있음 주기적인 관리 필요 : 서버실에서 고장이 나거나 인터넷이 연결되지 않는 컴퓨터가 생긴다면 해결하기 위한 인력 및 비용 투입 필요 : 컴퓨터의 개수가 늘어나면 그만큼 인력과 비용이 증가함 공간의 한계 : 서버실에 컴퓨터를 배치하고 필요에따라 개수를 늘리는 방식으로 능력을..

🧑🏻💻 TIL(Today I Learned) ✔️ 파드(Pods), 디플로이먼트(Deployment), 서비스(Service) 💡 파드(Pods) ➡️ 쿠버네티스의 배포 가능한 가장 작은 컴퓨팅 유닛, 그 자체로 하나의 논리적인 호스트 ➡️ 파드는 다음을 포함할 수 있음 하나 이상의 애플리케이션 컨테이너 IP 주소 볼륨과 같은 공유 스토리지 ➡️ 쿠버네티스에서는 "워크로드 리소스"를 만들기 위해 YAML 파일과 리소스 정의 파일을 사용하는 것이 보통 ✍🏻 워크 로드 ➡️ 쿠버네티스에서는 "쿠버네티스상에서 작동되는 애플리케이션" ➡️ 클라우드 분야에서는 "어떤 애플리케이션을 실행할 때 필요한 IT 리소스의 집합" ➡️ 파드를 생성하기 위해 파드를 정의할 때도 아래와 같은 형태의 YAML 파일을 사용할 수..

🧑🏻💻 TIL(Today I Learned) ✔️ 쿠버네티스 💡 쿠버네티스(Kubernates) ➡️ 구글에서 개발한 컨테이너 오케스트레이션(orchestration) 도구, 대규모 분산 애플리케이션의 배포, 관리, 확장을 자동화하는 오픈 소스 플랫폼 컨테이너화된 애플리케이션을 효율적으로 실행하기 위한 다양한 기능과 도구 제공 (도커가 나타나면서 다양한 컨테이너 오케스트레이션 도구가 등장함) 도커(Docker)와 같은 컨테이너 런타임을 기반으로 동작함 애플리케이션을 컨테이너로 패키징하여 이식성과 확장성을 가진 기술인 도커 컨테이너를 관리하고 조율하여 클러스터 내에서 효율적으로 운영할 수 있도록 함 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링하는 등의 관리 기능 제공 각기 다른 환경에 대응 가능 ..


🧑🏻💻 TIL(Today I Learned) ✔️ Docker 컨테이너 기술을 "배포"에 사용할 수 없을까? 라는 생각을 시작으로 리눅스 컨테이너(lxc)라는 것을 만들게 되고 그 이후, 2013년에 등장한 도커(Docker)는 Docker Hub라는 소프트웨어 저장소와 함께 빠르게 성장했고 그 결과 개발자들은 쉽게 애플리케이션을 포장하고 컨테이너 방식으로 실행할 수 있게 됨 💡 도커(Docker) ➡️ 애플리케이션의 컨테이너 기술을 이용해 빠르게 배포하고 실행할 수 있도록 도와주는 오픈소스 플랫폼 ➡️ 이전의 가상화 기술과 달리 호스트 OS 위에 오버헤드가 적은 가벼운 컨테이너를 만들어 실행하는 방식으로 동작함 💡 도커 컨테이너(Docker Container) ➡️ 도커 이미지를 바탕으로 생성된 가볍..


🧑🏻💻 TIL(Today I Learned) ✔️ OAuth2란? 💡 OAuth2 란? ➡️ 특정 애플리케이션에서 사용자의 인증을 직접 처리하는 것이 아니라 사용자 정보를 보유하고 있는 신뢰할 만한 써드 파티 애플리케이션에서 사용자의 인증을 대신 처리 해주고 Resource에 대한 자격 증명용 토큰을 발급한 후 Client가 해당 토큰을 이용해 써드 파티 애플리케이션의 서비스를 사용하게 해주는 방식 ➡️ 예를 들어 일정 관리 서비스 애플리케이션에서 Google Calender API를 이용하려고 한다면 두 번의 인증 과정이 필요하지만 이 방식을 사용하게 된다면 한 번만 인증하면 됨 🔎 인증 처리 방식의 비교 전통적인 로그인 인증 처리 방식 클라이언트의 요청 웹 애플리케이션 서버를 거쳐 크리덴셜 저장소에..

🧑🏻💻 TIL(Today I Learned) ✔️ HTTPS, Hashing, Cookie, Session, 웹 보안 공격 💡 HTTPS(Hyper Text Transfer Protocol Secure Socket layer) ➡️ HTTP over SSL(TLS), HTTP over Secure ➡️ HTTP 요청을 SSL 또는 TLS라는 알고리즘을 이용해 HTTP 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법 🔎 특징 제 3자가 서버와 클라이언트가 주고받는 정보를 탈취할 수 없도록 하는 것 : 서버와 클라이언트는 서로가 합의한 방법으로 데이터를 암호화하여 주고받음 때문에 제 3자에게 데이터가 탈취되더라도 내용을 알아볼 수 없음 : HTTPS에서는 클라이언트와 서버가 데이터를 암호화하여 주..