| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 라이브커머스
- 데드락
- 재귀
- 백트래킹
- 프로그래머스
- 메모리구조
- 이진트리
- Union Find
- 알고리즘
- Java
- 금융개발
- c언어
- SQLCA
- Pro*C
- 커머스기사
- 인사관리사이트
- 코딩테스트
- 이커머스
- 시간복잡도
- 힙
- Git
- proc
- n과m
- 기술면접
- JVM
- jwt
- 이진탐색트리
- 병합정렬
- 개발일지
- 유니온 파인드
- 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 |
- 라이브커머스
- 데드락
- 재귀
- 백트래킹
- 프로그래머스
- 메모리구조
- 이진트리
- Union Find
- 알고리즘
- Java
- 금융개발
- c언어
- SQLCA
- Pro*C
- 커머스기사
- 인사관리사이트
- 코딩테스트
- 이커머스
- 시간복잡도
- 힙
- Git
- proc
- n과m
- 기술면접
- JVM
- jwt
- 이진탐색트리
- 병합정렬
- 개발일지
- 유니온 파인드
- Today
- Total
목록전체 글 (84)
JumpUp
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 같은 화면과 입력을 담당한다.계정계: 돈과 계좌를 다루는 핵심 시스템. 계좌, 잔고, 거래 원장을 관리하고 입출금·이체·결제 같은 확정 처리를 한다. 흔히 코어 시스템이라고 부른다.대외계: 금융결제원, 거래소, 타 금융기관 같은 외부 기관과 전문(메시지)을 주고받는 연계 시스템.정보계: 분석과 보고를 위한 시스템. 계정계 데이터를 가져와 통계, 리스크 관리, 리포트에 사용한다.보통 채널계에서 요청이 들어오면 계정계가 처리하고, 필요한 ..
그리디는 구현은 짧은데 "왜 이 기준으로 정렬하면 되지?"를 확신하기 어려운 유형이다. 개념과 적용 조건, 대표 문제를 정리했다.1. 그리디란?각 단계에서 그 순간 가장 좋아 보이는 선택을 하면서 답을 만들어 가는 방법이다. 한 번 한 선택은 되돌리지 않는다. 빠르고 단순하지만, 모든 문제에서 최적해를 보장하지는 않는다.2. 그리디가 통하는 조건탐욕 선택 속성: 지금의 최선 선택이 전체 최적해로 이어진다.최적 부분 구조: 선택 이후에 남은 문제도 같은 형태의 작은 문제가 된다.실전에서는 "정렬 기준을 정하고, 그 기준이 틀리는 반례가 있는지" 확인하는 방식으로 접근한다.3. 그리디가 안 통하는 예: 거스름돈동전 단위가 500, 100, 50, 10처럼 큰 단위가 작은 단위의 배수라면 큰 동전부터 쓰는 그..
백엔드 면접에서 로그인 방식을 물을 때 세션과 JWT의 차이, 그리고 웹 보안 용어(XSS, CSRF, CORS)가 단골로 나온다. 헷갈리기 쉬운 개념을 한 번에 정리했다.1. 인증(Authentication)과 인가(Authorization)인증: 사용자가 누구인지 확인하는 과정 (로그인)인가: 인증된 사용자가 해당 자원에 접근할 권한이 있는지 확인하는 과정 (관리자만 접근 가능한 페이지 등)순서는 항상 인증이 먼저, 그다음이 인가다.2. 쿠키와 세션쿠키: 서버가 브라우저에 저장하게 하는 작은 데이터. 이후 요청마다 브라우저가 자동으로 함께 보낸다.세션: 사용자 상태를 서버에 저장하고, 브라우저에는 세션 ID만 쿠키로 주는 방식이다.세션 방식의 흐름: 로그인 성공 → 서버가 세션 생성 후 세션 ID 발..
