728x90 ASAC36 [ASAC 06] Docker 명령어 Spring Boot DockerizeDockerfile 정의최상위 작업 디렉토리 바로 아래에 Dockerfile 생성FROM amazoncorretto:17-alpine# JAR 구동할 JRE(JVM) 버전 설정. 개발한 Java 애플리케이션의 버전ARG JAR_FILE=build/libs/*.jarCOPY ${JAR_FILE} app.jar# 구동할 JAR 빌드. 개발한 Java 파일들을 컴파일 및 빌드하여 하나의 JAR로 만들기ENTRYPOINT ["java", "-jar", "/app.jar"]# 컴파일 및 빌드 완료된 JAR 파일을 JRE 명령어를 통해 구동. java -jar /app.jar Java Application Build최상위 작업 디렉토리에서 다음 명령어 실행#!/bin/bash.. 2024. 10. 30. Docker Image와 Github Actions를 사용한 CI/CD 자동화 이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다. CI / CD 절차CI (Continuous Integration 지속적 통합)DevelopTest JavaBuild JavaBuild Docker ImagePush Docker Image to RegistryCD (Continuous Deployment 지속적 배포)Pull Docker Image from Docker RegistryRun Docker Image => Server에서 수행1번 : (1) Local 에서 수행 2~6번 : (1) Local 혹은 (2) Github Actions / Jenkins (CI/CD 자동화 툴) 에서 수행 7번 : (3) Server 에서 수행 CI / CD 자동화C.. 2024. 10. 30. [ASAC 06] Docker, CI/CD 기본 개념 이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다. Docker이미지 = 어플리케이션 + 어플리케이션을 구동하기 위한 모든 환경적인 요인들컨테이너 = 자원이 할당되고 실행중인 이미지이미지와 컨테이너의 차이는 프로그램과 프로세스의 차이와 유사하다. 이미지는 정적인 프로그램과 유사컨테이너는 동적인(실행 중인) 프로세스와 유사컨테이너 혹은 이미지 = 격리의 단위 (일관성 보장 단위)환경은 두 가지로 구분된다. Local(Host) 환경Docker 환경Docker 버전 = 애플리케이션 버전 + 도커의 환경 버전하나의 로컬에서 여러 개의 컨테이너 구동이 가능 하지만, 컨테이너가 서로 알려면 네트워크 통신 필요하다. 컨테이너들은 브릿지라고 하는 하나의 컨테이너 환경에.. 2024. 10. 28. [ASAC 06] 자바스크립트 객체, 스크립트, Callback과 Promise 바인딩암시적 바인딩 (Implicit Binding)객체 내부에 메서드를 가지는 경우. this = 객체const implicit = { name: 'Aaron', method: function() { console.log(this.name) }, method_shorten() { console.log(this.name) }, // 콜론, function 생략 가능. 축약형}implicit.method() // Aaronimplicit.method_shorten() // Aaron명시적 바인딩 (Explicit Binding)this를 사용하는 함수에 명시적으로 객체를 할당해주면 메서드가 된다.call, bind, apply 사용하여 명시적 바인딩이 가능하다. 그러나 일시적으로만 바인딩된다.cons.. 2024. 10. 17. [ASAC 06] 자바스크립트 일급함수, Hoisting, Scope Chaining 이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다. 자바스크립트자바가 객체 지향 기반 + 함수형 프로그래밍인 반면에, 자바스크립트는 다음과 같은 특징들을 가진다.함수형 프로그래밍 기반 + 객체지향 (기존 프로토타입)타입스크립트 통해서 인터페이스(다형성)를 도입할 수 있다. (타입스크립트 -> 정적 타이핑)1. 일급 함수 : 함수 변수 + 함수 파라미터 + 함수 반환함수 변수 할당익명함수와 기명함수 존재. 익명함수를 변수화 할 수 있다. => 함수에 이름이 있는 것처럼 동작커링함수를 반환하는 함수. 메타 함수. (클로저는 커링에서 변수 개념을 추가한 것)커링은 파라미터를 쪼갤 때 많이 쓴다.ex) 8개 되는 파라미터를 한 번에 받는 경우-> 문맥을 끊어주고 재사.. 2024. 10. 16. [ASAC 06] AWS VPC와 서브넷 구성 / Bastion Tunneling, NAT 이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다. VPCVPC (Virtual Private Cloud) : 클라우드 인트라넷 (Intranet) + 서브넷 구성 서브넷서브넷은 VPC로 제공받은 큰 네트워크를 몇 개의 부분 네트워크로 자른 것이다. (Subnet)Private Subnet Private Server Subnet Private Database SubnetPublic Subnet 주의Private/Public 서브넷은 단지 이름표에 불과할 뿐,실제로 Private/Public의 성질을 서브넷에 부여하려면, Route Table 설정이 필요하다. 가용성을 위한 서브넷 이중화Multi AZ(Availability Zone) 설정=> Private/.. 2024. 10. 8. [ASAC 06] GitHub 명령어 정리 이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다. Git 버전 관리일반적인 버전관리는 파일 기반의 변경이 발생한다. 중복된 내용이 계속 쌓여가기 때문에 용량 비효율적이다.Git 버전 관리는 변경사항(Diff) 기반의 변경이 발생한다. 변경된 내용만 쌓여가기 때문에 용량 효율적이다.commit은 직전 버전 기준 변경사항 저장 (히스토리 조각. 단위)코드는 로컬에서, 그리고 중앙(원격)에서 관리된다.Git : 로컬 코드 관리GitHub : 중앙 코드 관리Git 내 영역remote : 원격 리포지토리local : working directory 작업공간trackedgit이 추적하는 파일(알고있는 파일)untrackedgit이 추적하지 못하는 파일ex) 새로 추가된.. 2024. 9. 27. [ASAC 06] 세션과 JWT, CORS 관련 질문 정리 이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다. 세션과 JWT 차이점들어가기 앞서Session은 서버 측에 저장되는 정보이다.Cookie는 클라이언트 측(브라우저)에 저장되는 정보이다.Session만 사용하고 쿠키를 사용하지 않는 것이 아니다. 세션과 쿠키는 함께 사용된다. 세션사용자의 모든 인증 정보(유저정보 + 만료시간 + 세션 ID)들을 가지고 있으며, 세션 사용 시 클라이언트는 쿠키로 세션 ID 및 만료 시간을 전달 받는다.세션 정보는 서버 측에 저장된다.세션 ID는 특별한 정보를 함의하지 않는 UUID이다.세션 정보는 서버 측에 저장되기 때문에 세션을 사용한 인증 및 세션 관리를 위해서 서버 측 부하가 커진다.세션을 서버에 저장한다면, SPoF 문.. 2024. 9. 12. 이전 1 2 3 4 5 다음 728x90