| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 팀프로젝트
- 온라인쇼핑
- 델파이
- jwt
- Spring Security
- Git
- 코딩테스트
- proc
- 이커머스
- delphi
- snprintf
- 정수오버플로우
- 인사관리사이트
- 알고리즘
- Union Find
- 커머스기사
- 프로그래머스
- 개발일지
- c언어
- 기술면접
- 금융개발
- 유니온 파인드
- 기업분석
- SQLCA
- DFS
- 라이브커머스
- 힙
- Pro*C
- 레거시
- 오라클
- Today
- Total
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 팀프로젝트
- 온라인쇼핑
- 델파이
- jwt
- Spring Security
- Git
- 코딩테스트
- proc
- 이커머스
- delphi
- snprintf
- 정수오버플로우
- 인사관리사이트
- 알고리즘
- Union Find
- 커머스기사
- 프로그래머스
- 개발일지
- c언어
- 기술면접
- 금융개발
- 유니온 파인드
- 기업분석
- SQLCA
- DFS
- 라이브커머스
- 힙
- Pro*C
- 레거시
- 오라클
- Today
- Total
목록전체 글 (78)
JumpUp
금융 시스템에서 가장 중요한 것은 빠르기보다 '틀리지 않는 것'이다. 계좌이체 하나를 예로 들어, 트랜잭션과 정합성, 중복 처리를 막는 멱등성 개념을 정리했다.1. 이체 한 건에 어떤 일이 일어날까A 계좌에서 B 계좌로 10,000원을 보내려면 최소한 아래 작업이 모두 성공해야 한다.A 계좌 잔액 확인 및 출금B 계좌 입금거래 내역 기록출금만 되고 입금이 안 되면 돈이 사라진다. 입금만 되고 출금이 안 되면 돈이 생긴다. 그래서 이 작업들은 전부 성공하거나 전부 취소되어야 하고, 이것을 보장하는 단위가 트랜잭션이다.2. 트랜잭션과 ACID원자성(Atomicity): 전부 반영되거나 전부 취소된다.일관성(Consistency): 트랜잭션 전후로 데이터가 규칙(잔액 합계, 제약조건 등)을 지킨다.격리성(Is..
정렬된 데이터에서 값을 빠르게 찾는 이분 탐색은 구현은 짧은데 경계 조건에서 실수하기 쉽다. 기본 형태와 lower/upper bound, 그리고 "답을 이분 탐색한다"는 파라메트릭 서치까지 정리했다.1. 이분 탐색이란?정렬된 배열에서 탐색 범위를 매번 절반으로 줄여 가며 값을 찾는 방법이다. 시간복잡도는 O(log n)이라 데이터가 1억 개여도 30번 안팎의 비교로 끝난다. 반드시 정렬되어 있어야 한다는 점이 전제 조건이다.2. 기본 구현static int binarySearch(int[] arr, int target) { int left = 0, right = arr.length - 1; while (left mid를 구할 때는 left + (right - left) / 2 형태로 써서 오..
DP는 코딩 테스트에서 난이도 편차가 큰 대표 유형이다. 개념 자체는 단순한데 점화식을 세우는 데서 막히기 쉬워서, 접근 순서와 자주 나오는 패턴을 정리해 두었다.1. DP란?큰 문제를 작은 부분 문제로 나누고, 같은 부분 문제를 여러 번 풀지 않도록 결과를 저장해서 재활용하는 방법이다. 아래 두 조건이 맞을 때 적용할 수 있다.겹치는 부분 문제: 같은 작은 문제가 반복해서 등장한다.최적 부분 구조: 전체 문제의 최적해가 부분 문제의 최적해로 구성된다.2. 메모이제이션 vs 타뷸레이션메모이제이션(Top-Down): 재귀로 풀면서 이미 계산한 값은 배열에 저장해 두고 재사용한다. 필요한 부분만 계산한다.타뷸레이션(Bottom-Up): 작은 문제부터 반복문으로 표를 채워 나간다. 재귀 깊이 문제가 없고 보통..
스프링 프로젝트에서 데이터 접근 기술로 거의 기본처럼 쓰이는 JPA의 핵심 개념을 면접 질문 기준으로 정리했다.1. ORM과 JPAORM(Object-Relational Mapping): 객체와 관계형 데이터베이스의 테이블을 매핑해, SQL 대신 객체 중심으로 데이터를 다루게 해 주는 기술JPA(Java Persistence API): 자바 진영의 ORM 표준 인터페이스Hibernate: JPA의 대표적인 구현체. Spring Data JPA는 JPA 위에서 리포지토리 코드를 줄여 주는 추상화 계층이다.2. 영속성 컨텍스트(Persistence Context)엔티티를 영구 저장하는 환경으로, EntityManager를 통해 엔티티를 저장·조회하면 이 컨텍스트가 관리한다. 트랜잭션 단위로 생명주기를 가지는..
금융권이나 대형 시스템의 배치·서버 프로그램을 보면 C 소스 안에 SQL이 그대로 들어 있는 코드를 만나게 된다. 오라클 환경에서 이런 코드를 작성하는 도구가 Pro*C다. 개념과 컴파일 흐름, 꼭 알아야 할 문법을 정리했다.1. Pro*C란?Pro*C는 C 언어 소스 안에 EXEC SQL로 시작하는 SQL 문장을 직접 써넣을 수 있게 해 주는 오라클의 프리컴파일러(Precompiler)다. 이렇게 SQL을 다른 언어 안에 포함시키는 방식을 임베디드 SQL(Embedded SQL)이라고 한다.C 컴파일러는 EXEC SQL을 이해하지 못한다. 그래서 먼저 Pro*C 프리컴파일러(proc)가 이 문장들을 오라클 라이브러리 호출 코드로 바꿔 순수한 C 파일을 만들어 주고, 그 C 파일을 일반 C 컴파일러로 컴..
그래프 탐색 문제에서 가장 자주 쓰는 DFS와 BFS를 정리해봤다. 둘 다 시간복잡도는 같지만 탐색 순서와 잘 맞는 문제 유형이 다르다.1. DFS와 BFS란?DFS(깊이 우선 탐색): 한 방향으로 갈 수 있는 끝까지 깊이 들어갔다가, 더 갈 곳이 없으면 되돌아와서 다른 방향을 탐색한다. 스택(또는 재귀 호출)을 사용한다.BFS(너비 우선 탐색): 시작 정점에서 가까운 정점부터 차례대로, 같은 거리의 정점들을 모두 방문한 뒤 다음 거리로 넘어간다. 큐를 사용한다.2. 한눈에 비교자료구조: DFS는 스택/재귀, BFS는 큐탐색 방식: DFS는 깊이 우선, BFS는 가까운 정점부터(레벨 순서)시간복잡도: 둘 다 인접 리스트 기준 O(V + E), 인접 행렬 기준 O(V^2)공간복잡도: DFS는 재귀 깊이(최..
