전체 글 24

[코테 1주차] 파이참 환경 세팅, 시간·공간 복잡도 & 프로그래머스 입문 문제 풀이

1. 1주차 개요이번 주차에서는 코딩테스트 준비의 첫 단계로,파이썬 개발 환경에 익숙해지고 알고리즘의 기본 개념을 이해하는 데 집중했다.강의를 통해 개념을 정리하고,프로그래머스 문제 풀이는 강의 진도와 상관없이 매일 최소 5문제 이상 꾸준히 진행하는 방식으로 시작했다.2. 1주차 목표파이썬 개발 환경에 익숙해지기시간 복잡도 / 공간 복잡도의 개념을 코드로 이해하기알고리즘 문제 풀이 흐름에 익숙해지기프로그래머스 입문 문제 풀이 루틴 만들기3. 강의 내용 정리3-1. 알고리즘과 친해지기 ① : 최댓값 찾기문제 설명숫자로 이루어진 배열이 주어졌을 때, 가장 큰 수를 반환하시오.[3, 5, 6, 1, 2, 4] 풀이 1️⃣ 모든 원소를 서로 비교하는 방법def find_max_num(array): for ..

Study/CodingTest 2025.12.28

[0주차] 코딩테스트 준비 시작 이유 및 계획 (알고리즘 강의 추천 + 프로그래머스 로드맵)

1. 코딩테스트 준비를 다시 시작하게 된 이유취업 준비를 하면서 프로젝트 경험을 쌓는 데 집중하다 보니 코딩테스트 준비는 자연스럽게 뒤로 밀려 있었다.하지만 막상 여러 기업 전형을 살펴보니, 여전히 서류 합격 후 코딩테스트로 1차 전형을 진행하는 곳이 매우 많았다. 특히 예전에 프로그래머스에서 코테를 직접 쳐봤을 때,“아직 실력이 많이 부족하다”는 벽을 크게 느꼈던 기억이 있다.이 경험 때문에 코딩테스트가 취준 과정에서 하나의 큰 허들처럼 느껴졌다.그래서 더 이상 미룰 수 없다고 판단했다.기회가 줄어들기 전에, 제대로 준비하자.현재는 계획 단계이며, 본격적인 학습은 다음 주부터 시작할 예정이다.이 글은 앞으로 매주 기록할 코딩테스트 준비 시리즈의 0주차(준비편)이다.2. 공부 방식 – 개념 강의 + 문제..

Study/CodingTest 2025.12.12

Redux보다 가볍고 Context보다 단순하게 — Zustand로 전역 상태를 관리

안녕하세요, 이번 포스팅에서는 React 전역 상태 관리의 핵심 라이브러리인 Zustand를 정리해봤어요.React로 프로젝트를 하다 보면 한 번쯤 이런 고민을 하게 됩니다. “props를 몇 번이나 내려보내고 있지?”“Context가 점점 늘어나고 있는데 괜찮을까?”“Redux는 너무 무겁고 설정이 복잡한데...” 저도 같은 고민 끝에 Zustand를 선택했습니다.결제 페이지처럼 여러 단계의 상태를 관리해야 할 때,Zustand는 깔끔하고 단순한 해법을 제시해줬습니다.1. Zustand를 선택한 이유당시 진행 중이던 프로젝트는 인터파크 티켓 결제 리디자인이었습니다.결제는 다음과 같은 단계로 구성되어 있었죠.예매자 정보 입력배송 방법 선택결제 수단 선택문제는 단계가 바뀔 때마다 이전 단계의 데이터를 유..

AI 페어 프로그래머 + 코드자동화: Cursor로 생산성 3배 높이기

사용 툴: Cursor (Claude Sonnet 4.5 기반 AI 페어 프로그래밍 IDE)1. 프로젝트 전체의 틀을 세우다# RINGLE AI TUTOR – Cursor Development Rules## Project Context- Monorepo 구조 - backend/: Ruby 3.3.5 + Rails 7.1.3 (API only, SQLite dev) - web/: React + TypeScript + Vite + pnpm - 개발 서버 - Rails → http://localhost:3000 - Web → http://localhost:5173 - 프론트엔드에서 백엔드 호출 시 axios 사용 - Base URL = import.meta.env.VITE_API_BASE_URL ?? '..

React 네이밍 컨벤션 & Git/PR 규칙 정리

React 개발에서 함수와 컴포넌트 네이밍은 단순한 스타일 문제가 아닙니다. 가독성, 유지보수성, 협업 효율을 결정짓는 핵심 요소입니다. 이 글에서는 기본 개념부터, 기업 현장에서 쓰이는 규칙, 그리고 제가 실제로 사용하는 Git/PR/파일 네이밍 규칙까지 한 번에 정리했습니다.1️⃣ 왜 네이밍 규칙이 중요한가?이름이 모호해 디버깅이 어려움상태나 함수를 찾느라 시간 낭비컴포넌트와 파일명이 뒤엉켜 협업 시 혼란 발생→ 초기부터 좋은 네이밍 습관을 들이는 것이 중요합니다.2️⃣ 기본 React 네이밍 규칙✔️ 컴포넌트파일명 = 컴포넌트명 (PascalCase)PostList.jsx → function PostList()CommentForm.jsx → function CommentForm()✔️ 이벤트 핸들러..

[매일메일] 단위 테스트와 통합 테스트의 차이점은 무엇인가요?

단위 테스트와 통합 테스트의 차이점은 무엇인가요?1. 직접 조사(구글링, 공식문서, 기술 포스팅 등으로 학습)1) 단위 테스트소프트웨어 테스트의 한 유형으로, 소프트웨어의 개별 구성 요소 또는 모듈이 예상대로 작동하는지 검증하는 과정“단위”는 보통 메서드. 함수, 또는 클래스와 소프트웨어의 가장 작은 테스트 부분을 의미특징독립성빠른 실행모의 객체 사용세밀한 검증장점빠른 실행 속도독립성코드 커버리지 향상디버깅 용이성단점제한된 범위모킹의 복잡성2) 통합 테스트소프트웨어의 개별 구성 요소들이 모여 전체 시스템에서 올바르게 동작하는지 검증하는 테스트 방법이다.단위테스트가 개별 모듈 또는 클래스의 기능을 검정하는 것에 초점을 맞춘다면, 통합 테스트는 이들 모듈이 서로 통합되어 상호작용할 때 발생할 수 있는 문제를..

Development/Backend 2025.09.18

[매일메일] 동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애가 나면 어떻게 조치할 수 있나요? + 동기와 비동기의 차이점은 무엇인가요?

동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애가 나면 어떻게 조치할 수 있나요?1. 직접 조사(구글링, 공식문서, 기술 포스팅 등으로 학습)1) 동기 vs 비동기 통신동기(Synchronous): 요청이 끝날 때까지 대기 → 직렬적 실행, 장애 전파에 취약비동기(Asynchronous): 요청 후 기다리지 않고 다른 작업 수행 → 콜백·이벤트 기반, 높은 처리량멀티스레딩과 비동기멀티스레딩: 여러 스레드를 병렬 실행 (context switching 비용 존재)비동기: Non-block I/O 기반, 적은 스레드로도 높은 성능→ 최신 추세: “스레드는 최소화, Non-block I/O로 처리량 극대화” 2) Block I/O vs Non-block I/OBlock I/O: 작업이 완료될 때까지 ..

Development/Backend 2025.09.18

[매일메일] @Component, @Controller, @Service, @Repository의 차이점에 대해서 설명해주세요.

@Component, @Controller, @Service, @Repository의 차이점에 대해서 설명해주세요.1. 직접 조사(구글링, 공식문서, 기술 포스팅 등으로 학습)어노테이션적용 계층주요 역할스프링의 추가 기능코드 예시@Component전 계층 (범용)스프링 IoC 컨테이너에 빈(Bean)으로 등록- 의존성 주입(DI) 대상이 될 수 있음- 특별한 기능 없음 (단순 빈 등록)java@Componentpublic class MyUtil {...}@RepositoryPersistence Layer (DAO/DB)데이터베이스와 직접 상호작용하는 DAO 정의- 발생한 DB 관련 예외를 DataAccessException 계열 예외로 변환 (예외 번역)- 컴포넌트 스캔 시 자동 빈 등록java@Repo..

Development/Backend 2025.09.05

[매일메일] equals와 hashCode는 왜 함께 재정의해야 할까요?

equals와 hashCode는 왜 함께 재정의해야 할까요?1. 직접 조사(구글링, 공식문서, 기술 포스팅 등으로 학습)1) 객체 비교: 동일성과 동등성자바에서 객체 비교는 두 가지 방식이 있다:==는 동일성(Identity)을 비교한다. 즉, 같은 객체 인스턴스인지 확인하는 연산자다.equals()는 동등성(Equality)을 비교한다. 즉, 내용이 같은지 판단하는 메서드다.예를 들어 new User("kim") 두 개를 만들면, ==는 false지만 equals()는 true일 수 있다.2) equals()의 의미객체가 의미상으로 같은지를 판단하는 메서드다.기본 구현은 ==처럼 작동하지만, 의미 있는 비교를 위해 오버라이드한다.주로 두 객체가 논리적으로 같은 상태를 가졌는지 판단하는 데 사용된다.3)..

Development/Backend 2025.09.05

[매일메일] 로그와 메트릭을 설명해주세요.

로그와 메트릭을 설명해주세요.1. 직접 조사(구글링, 공식문서, 기술 포스팅 등으로 학습)1) 로그 (Log)정의시스템이나 애플리케이션에서 발생하는 사건/활동 기록을 텍스트 형식으로 저장한 데이터주로 디버깅, 문제 해결, 보안 감사, 시스템 상태 분석에 사용특징텍스트 기반: 사람이 읽을 수 있는 형식으로 기록시간 순서 기록: 이벤트 발생 순서대로 저장컨텍스트 제공: 타임스탬프, 이벤트 유형, 메시지 내용 포함예시웹 서버 로그: 클라이언트 요청 정보 (IP, HTTP 메서드, URL 등)애플리케이션 로그: 특정 기능 호출, 예외 발생 메시지보안 로그: 사용자 인증 시도, 권한 변경 기록활용문제 해결: 애플리케이션 오류, 서버 다운 원인 파악보안: 비정상적인 접근 시도 탐지운영 분석: 사용량, 오류 빈도 확..

Development/Backend 2025.09.05