TIL_AOP_241126
·
Spring 단기심화 2기
관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)개념공통 관심 사항과 핵심 관심 사항을 분리하는 기술어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화**횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목정인 프로그래밍 패러다임어플리케이션의 핵심기능 + 부가기능을 분리 가능기능 : 코드 핵심부를 어수선하게 채우지 않고도 비지니스 로직에 핵심적이지 않은 동작들을 프로그램에 추가할 수 있게 한다AOP가 필요한 상황모든 메소드의 호출 시간을 측정하고 싶다면?공통 관심 사항(cross-cutting concern) vs핵심 관심 사항(core concern)공통 관심 사항 : 시..
TIL_@Transactional_241125
·
Spring 단기심화 2기
@TransactionalSpring에서 제공하는 선언적 트랜잭션 관리를 위한 어노테이션이다. 명시적으로 트랜잭션의 시작, 커밋, 롤백 등을 호출하지 않고도 데이터 액세스 로직에 트랜잭션을 적용할 수 있다.선언적 트랜잭션 사용법XML 설정 어노테이션 설정@Transactionalpublic class DefaultFooService implements FooService { @Override public Publisher getFoo(String fooName) { // ... } // ...}클래스나 메서드 단위로 적용할 수 있다.
TIL_Docker-241124
·
Spring 단기심화 2기
Docker개념💡 Docker(도커)애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼 💡 Container(컨테이너)Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제 없이 실행될 것임을 확신할 수 있다. AWS에서 Docker를 실행하면 개발자와 관리자가 어떠한 규모에서든 매우 안정적이며 저렴한 방식으로 애플리케이션을 구축, 제공 및 실행할 수 있다. Docker를 사용하는 이유📎 리눅스 컨테이너(LXC, Linux Cont..
TIL_저장 프로시저_241123
·
Spring 단기심화 2기
💡 저장 프로시저(Stored Procedure)일련의 SQL문장을 선언해서 MySQL에 저장하고, 해당 SQL문을 함수처럼 사용하는 것으로 만들어 두기만 하면 함수처럼 호출하여 편하게 사용할 수 있다.사용 이유저장 프로시저는 사용자들에게 데이터에 대한 제한적인 접근을 허용케하는 전통적인 수단이다.쿼리 분석기와 같은 도구를 이용할 경우 원하는 어떠한 작업도 수행가능하므로, 사용자들은 SELECT, INSERT, UPDATE 혹은 DELETE 같은 문장을 직접 실행할 수 있는 권한을 가져서는 안된다.성능을 향상시키기 위해서이다. 저장 프로시저가 최초로 실행 되면, SQL 서버는 해당 프로시저에 대한 실행계획을 생성, 이 실행 계획이 캐쉬에 저장된다.50줄 이상의 복잡한 Select 문장이 있으며, 각 실..
TIL_Transaction_241122
·
Spring 단기심화 2기
트랜잭션(Transaction)트랜잭션은 데이터베이스에서 하나의 논리적 작업 단위를 의미하며, 데이터의 일관성과 무결성을 보장하기 위해 수행됩니다. 아래는 트랜잭션의 주요 개념과 특징입니다.1. 트랜잭션의 특성 (ACID)트랜잭션은 다음의 4가지 특성을 만족해야 합니다.원자성(Atomicity)모든 연산이 완전히 실행되거나 전혀 실행되지 않아야 함을 보장합니다.일관성(Consistency)트랜잭션이 수행된 후 데이터베이스는 항상 일관된 상태를 유지해야 합니다.격리성(Isolation)트랜잭션이 수행되는 동안 다른 트랜잭션의 간섭을 받지 않아야 합니다.영속성(Durability)트랜잭션이 성공적으로 수행되었다면, 그 결과는 영구적으로 반영되어야 합니다.2. 트랜잭션 상태 변화트랜잭션은 아래의 상태를 가지며..
TIL_JWT_241121
·
Spring 단기심화 2기
JWT (JSON Web Token)개념JWT (JSON Web Token)사용자 인증 및 정보 전달을 위해 JSON 형식으로 데이터를 안전하게 인코딩하여 생성된 토큰입니다.JWT 구조JWT는 Header, Payload, Signature 3부분으로 나뉘어 있으며 . 으로 구분됩니다.형식 : xxxxx.yyyyy.zzzzzHeader는 토큰의 타입과 사용된 서명 알고리즘을 나타냅니다. { "alg": "HS256", "typ": "JWT" }Payload는 사용자의 정보나 속성을 나타내는 Claim이 담겨있습니다. 즉, 보내고자 하는 데이터 자체를 의미합니다. { "sub": "1234567890", "name": "John Doe", "admin": true }Signa..
[Boj2240] 자두나무
·
알고리즘
첫 번째 시도 (성공)DP 테이블 정의dp[t][w][k] = i 초일때 k번 나무에서 현재까지 w만큼 움직여서 얻을 수 있는 최대 자두의 수 DP 테이블 초기화 // 1초에 자두가 떨어지는 나무의 위치에 따라 초기화if(tree[0] == 1) { dp[0][0][0] = 1; }else{ dp[0][1][1] = 1; }// 주어진 시간동안 움직이지 않고 계속 제자리에 서 있는 경우for(int t=1; t 점화식 1초 전과 위치와 비교해서 움직이는 경우(dp[t-1][w-1][(i+1) % 2])와 현재 자리를 지키는 경우(dp[t-1][w][i]) 얻을 수 있는 자두의 최대 개수 + 현재 위치에 떨어지는 자두(cur) 값으로 갱신dp[t][w][i] = Math.max(dp[t-1][w-1]..
[BOJ18111] 마인크래프트
·
카테고리 없음
첫 번째 시도 (실패)현재 내가 가용가능한 블록을 전체 다 썼을 때 평평하게 만들 수 있는 최대 높이(maxHeight)를 구해서 maxHeight ~ 0까지 높이를 낮춰가면서 기준 높이를 정하고 원래 지형에서 기준 높이로 평평하게 만들기 위한 시간을 일일이 구했다. 시간 계산을 할 때 원래 땅의 높이들 각각을 우선순위 큐에 넣어 내림차순으로 정렬한 뒤 솟아 나와있는 부분은 파내고 동일한 부분은 넘어가고 낮은 부분은 채워 넣는 식으로 구현했는데 결과는 시간초과package nov192024;import java.io.*;import java.util.*;public class Boj18111 { static int N, M, B, total, mapBlock, map[][]; public stat..