GitHub Actions) 2. IAM 사용자 생성
·
깃 탐구
2. IAM 사용자 생성 IAM(Identity and Access Management)는 AWS 리소스에 대한 액세스를 관리한다. 1. AWS에서 IAM 사용자 추가하기 AWS에서 IAM을 검색하여 왼쪽 사이드바의 “사용자”를 클릭한다. "사용자 생성"을 클릭한다. 사용자 이름을 입력하고 "다음"을 클릭한다. "권한 설정"에서 "직접 정책 연결"을 선택한다. AmazonEC2FullAccess, AmazonS3FullAccess, AWSCodeDeployFullAccess를 검색하여 추가한 후 아래쪽의 “다음”을 클릭한다. 아래와 같이 확인 후 "다음"을 누른다. IAM 사용자가 생성되었다. 2. 액세스 키 ID와 비밀 액세스 키 생성하기 사용자 이름을 클릭한다. "액세스 키 만들기"를 클릭한다. 아래..
GitHub Actions) 1. Work Flows 만들기
·
깃 탐구
1. Work Flows 만들기 이번에는 GitHub Actions를 이용하여 CI/CD를 해볼 것이다. 1. GitHub Repository에서 GitHub Actions를 할 Branch 생성하기 “main”을 클릭하고 “View all branches”를 클릭한다. "New branch"를 클릭한다. "New branch name"을 작성하고 "Create new branch"를 클릭한다. 브랜치가 생성되었다. 2. Work Flows 생성하기 위쪽 탭에서 "Actions"를 클릭한다. 왼쪽 사이드에서 "New workflow"를 클릭한다. "Java"의 "Gradle" 환경을 사용하고 있기 때문에 "Java with Gradle"에 있는 "Configure"를 클릭한다. 기본적으로 작성된 코드가 ..
GitHub Actions) GitHub Actions란 무엇일까?
·
깃 탐구
GitHub Actions란 무엇일까? GitHub Actions란? GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼이다. 리포지토리에 Event가 발생할 때 트리거 되도록 GitHub 작업 work flows를 구성할 수 있다. Work Flows란? work flows는 하나 이상의 작업을 실행하는, 구성 가능한 자동화 프로세스이다. work flows는 리포지토리에 체크인된 YML 파일에 의해 정의되며 Event에 의해 트리거 될 때 실행되거나 수동 또는 정의된 일정으로 트리거 될 수 있다. work flows는 리포지토리의 .git/workflows 디렉터리에서 정의된다. 리포지토리에는 여러 work flows가 있을 수 있으며, 각 work f..
백준) (자바) 1427 소트인사이드(선택 정렬로 풀어보기)
·
알고리즘 탐구
소트인사이드 소트인사이드 - 백준 - 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 내림차순으로 수를 한 줄에 연속적으로 정렬하면 되는 문제이다. 이번 문제는 선택 정렬(Selection Sort)로 풀어보고자 한다. Selection Sort : 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법이다. 시간복잡도는 O(n²)으로 느린편이다. 선택 정렬 과정 1. 정렬하는 과정에서 정렬되지 않는 남은 정렬 부분에서 최솟값 또는 최댓값을 찾는다. 2. 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택한 데이터를 swap 한다. 3. 가장 앞에 있는 데이터의 위치를..
JPA) N + 1 문제
·
자바 탐구
N + 1 문제 데이터베이스의 관계형 모델과 테이블 간의 관계를 다룰 때 주로 발생한다. 한 개의 쿼리로 데이터를 조회할 때, 해당 데이터에 연관된 다른 데이터들을 조회할 때 추가적인 쿼리가 n개 발생하는 현상이다. 주로 ORM(Object-Relational Mapping) 라이브러리를 사용하는 애플리케이션에서 발생하며, 지연 로딩(Lazy Loading)을 사용할 때 주로 발생한다. 해결 방법 해결방법으로는 Eager Loading(즉시 로딩)과 Fetch Joing이 있다. 1. Eager Loading(즉시 로딩) JPA에서 연관된 엔티티를 LAZY로딩으로 설정하여 쿼리가 실행될 때 실제로 연관된 엔티티를 가져오지 않고, 필요할 때 가져오도록 설정이 되어있다. Earger Loading을 사용하면..
자바) 예외 클래스
·
자바 탐구
예외 클래스 예외 (exception) 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하지만, 예외는 예외처리(exception handling)를 통해서 프로그램을 종료하지 않고, 정상 실행 상태를 유지할 수 있도록 할 수 있다. 자바는 예외가 발생할 가능성이 높은 코드를 컴파일할 때 예외 처리 유무를 확인한다. 만약 예외 처리 코드가 없다면 컴파일이 되지 않는다. 하지만 모든 예외에 대해 예외처리 유무를 확인하는 것은 아니다. try-catch-finally 블록 try { 예외 발생 가능 코드 } catch(예외클래스 e) { 예외 처리 } finally { 항상 실행 } try 블록에는 예외 발생 가능..
데이터베이스) RDB와 NoSQL
·
데이터베이스 탐구
RDB와 NoSQL RDB (Relational Database) 데이터를 테이블형태로 저장하고, 테이블 간의 관계를 정의하여 데이터를 구조화하는 데이터베이스 시스템 가장 널리 사용된다. 특징 테이블 ✔ RDB에서 데이터는 테이블 형태로 저장된다. ✔ 각 테이블은 행(row)과 열(column)으로 구성되어 있으며, 각 행은 레코드(record)를 나타내고, 각 열은 속성(attribute)을 나타낸다. 스키마 ✔ RDB는 스키마를 사용하여 데이터 구조를 정의한다. ✔ 테이블의 이름, 속성들의 이름과 데이터 타입, 테이블간의 관계등을 정의 ➜ 데이터의 일관성과 무결성을 보장한다. ➜ 기존에 작성한 스키마는 수정하기가 어렵다. SQL ✔ RDB는 SQL(Structured Query Language)을 사..
자바) 오버로딩과 오버라이딩
·
자바 탐구
오버로딩과 오버라이딩 오버로딩 (Overloading) 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것 메서드 오버로딩의 조건 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다 class A { 리턴 타입 메서드명 (타입 변수, ...) { ... } 리턴 타입 메서드명 (타입 변수, ...) { ... } } 리턴타입 : 같아도 상관없음 메서드 이름 : 동일해야함 매개변수 : 매개변수의 타입, 개수, 순서가 달라야함 매개값을 다양하게 받아서 처리할 수 있도록 하기 위해서는 오버로딩이 필요하다. int plus(int x, int y) { int result = x + y; return result; } double plus(double x, doutble y) { double result ..
오지랖 토끼
알고자 하는 것에 대한 오지랖