전체 글

JAVA

[JAVA] 변수의 기본형 및 참조형 타입 및 변수 4가지 종류

기본형 타입과 참조형 타입 1. 기본형(primitive type) : 실제 값을 저장함, null을 가질 수 없음 2 참조형(reference type) : 객체 주소를 저장함, null 가질 수 있음 기본형 타입의 종류와 특징 기본형 타입(primitive type) 논리(boolean), 문자(char), 정수(long, int, byte, short) 실수(float, double) 특징 객체가 아니기 때문에 null을 가질 수 없다. 메모리의 스택(stack)에 저장된다. 메모리에는 실제 값이 있다. 참조형 타입(reference type) 배열 타입, enum 타입, class, interface 특징 객체며 null을 가질 수 있다. 실제 값은 다른 곳이 있고, 그 값이 있는 주소를 참조해서..

알고리즘

[백준] 9095번 - 1, 2, 3 더하기 (Python)

설명 1) DP 테이블 정의 d[i] = N 정수 i를 1, 2, 3의 합으로 나타내는 경우의 수 2) 점화식 찾기 (1부터 채워나감) 1. d[1] - 1가지 1 2. d[2] - 2가지 1 + 1 2 3. d[3] - 4가지 1 + 1 + 1 1 + 2 2 + 1 3 4. d[4] - 7가지 3) 점화식 작성 d[i] = d[i-1] + d[i-2] + d[i-3] 코드 1. Top-down 풀이방식 (재귀) Top-down은 Bottom-up보다 성능은 좋지 않지만 메모리와 가독성에 이점이 있습니다. import sys input = sys.stdin.readline nums = [int(input().rstrip()) for _ in range(int(input().rstrip()))] def l..

알고리즘

[백준] 1182번 - 부분수열의 합 (Python)

https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 전형적인 백트래킹 문제입니다. 설명 # 백트래킹 이용 - 원소의 개수가 N개인 리스트의 부분집합 개수는 2^N, - 공집합 빼면 2^N-1개의 부분집합에 대해 합이 S와 일치 하는지 확인 1) 함수의 정의 : func(cur, total): - 현재 부분집합의 개수 cur, 현재까지의 전체 합 total 2) base condition if cur == N: #..

Spring

@Transactional Annotation 정리

0. 트랜잭션이란 ? 트랜잭션이란 DB의 상태를 변환시키는 논리적 단위나 일련의 연산을 말합니다. 하나의 트랜잭션은 반드시 Commit 되거나 Rollback 되어야 합니다. 트랜잭션의 성질 (ACID 특징) 원자성(Atomicity) : 트랜잭션 연산은 DB에 모두 반영되던지 혹은 전혀 반영되지 않아야 한다. 일관성(Consistency) : 트랜잭션 성공 후에는 일관성 있는 DB로 변한다. 독립성(Isolation) : 하나의 트랜잭션 실행에 다른 트랜잭션 연산이 끼어들 수 없다. 영속성(Durability) : 트랜잭션 성공 후에는 영구적으로 반영되어야 한다. 트랜잭션의 격리 수준 - 격리수준은 아래로 갈 수록 더 높아진다. READ UNCOMMITED : 아직 commit 되지 않은 데이터에 대해..

Spring

빈 등록 어노테이션 @Configuration, @Component, @Bean에 대해서

스프링 빈을 등록하는 방법으로 @Configuration, @Component, @Bean이 있습니다. 이러한 어노테이션에 대해서 알아보겠습니다. 1. @Configuration 어노테이션 빈을 수동으로 등록하기 위해서 @Bean 어노테이션을 사용합니다. 보통 수동으로 여러 개 등록하는 경우 @Configuration 어노테이션과 함께 사용합니다. 메소드 이름을 갖고 빈 이름이 결정되기 때문에 중복된 이름으로 빈을 생성하지 않도록 주의합니다. @Bean 어노테이션은 수동으로 등록해 주어야 하는데, 특히 개발자가 직접 제어 불가능한 라이브러리를 활용하고자 할 때 사용합니다. 1개의 객체만 생성하여 여러 클래스가 사용함으로써 메모리를 아낄 수 있다는 장점이 있습니다. 동작방식 1. @Configuration..

Spring

세션 vs JWT

[출처] - 얄팍한 코딩사전 https://youtu.be/1QiOXWEbqYQ 1. 인증, 인가 차이 (Authentication vs Authorization) - 인증(Authentication): 쉽게 말해서 로그인, 이 사이트에 가입된 회원임을 확인하는 것 - 인가(Authorization): 한 번 "인증"을 받은 사용자가 서비스 여러 기능 사용 시 로그인 되어있음을 알아보고 허가를 해 주는 것 ex) 페이스북에서 로그인으로 인증 후 내 친구목록을 확인하는 행위와 같이 내 계정으로'만' 할 수 있는 것을 보고 허가를 해 주는 것 즉, 로그인이 유지되는 상태에서 일어나는 일 - 얄팍코딩에서는 'Authorization'을 기억하기 쉽게 로그인 된 사용자를 환영하는 '어서와'라고 부르기도 합니다 ..

Git

[CI/CD 구축 2/2] AWS에서 S3 + Code Deploy로 EC2에 배포하기

❔ 다루지 않는 내용 1. EC2 설치 및 연결 2. AWS S3 셋팅 🔷 진행 순서 1. IAM 사용자 추가 및 GitHub 프로젝트에 Action Secret키 설정 2. EC2에 Code Deploy Agent 설치 + IAM 역할 부여 3. Code Deploy 생성 및 IAM 역할 부여 4. gitignore에 없는 파일 관리 (외부에 공개되지 않아야 하는 정보 관리) 5. GitHub Action yml 파일 등록 6. [배포] appspec.yml 및 deploy.sh 작성 7. Github Action 실행 1. S3와 CodeDeploy 권한을 부여받은 IAM 사용자 추가 - 가장 먼저 S3와 CodeDeploy 권한을 부여받은 사용자를 생성합니다. - 사용자를 추가합니다. 이 때 사용자..

Git

[CI/CD 구축 1/2] Git Action 문법 정리

기존 Jenkins를 사용하다가 https://wookiist.dev/155 해당 글을 보았습니다. 아무래도 저에게는 GitAction이 적당하다고 판단되어 Git Action을 이용하여 CI/CD 해보도록 하겠습니다. Git Action의 작업단위는 크게 workflow, event, job, step으로 구성되어 있습니다 Git Action 용어 Workflow - 프로젝트를 빌드, 배포하기 위한 전체적 프로세스입니다. - 하나의 workflow에는 정해진 event가 있으며 해당 event에 의해 여러 개의 job이 실행됩니다. Event(on) - workflow를 실행시키는 조건입니다. on 문법을 이용하여 이벤트를 발생시킬 수 있습니다. - 또한 cron을 사용하여 주기적으로 스케쥴링이 가능합..

mers
nathan 개발블로그