| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- JVM
- 알고리즘공부
- 개발자팁
- 백준
- 멀티스레드
- 자바개발
- 자료구조
- 프로그래머스
- 파이썬
- 메모리관리
- 코딩테스트팁
- 가비지컬렉션
- 코딩공부
- 프로그래밍기초
- 정렬
- 코딩테스트준비
- Java
- 개발자취업
- 예외처리
- HashMap
- 자바공부
- 자바기초
- 코딩인터뷰
- 자바
- 알고리즘
- 자바프로그래밍
- 객체지향
- 클린코드
- 코딩테스트
- 개발공부
- Today
- Total
목록분류 전체보기 (103)
코드 한 줄의 기록
코딩테스트를 준비하면서 알고리즘과 자료구조는 열심히 공부하는데, 정작 입출력 처리에서 자꾸 실수하는 경험 없으신가요? 저도 처음에는 문제를 풀고도 입출력 형식을 잘못 읽거나 파싱 과정에서 버그가 생겨서 "틀렸습니다"를 받곤 했습니다. 지금까지 여러 회사의 코딩테스트를 경험하면서 느낀 것은, 깔끔한 입출력 처리가 코딩테스트 점수에 상당한 영향을 미친다는 것입니다. 이 글에서는 제가 실제로 코딩테스트를 준비하면서 경험한 입출력 처리와 파싱의 노하우를 정리해보려고 합니다. 단순한 이론이 아니라, 실전에서 자주 만나는 상황들과 그에 대한 해결책들을 함께 살펴보겠습니다.기본이 가장 중요: 입력 형식 정확히 읽기코딩테스트에서 첫 번째 실수가 바로 입력 형식을 제대로 읽지 않는 것입니다. "첫 줄에 정수 N이 주어진..
코딩테스트를 조금이라도 풀어본 사람이라면 한 번쯤 이런 경험을 했을 것이다.“로컬 테스트할 땐 다 통과했는데, 제출만 하면 실패”, “예제 입력은 다 맞는데 채점에서 틀렸다고 뜨는 경우”, “시간 초과는 안 나는데 자꾸 한두 개 테스트만 깨지는 경우”.이런 상황의 대부분은 예외 케이스 미처리와 허술한 디버깅 습관에서 나온다.이 글은 “나도 계속 공부해 나가면서, 동시에 다른 사람에게도 설명하는” 느낌으로, 실제 코딩테스트 준비 과정에서 바로 써먹을 수 있는 예외 케이스 처리 방법과 디버깅 팁을 정리해 본다.왜 ‘예외 케이스’에서 자꾸 발목을 잡힐까?문제를 풀다가 기본 로직은 금방 떠오르는데, 제출하면 70~80%에서만 통과하고 몇 개 테스트가 깨지는 경우가 많다. 이때 대부분의 패턴은 다음 둘 중 하나다..
대부분의 개발자가 처음 코딩테스트를 준비할 때 간과하기 쉬운 부분이 있습니다. 바로 변수명과 함수명을 짓는 방식입니다. 많은 사람들이 알고리즘 해결 자체에만 집중하다 보니 코드의 가독성이나 네이밍 컨벤션을 무시하곤 합니다. 하지만 진정한 의미에서 "좋은 코드"를 작성하려면, 변수명과 함수명을 얼마나 명확하고 일관성 있게 짓는지가 매우 중요합니다. 실제로 코딩테스트 면접을 진행하는 면접관들도 코드의 가독성을 평가하는 항목으로 포함시키는 경우가 많습니다. 오늘은 제가 코딩테스트를 준비하면서 배운 변수명과 함수명을 잘 짓는 노하우에 대해 여러분들과 공유하려고 합니다.왜 변수명과 함수명이 중요한가?저는 처음 코딩테스트를 시작했을 때 변수명을 a, b, c 같은 단일 문자로 짓거나, temp, res, ans 같..
요즘 이직 준비하면서 코딩테스트를 꾸준히 풀다 보니, 예전에는 그냥 “통과만 하면 됐지” 하고 넘겼던 주석과 코드 가독성이 점점 더 신경 쓰이기 시작했다. 특히 실무 경력이 있다 보니, 면접관 입장에서는 “이 사람이 문제만 푸는 사람이냐, 팀에서 같이 코드를 유지보수할 수 있는 사람이냐”를 코드를 통해 보고 싶어 한다는 생각이 자꾸 들었다. 그래서 이번 글은 코딩테스트를 준비하면서 직접 신경 쓰고 있는 주석 스타일과 가독성을 챙기는 구체적인 습관들을 한 번 정리해 보려고 한다. 시험장에서는 시간에 쫓기니까 모든 걸 적용하긴 어렵지만, 평소 연습할 때부터 이런 기준을 몸에 익혀 두면 면접에서 코드 리뷰를 할 때나, 사후 풀이를 블로그에 정리할 때도 꽤 큰 도움이 된다. 코딩테스트에서 주석은 얼마나 중요한가..
최근에 Java 애플리케이션을 성능 측정 도구로 모니터링하면서 너무 많은 객체가 생성되고 빠르게 GC의 대상이 되는 현상을 봤습니다. 특히 Integer나 Long 같은 래퍼 클래스를 많이 사용하는 부분에서 심각한 메모리 압박이 발생했는데, 이것이 단순한 개발 실수가 아니라 Java의 근본적인 메커니즘과 깊은 관련이 있다는 것을 깨달았습니다. 이번 글에서는 Java 객체가 어떻게 생성되고 소멸되는지, 그리고 JIT 컴파일러의 escape analysis가 어떻게 최적화하는지, 더불어 박싱/언박싱의 숨겨진 비용이 얼마나 큰지 차근차근 살펴보겠습니다.Java 객체의 생명주기: 스택과 힙의 이원 구조Java에서 객체를 생성하는 것은 매우 단순해 보입니다. new 키워드를 쓰면 객체가 힙에 할당되고, 아무도 참..
코딩테스트 준비를 시작하면서 가장 먼저 마주하는 고민은 "어떤 언어로 준비해야 할까?"라는 질문입니다. 그런데 더 흥미로운 질문도 있습니다. "여러 언어로 같은 문제를 풀어야 할까?"라는 것인데, 이 질문에 대한 답을 찾기 위해 지난 몇 개월간 직접 경험해 본 결과를 공유하려고 합니다. 저도 처음에는 파이썬과 자바 두 가지 언어로 코딩테스트를 준비했고, 결과적으로 이것이 정말 좋은 선택이었다는 것을 깨달았습니다. 이 글에서는 여러 언어로 문제를 푸는 이유, 효율적인 학습 방법, 그리고 실제 준비 과정에서 얻은 팁들을 상세히 설명하겠습니다.왜 여러 언어로 문제를 풀어야 할까?처음 이 질문을 받을 때 대부분 사람들은 "아, 그건 비효율적이다"라고 말합니다. 시간 관리 측면에서 보면 맞는 말입니다. 같은 문제..
프로젝트를 진행하다 보면 누구나 한 번쯤 마주치는 상황이 있다. 어플리케이션이 예상보다 느리게 동작하거나, 서버 리소스를 과하게 사용하고 있다는 피드백을 받는 경우다. 이때 우리는 어디서 문제가 발생하는지, 왜 성능이 저하되는지 파악해야 한다. 바로 이 시점에서 프로파일링이 필요해진다.프로파일링이란 무엇인가?프로파일링은 실행 중인 어플리케이션의 성능 데이터를 수집하고 분석하는 과정이다. 단순히 추측으로 최적화를 시도하는 것이 아니라, 실제 데이터를 기반으로 성능 병목을 찾아내는 방식이다. Java 프로파일링을 통해 우리는 다음과 같은 정보들을 얻을 수 있다.CPU 사용량과 어떤 메서드가 가장 많은 CPU 시간을 사용하는지메모리 할당 패턴과 메모리 누수 여부스레드 상태와 락 경합 상황I/O 작업의 병목 지..
처음 Java를 배울 때 가장 신기한 부분 중 하나가 메모리 관리였다. C나 C++처럼 직접 free() 함수를 호출하거나 포인터를 관리할 필요가 없다는 게 정말 편했다. 하지만 실제 프로덕션 환경에서 고성능의 백엔드 시스템을 구축하려면 이 "자동"이라는 개념이 정확히 어떻게 동작하는지 알아야 한다. 특히 GC(Garbage Collection)는 애플리케이션의 응답 속도와 처리량에 직접적인 영향을 미치기 때문에 개발자가 반드시 이해해야 할 핵심 개념이다. 이번 글에서는 Java GC의 기초 원리부터 시작해서 세대별 GC가 왜 필요한지, 그리고 마크-스윕 알고리즘이 어떻게 동작하는지 상세히 설명할 것이다. 마지막으로 실제 GC 로그를 읽고 분석하는 방법까지 다룰 예정이니, 이 글을 읽으면 GC에 대한 근..
입사 코딩테스트는 많은 개발자들이 거쳐야 할 관문입니다. 저도 지난 몇 년간 여러 회사의 코딩테스트를 응시하면서 느낀 점이 있는데, 단순히 문제를 많이 푸는 것보다 어떻게 실수를 기록하고 분석하는가가 최종 합격을 좌우한다는 것입니다. 특히 우리처럼 이미 실무 경험이 있는 개발자들에게는 더욱 그렇습니다. 과거의 나는 코딩테스트를 준비할 때, 프로그래머스나 리트코드에서 어려운 문제들을 닥치는 대로 풀었습니다. 맞으면 넘어가고, 틀리면 답을 봤다가 다시 풀고... 이런 식의 반복이었습니다. 하지만 몇 달이 지나도 합격 소식은 오지 않았고, 여전히 같은 유형의 문제에서 같은 실수를 반복하고 있다는 것을 깨달았습니다. 변화는 오답노트를 체계적으로 작성하기 시작했을 때 생겼습니다. 이 글에서는 제가 실제로 경험하면..
안녕하세요! 오늘도 모니터 앞에서 알고리즘과 씨름하고 계신 예비 개발자 동료 여러분, 반갑습니다. 취업 준비를 하면서 가장 큰 산처럼 느껴지는 것, 역시 ‘코딩테스트(이하 코테)’죠? 저도 처음엔 단순히 백준이나 프로그래머스 레벨 올리기에만 급급했는데, 막상 서류 붙고 실제 테스트 창이 열리니 머릿속이 새하얗게 변하는 경험을 했습니다. 분명 아는 유형인데 손이 떨려서 타자가 안 쳐지는 그 느낌, 겪어보신 분들은 아실 거예요. 그래서 오늘은 제가 수많은 시행착오 끝에 정착한 ‘실전 시뮬레이션 공부법’을 아주 상세하게 공유해 보려고 합니다. 단순히 문제를 많이 푸는 게 아니라, ‘시험장과 똑같은 환경’을 내 방에 구현해서 내성을 기르는 과정입니다. 저도 이 방법으로 공부하면서 합격률이 눈에 띄게 올랐거든요...