Java Scanner nextInt() 호출 후 nextLine() 무시 현상
1. 문제 상황 계산기 프로그램을 만들면서 사칙연산이 끝날 때마다 “더 계산하시겠습니까?”라고 물은 뒤 사용자의 입력에 따라 반복 여부를 결정하도록 설계했다. 그런데 실행해 보니 질문을 출력한 직후 입력을 기다리지 않고 바로 다음 루프로 넘어가 버렸다. 2. 원인 분석: 입력 버퍼의 잔여 개행 문자(\n) 이 현상은 Scanner 메서드들이 입력...
1. 문제 상황 계산기 프로그램을 만들면서 사칙연산이 끝날 때마다 “더 계산하시겠습니까?”라고 물은 뒤 사용자의 입력에 따라 반복 여부를 결정하도록 설계했다. 그런데 실행해 보니 질문을 출력한 직후 입력을 기다리지 않고 바로 다음 루프로 넘어가 버렸다. 2. 원인 분석: 입력 버퍼의 잔여 개행 문자(\n) 이 현상은 Scanner 메서드들이 입력...
왜 코딩 전 ‘생각 훈련’이 필요할까? 많은 개발자가 이런 고민을 합니다. “문제는 이해했는데, 어디서부터 코드를 짜야 할지 모르겠어요.” “머릿속으로는 정리된 것 같은데 막상 코드로 옮기면 로직이 꼬여요.” 개발공부를 하다 보면 누구나 한 번쯤 마주하는 거대한 벽입니다. 조건이 많아질수록 내가 짠 로직에 내가 길을 잃기도 합니다. 단순히...
개인 프로젝트를 할 때는 자유롭기만 했던 깃허브가 협업으로 들어오니 꽤 깐깐한 ‘수문장’처럼 느껴집니다. 우리 팀의 소중한 메인 브랜치를 지키려고 적용한 Ruleset, 그리고 그 과정에서 겪은 코드 리뷰의 시행착오를 정리해 봅니다. 🛡️ 메인 브랜치를 보호하라: Ruleset 적용 팀 프로젝트에서는 main 브랜치에 코드를 합치기 전, 반드시...
최근 오픈소스 생태계에서는 주종 관계를 연상시키는 master라는 용어 대신 main을 기본 브랜치명으로 쓰도록 권장합니다. 저 또한 새 저장소를 만들 때마다 이 설정을 적용하려 했으나, 생각보다 과정이 매끄럽지 않았습니다. 오늘은 브랜치명을 바꾸며 겪은 시행착오와 거기서 얻은 문제 해결의 관점을 정리해 봅니다. 왜 자꾸 master로 생성될까...
자바 공부를 시작할 때 가장 처음 배우는 내용이지만, 기초라는 이유로 금세 잊어버리곤 합니다. 하지만 자바가 왜 그렇게 많은 개발 현장에서 선택받는지 이해하려면 그 바탕에 깔린 구동 원리를 정확히 알아야 합니다. 📚 핵심 용어 정리 흐름을 살펴보기 전에 핵심 키워드 네 가지부터 정리해 보겠습니다. JDK (Java Development Ki...
API를 설계하다 보면 “수정” 기능을 만들 때 관성적으로 PUT을 선택하곤 합니다. 저 또한 최근 프로젝트에서 수정 기능을 구현하며 모든 매개변수를 Optional(선택 사항)로 열어두고 PUT을 사용했다가, PUT의 진짜 의미와 동작 방식을 다시 공부하게 된 경험이 있습니다. 나의 실수: “PUT인데 왜 다 안 보내도 돼?” 처음 API 명...
프론트엔드 개발을 처음 시작하면 코드 로직보다 ‘환경 설정’에서 더 큰 벽을 느끼곤 합니다. 이번 프로젝트에서도 패키지 임포트 문제부터 동작 원리 파악까지 다양한 난관이 있었지만, 그 과정에서 기술의 본질과 효율적인 학습 방향을 정립할 수 있었습니다. 1. ‘Module Not Found’ 해결기: npm install의 두 얼굴 개발 초기, ...
문제 상황: Mock 서버 연동 후 데이터 미출력 Postman으로 Mock 서버를 생성하고 HTML(Frontend)과 연동하는 작업을 진행했습니다. 분명히 API 호출은 성공하는 것 같은데, 화면에는 데이터가 전혀 나타나지 않았습니다. 시도해본 것들 “데이터가 없어서 그런가?”: 단순히 조회가 안 되는 문제라 생각하여 데이터를 넣어주기 위...
왜 ‘기능 위주’의 명세서가 위험할까? 이전 프로젝트에서 API 명세서를 작성할 때, “이런 기능이 필요하니까 이렇게 만들자” 는 생각으로 기능 구현에만 급급했던 적이 있습니다. 그런데 막상 개발이 시작되자 문제가 드러났습니다. 로직을 구현하다 보니 데이터 구조가 맞지 않아 명세서를 수정해야 하는 일이 잦았습니다. 개발이 시작된 뒤 명세서를 고치는...
이 글은 콘서트 예약 시스템 과제 중 Redis 기반 콘서트 랭킹 기능을 직접 구현하면서 설계 과정에서 고민했던 지점과, 그 과정에서 배운 점과 느낀 점을 정리한 기록이다. 이 질문이 나왔다는 것 자체가 신호였다 콘서트 랭킹 기능을 구현하다가 문득 이런 물음이 떠올랐다. “이 기능도 UseCase로 분리해야 하는 거 아닐까?” 예전 같...