| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Pro*C
- 재귀
- 알고리즘
- JVM
- 금융개발
- 이진탐색트리
- 이진트리
- jwt
- 코딩테스트
- n과m
- Union Find
- 데드락
- 인사관리사이트
- Java
- proc
- 커머스기사
- 병합정렬
- 유니온 파인드
- 힙
- Git
- 시간복잡도
- 기술면접
- 개발일지
- SQLCA
- 백트래킹
- 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 |
- Pro*C
- 재귀
- 알고리즘
- JVM
- 금융개발
- 이진탐색트리
- 이진트리
- jwt
- 코딩테스트
- n과m
- Union Find
- 데드락
- 인사관리사이트
- Java
- proc
- 커머스기사
- 병합정렬
- 유니온 파인드
- 힙
- Git
- 시간복잡도
- 기술면접
- 개발일지
- SQLCA
- 백트래킹
- c언어
- 이커머스
- 프로그래머스
- 메모리구조
- 라이브커머스
- Today
- Total
목록전체 글 (86)
JumpUp
코딩 테스트에서 "이 풀이로 시간 안에 통과할까?"를 판단하려면 시간복잡도를 계산할 줄 알아야 한다. 빅오 표기법과, 입력 크기에 따라 어떤 알고리즘까지 쓸 수 있는지 정리했다.1. 시간복잡도와 빅오 표기법시간복잡도는 입력의 크기 N이 커질 때 연산 횟수가 어떻게 늘어나는지를 나타낸 것이다. 빅오(Big-O) 표기법은 그중 가장 나쁜 경우(최악)의 증가 속도를 상수와 낮은 차수를 무시하고 표현한다. 예를 들어 3N^2 + 5N + 10은 O(N^2)이다.2. 자주 나오는 복잡도 (빠른 순서)O(1): 상수 시간. 배열의 인덱스 접근, 해시맵의 평균 조회.O(log N): 이분 탐색, 균형 이진 트리의 탐색.O(N): 배열 한 번 순회.O(N log N): 효율적인 정렬(병합 정렬, 퀵 정렬 평균, Arr..
객체지향은 면접에서 거의 빠지지 않는 주제다. 4가지 특성과 SOLID 원칙을 Java 예시와 함께 정리했다.1. 객체지향이란?프로그램을 데이터와 그 데이터를 다루는 동작을 묶은 객체(Object)들의 상호작용으로 구성하는 방식이다. 코드의 재사용성과 유지보수성을 높이는 것이 목적이다.2. 객체지향의 4가지 특성캡슐화(Encapsulation): 데이터와 동작을 하나로 묶고, 내부 구현은 숨긴 채 필요한 기능만 공개한다. 필드를 private으로 두고 메서드로만 접근하게 하는 것이 대표적이다.상속(Inheritance): 부모 클래스의 속성과 기능을 자식 클래스가 물려받아 재사용하고 확장한다.다형성(Polymorphism): 같은 타입(인터페이스)으로 다루지만 실제 객체에 따라 다른 동작을 하는 성질이다..
C 언어에서 가장 헷갈리는 부분이 포인터와 배열의 관계다. 둘은 비슷해 보이지만 같은 것이 아니다. 어디까지 같고 어디서 다른지 정리했다.1. 포인터란?포인터는 메모리 주소를 저장하는 변수다. &로 변수의 주소를 얻고, *로 그 주소에 있는 값에 접근한다.int a = 10;int *p = &a; // p에는 a의 주소가 들어 있다printf("%d\n", *p); // 10 (p가 가리키는 값)*p = 20; // a의 값이 20으로 바뀐다2. 배열 이름은 첫 번째 원소의 주소처럼 쓰인다배열 이름은 대부분의 식에서 첫 번째 원소를 가리키는 포인터로 바뀌어 사용된다. 그래서 arr[i]는 *(arr + i)와 같은 의미다.int arr[3] = {10, 20, 30};..
최단 경로 문제는 "간선에 음수가 있는가", "출발점이 하나인가 모든 쌍인가"에 따라 쓰는 알고리즘이 달라진다. 세 가지 대표 알고리즘을 비교해서 정리했다.1. 어떤 알고리즘을 고를까가중치가 없거나 모두 같다: BFS출발점 하나, 음수 간선 없음: 다익스트라출발점 하나, 음수 간선 있음(음수 사이클 감지 필요): 벨만-포드모든 정점 쌍의 최단 거리: 플로이드-워셜(정점 수가 작을 때)2. 다익스트라(Dijkstra)출발점에서 가장 가까운 정점부터 확정해 나가면서 거리를 갱신하는 그리디 방식의 알고리즘이다. 우선순위 큐를 쓰면 O(E log V)에 동작한다. 음수 간선이 있으면 이미 확정한 거리가 나중에 더 줄어들 수 있어서 쓸 수 없다.import java.util.*;static final int IN..
프로젝트 협업에서 필수인 Git은 명령어 자체보다 "어떤 상황에서 어떤 명령을 쓰는지"를 묻는 면접 질문이 많다. 자주 나오는 개념을 정리했다.1. Git이란?소스 코드의 변경 이력을 관리하는 분산 버전 관리 시스템이다. 각 개발자가 저장소 전체 이력을 로컬에 가지고 있어서 네트워크 없이도 커밋과 브랜치 작업이 가능하고, 원격 저장소(GitHub, GitLab 등)로 변경 사항을 공유한다.2. 작업 영역 세 곳작업 디렉터리(Working Directory): 실제 파일을 수정하는 곳스테이징 영역(Staging Area, Index): 다음 커밋에 포함할 변경 사항을 올려 두는 곳 (git add)로컬 저장소(Repository): 커밋된 이력이 저장되는 곳 (git commit)원격 저장소(Remote)..
금융권 시스템은 여러 개의 시스템이 역할을 나눠 맡는 구조다. 처음 접하면 용어부터 낯설어서, 대표적인 구분을 정리하고 직접 일하면서 느낀 문제점도 함께 적어 본다.1. 금융권 시스템의 큰 구분채널계: 고객과 만나는 창구. 영업점 단말, 인터넷·모바일 뱅킹, HTS/MTS 같은 화면과 입력을 담당한다.계정계: 돈과 계좌를 다루는 핵심 시스템. 계좌, 잔고, 거래 원장을 관리하고 입출금·이체·결제 같은 확정 처리를 한다. 흔히 코어 시스템이라고 부른다.대외계: 금융결제원, 거래소, 타 금융기관 같은 외부 기관과 전문(메시지)을 주고받는 연계 시스템.정보계: 분석과 보고를 위한 시스템. 계정계 데이터를 가져와 통계, 리스크 관리, 리포트에 사용한다.보통 채널계에서 요청이 들어오면 계정계가 처리하고, 필요한 ..
