자바 코딩 테스트 문법 정리
·
Algorithm/Java
코딩테스트를 파이썬으로 보지 않는 곳을 위해.. 자바 문법을 정리해보려고 합니다.계속 갱신해나갈게요🤓1. importimport java.io.*; //입출력import java.util.* //많이 사용하는 패키지2. 입출력-입력//한 줄 입력(정수 하나)public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());}//공백으로 구분된 입력public static void main(String[] args) throws IOException {StringTo..
[Architecture] 렌탈 시장, 복잡한 비즈니스 로직을 푸는 IT 아키텍처 전략
·
IT Insight
최근 이커머스의 흐름은 '소유'에서 '구독'으로 빠르게 변하고 있습니다. 하지만 개발자 입장에서 렌탈/구독 서비스는 매우 까다로운 도메인입니다. 결제 한 번으로 끝나는 일반 쇼핑몰과 달리, 계약의 라이프사이클(Lifecycle) 내내 수많은 상태 변화와 정산 로직이 얽히기 때문입니다.오늘은 웅진IT가 렌탈 비즈니스의 복잡성을 해결하기 위해 채택한 기술적 접근법과 시스템 구조를 정리해 봅니다.1. 렌탈 도메인의 특수성: 왜 일반 시스템으론 부족할까?일반적인 커머스가 Order -> Payment -> Delivery로 끝난다면, 렌탈은 그 이후부터가 시작입니다.상태 머신(State Machine)의 복잡도: 설치 완료, 정기 점검, 연체, 중도 해지, 소유권 이전 등 기기 한 대가 가질 수 있는 상태가 매..
[AI]AI와의 성공적인 협업 사례 - 29CM
·
IT Insight
최근 29CM QE팀에서 공개한 'AI와의 성공적인 협업 사례'를 읽고 그 내용을 정리해 보았습니다. 상용 툴의 한계를 느끼고 Cursor AI(Vibe Coding)를 통해 직접 문제를 해결해 나간 과정이 인상 깊습니다.1. 10년 쓴 상용 툴을 뒤로하고 직접 만들기로 한 이유?많은 팀이 상용 TMS(Testcase Management System)를 사용하지만, 29CM QE팀은 다음과 같은 고질적인 문제에 직면해 있었습니다.느린 기술 지원: 1년 넘게 방치된 버그와 계층 구조 오류로 인해 테스트 케이스 Import가 사실상 불가능했습니다.도구의 파편화: 결국 신규 케이스는 구글 스프레드시트에 작성하고, 기존 케이스만 TMS에서 수행하는 '반쪽짜리' 운영이 계속되었습니다.비용 대비 효율 저하: 지불하..
[Architecture] 무신사 통합 회원 시스템 기술 분석
·
IT Insight
최근 무신사가 29CM, 솔드아웃 등 플랫폼별로 파편화되어 있던 회원 체계를 하나로 묶는 OCMP(One Core Multi Platform) 프로젝트를 성공적으로 마쳤습니다. '엔진이 켜진 비행기의 엔진을 교체'하는 것과 같았던 이번 여정의 기술적 핵심을 정리해 드립니다.1. OCMP(통합 회원 시스템)란?단순히 로그인 창을 하나로 합치는 것을 넘어, 팀 무신사의 모든 플랫폼이 하나의 거대한 데이터 생태계로 연결되는 것을 의미합니다.구분기존 시스템 (Silo)통합 회원 시스템 (OCMP)데이터 구조플랫폼별 독립적 관리 (사일로)중앙 집중형 Core Member System고객 경험서비스별 별도 가입/로그인 필요한 번의 로그인으로 전 서비스 이용개발 비용플랫폼 신설 시 회원 기능 중복 개발약 80%의 구..
[AI]'컨텍스트 엔지니어링' 완벽 정리
·
IT Insight
2026년 현재, AI 모델의 성능이 상향 평준화되면서 단순히 '어떤 모델을 쓰느냐'보다 'AI에게 어떤 환경(Context)을 제공하느냐'가 더 중요한 시대가 되었습니다. 오늘은 프롬프트 엔지니어링을 넘어선 새로운 패러다임, 컨텍스트 엔지니어링에 대해 정리해 보겠습니다.1. 컨텍스트 엔지니어링이란?많은 분이 '프롬프트 엔지니어링'과 혼동하시곤 합니다. 하지만 이 둘은 관점부터 다릅니다.구분프롬프트 엔지니어링컨텍스트 엔지니어링핵심 질문"무엇을, 어떻게 물어볼 것인가?""답변을 내기 위한 정보 환경을 어떻게 설계할 것인가?"접근 방식단일 입력 문장(Input) 최적화정보의 구조, 흐름, 데이터 환경 전체 설계비유좋은 질문을 던지는 기술도서관의 서가 구조와 참고 서적을 배치하는 기술2. 왜 2026년에 '컨..
[백준/Python] 11659번: 구간 합 구하기 4
·
Algorithm/Python
1. 문제 분석핵심: N개의 수가 주어졌을 때, i번째 수부터 j번째 수까지의 합을 구하는 질문(M)을 해결하기.입력: N (데이터 개수), M (질문 개수), 그리고 N개의 숫자들.조건: N, M 2. 접근 방식for문을 돌려 합을 구하는 방식시간 초과 문제합 배열로 구하기3. 내 풀이 (Code)N=int(input())M=int(input())number=list(map(int,input().split()))for _ in range(M): sum=0 i=int(input()) j=int(input()) for k in range(i-1,j): sum=sum+number[k]4. 코드 리뷰 및 학습 포인트✅ 정답 풀이 - 합 배열 (Prefix Sum)매번 ..
[백준/Python] 1546번: 평균
·
Algorithm/Python
1. 문제 분석핵심: 주어진 점수 중 최댓값(M)을 찾고, 모든 점수를 점수/M*100으로 변환한 뒤 새로운 평균 구하기.제한 사항: 과목 수 N은 1000 이하, 점수는 100 이하의 정수2. 접근 방식점수를 1차원 리스트에 저장합니다.최대값을 구합니다.한 과목씩 새 방법으로 점수를 구하고 평균을 구합니다.3. 내 풀이 (Code)N=int(input())scores=list(map(int,input().split()))M=max(scores)new_scores=[]for i in range(len(scores)): new_scores.append(scores[i]/M*100) print(sum(new_scores)/N)4. 코드 리뷰 및 학습 포인트✅ 더 효율적인 풀이반복문 대신 파이썬의 ..
[백준/Python] 11720번: 숫자의 합
·
Algorithm/Python
1. 문제 설명문제: N개의 숫자가 공백 없이 쓰여 있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.입력: 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100), 둘째 줄에 숫자 N개가 공백 없이 주어진다.출력: 입력으로 주어진 숫자 N개의 합을 출력한다.2. 접근 방식이 문제는 문자열의 각 자릿수를 분리하여 정수로 변환한 뒤 더하는 것이 핵심입니다.파이썬의 input()을 통해 두 번째 줄의 숫자들을 문자열 형태로 받습니다.문자열을 list()로 감싸면 각 자릿수가 하나씩 분리된 리스트가 됩니다.반복문을 통해 리스트의 각 요소를 다시 정수(int)로 형변환하며 누적 합을 구합니다.3. 내 풀이 (Code)n=input()numbers=list(input())sum=0for i in numbe..
코딩 테스트 준비하기
·
Algorithm
1. 어떤 알고리즘으로 풀어야 할까?알고리즘 선택의 기준은 시간 복잡도입니다.1-1. 시간 복잡도 표기법빅-오메가($\Omega(n)$): 최선일 때(Best Case)의 연산 횟수빅-세타($\Theta(n)$): 보통일 때(Average Case)의 연산 횟수빅-오($O(n)$): 최악일 때(Worst Case)의 연산 횟수 (코딩 테스트의 기준)1-2. 시간 복잡도 활용 가이드상수는 제외: $O(2N)$은 $O(N)$으로 취급합니다.최대 차수 기준: 가장 많이 중첩된 반복문의 수행 횟수가 전체 시간 복잡도를 결정합니다.2. 디버깅: 논리 오류를 잡는 필수 과정디버깅은 문법 오류뿐만 아니라, 결과가 예상과 다르게 나오는 논리 오류를 찾는 과정입니다.중단점(Breakpoint) 설정: 코드 실행을 멈추고..
🔀비선형 자료 구조
·
Computer Science/Data Structure
비선형 자료구조란 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말합니다. 일반적으로 트리나 그래프를 말합니다.🔗 그래프그래프는 정점과 간선으로 이루어진 자료 구조를 말합니다.🧭 정점과 간선어떠한 곳에서 어떠한 곳으로 무언가를 통해 간다고 했을 때 '어떠한 곳'은 정점(vertex)이 되고 '무언가'는 간선(edge)이 됩니다.단방향 간선과 양방향 간선이 있습니다.정점으로 나가는 간선을 정점의 outdegree라고 하며, 들어오는 간선을 해당 정점의 indegree라고 합니다. 앞 그림의 정점 V는 outdegree는 세 개, indegree는 두 개인 상태입니다. 또한, 정점은 약자로 V 또는 U라고 하며, 보통 어떤 정점으로부터 시작해서 어떤 정점까지 간다를 "U에서부터 V로 간다."라고..