cs 14

[etc] 스프링과 스프링부트의 차이

스프링과 스프링부트 Spring Spring Framework는 자바 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크로 Spring이라고도 불린다. 이전의 EJB(Enterprise Java Bean) 방식의 단점을 해결한 프레임워크 Spring의 대표적인 특징 제어 역전 의존성 주입 AOP 지원 (관점 지향 프로그래밍) 웹 개발 지원 Spring의 문제점 설정의 복잡성 높은 초기 학습 난이도 의존성 관리 문제 별도 WAS 서버 구성의 번거로움 Spring Boot Spring의 문제점을 해결해주기 위해 개발된 스프링의 프레임워크 Spring Boot 사용시 내장형 서버를 사용하여 별도의 웹 애플리케이션 서버를 설치할 필요 없이 웹 애플리케이션을 실행할 수 있다. 다양한 스프링 프레임워..

[etc] MVC, 라이브러리, 프레임워크

MVC (Model View Controller) MVC란 사용자 인터페이스와 비즈니스 로직을 분리하여 개발하는 것 MVC는 Model1과 Model2로 나누어져 있으며 일반적인 MVC는 Model2를 지칭한다. Model 애플리케이션의 정보나 데이터, DB 등을 말한다. View 사용자에게 보여지는 화면, UI를 말한다. Model로부터 데이터를 얻고 표시한다. Controller 데이터와 비즈니스 로직 사이의 상호 동작 관리 모델과 뷰를 통제하고 직접적인 상호 소통을 하지 않도록 관리 MVC1 View와 Controller를 모두 JSP가 담당하는 형태 JSP 하나로 유저의 요청을 받고 응답을 처리한다. User (Client) - View, Controller (JSP) - Model (Java B..

[CI/CD] github pages 배포 방법 (React-Typescript 프로젝트)

Github Pages 배포 (React-Typescript 프로젝트 배포) 배포 전 설정 cmd 창에서 프로젝트 폴더로 이동 후 npm i gh-pages -D package.json 파일의 “scripts” 블록 안에 "build” 바로 아래에 "deploy": "gh-pages -d dist" 추가 package.json "scripts": { "dev": "vite", "build": "tsc && vite build", "deploy": "gh-pages -d dist", // 추가! 배포 vite.config.ts 파일의 plugins: 바로 아래에 base: '/깃레포지토리이름/', 추가 vite.config.ts export default defineConfig({ plugins: [rea..

[CI/CD] 수정/삭제 된 파일이 github 원격 레포지토리에 올라가지 않을 때 (git add -u)

git add -u add - commit - push를 하던 중.. push fail이 자꾸 뜨길래 git pull 도 해보고 git pull 뒤에 명령어 길게도 해봤는데 안되서 결국 git push origin +master 로 강제 push 행.. 하지만! 분명 push를 했는데 status를 확인해보니 working tree clean은 뜨지 않고 deleted: 로 이미 삭제된 파일이 떴다. 구글링 해보니 나처럼 로컬에서 삭제하고 add - commit - push 해도 원격 레포지토리에 반영이 안되는 경우가 있다고 한다. 이럴때 git add -u 로 add 해주면 수정되거나 삭제된 파일도 반영해준다고 한다! git add -u 로 add 하고 commit 후 push까지 해주니 원격 레포지토..

[Hanaro] 4일차 / 컴퓨터 아키텍쳐, 컴파일러

컴퓨터 아키텍쳐, 컴파일러 컴퓨터 구조 Memory(주기억장치) Kernel, Code, Data, Stack, Heap Cache Memory 데이터를 찾을 때 메모리(주기억장치)에서 찾아보기 전에 먼저 캐시 메모리에 가서 있는지 확인 속도가 빠르지만 데이터를 많이 담을 수 없다. System Bus Address Bus, Data Bus, ControlB Bus CPU ALU(Arithmetic and Logical Unit) Accumulator(누산기) CU(Control Unit) Register Program Counter, Address Register, Buffer Register, Instruction Register, Flag Register 기타 Data Register MMU(Mem..

교육 (TIL)/Hanaro 2024.01.19

[CI/CD] AWS S3 버킷 생성, AWS IAM 사용자 및 액세스 키 생성

AWS S3 버킷 생성 AWS S3 버킷 생성 이유 데이터베이스에 이미지를 저장할 때 이미지는 S3에 저장하고 url만 DB에 저장하여 조회되도록 하기위해 S3 버킷을 생성했다. AWS S3 버킷 생성 S3- 버킷 만들기 일반 구성 AWS 리전: 아시아 태평양(서울) ap-northeast-2 버킷 이름: 버킷 이름 객체 소유권 ACL 활성화됨 클릭 버킷 소유자 선호 이 버킷의 퍼블릭 액세스 차단 설정 모든 퍼블릭 액세스 차단 해제 버킷 버전 관리 비활성화 버킷 만들기 AWS IAM 사용자 생성(AmazonS3FullAccess) IAM- 사용자 생성 사용자 이름- 다음 권한 옵션 직접 정책 연결 권한 정책 정책 이름: AmazonS3FullAccess 사용자 생성 AWS IAM 액세스 키 생성 IAM-..

[CI/CD] Github Action을 사용한 자동 배포 구축(CD), Github Secrets 생성, Github Action 스크립트 작성

Github Secrets 생성 Github- Settings- Secrets and variables New repository secret에서 IAM 권한 액세스 키 저장 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY APPLICATION_YML Github Action 스크립트 사용 예시 aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} Github Action 스크립트 작성 Beanstalk Deploy 스크립트 레퍼런스 https://github.com/marketplace/actions/beanstalk-deploy 예시 deploy.ym..

[CI/CD] AWS Elastic Beanstalk 애플리케이션 생성, 수동 배포 방법, AWS IAM 사용자 생성

AWS Elastic Beanstalk 애플리케이션 생성 AWS Elastic Beanstalk- 애플리케이션 생성 환경티어: 웹 서버 환경 애플리케이션 이름: (애플리케이션 이름) 환경이름: (환경이름 ex)애플리케이션 이름-env) 도메인: (애플리케이션 이름) 플랫폼 플랫폼 유형: 관리형 플랫폼 플랫폼: Docker 플랫폼 브랜치: Docker running on 64bit Amazon Linux 2 플랫폼 버전: 3.6.4 (Recommended) 애플리케이션 코드 코드 업로드 선택 버전 레이블: 1 로컬 파일: 파일 선택 후 업로드 Dockerfile, DockerComposeFile, Jar 이렇게 3가지의 압축 파일 압축 프로젝트 전체를 압축해도 되지만, 용량 때문에 위의 3가지 파일만 압축..

[CI/CD] Jar 파일 생성 및 실행, Jar 파일 도커 컨테이너 실행, 도커 컴포즈 컨테이너 실행까지

Jar 파일 생성 실행 application.yml 추가 spring: # jar 파일 만들때 템플릿 경로 지정 thymeleaf: prefix: classpath:/templates/ suffix: .html build.gradle 추가 // jar 파일 만들 때 여러 번 실행하니 중복되어서 코드 추가 bootJar { duplicatesStrategy = 'exclude' } Gradle에서 build-bootJar 더블 클릭하면 Jar 파일 생성 완료 생성된 Jar 파일 Run하고 애플리케이션 확인 만약 jar 삭제하고 다시 생성하고 싶을 땐 터미널에 “.\gradlew clean” 입력 후 재 생성 하기! 주의할 점 jar 파일 실행 에러(templates을 못 찾을 때) controller와 h..

[CI/CD] Docker Compose란

Docker Compose Docker Compose 도커 컴포즈란 단일 서버에서 여러 개의 컨테이너를 하나의 서비스로 정의해서 컨테이너 묶음으로 관리할 수 있는 작업 환경을 제공하는 도구 예로 웹 컨테이너와 데이터베이스 컨테이너와 레디스 컨테이너를 생성해야 할 때 하나의 서비스로 묶어서 사용 Docker Compose 사용 Dockerfile을 작성한다. docker-compose.yml을 작성한다. (각각 독립된 컨테이너의 실행 정의) docker-compose up 명령어를 실행하여 docker-compose.yml 파일로 정의된 컨테이너 개시