멘토링을 진행하면서 가장 자주 듣게 되는 질문들이 있습니다. 오늘은 그 중 네 가지 질문들을 정리해봤습니다. 각각에 대해 현실적이고 전략적인 조언을 드리려 합니다. 멘토링을 진행하면서도, 꼭 한 번은 언급되는 주제들이니 참고해보세요.
1. 알고리즘 공부는 어떻게 시작해야 하나요?
가장 좋은 출발점은 쉬운 문제부터, Java 언어 숙련도 향상이라는 관점에서 접근하는 것입니다. 알고리즘은 코딩테스트뿐만 아니라, 자료구조와 문제해결 능력을 자연스럽게 익히는 과정이기도 해요.
팁 1. 현재 학습 중인 기술과 연결해서 학습하세요.
예를 들어, 현재 List나 Map을 사용하는 미션을 하고 있다면, 이를 실제 문제 해결에 어떻게 활용하는지를 고민해보세요.
→ 대표 문제: Two Sum (LeetCode)
팁 2. 지금이 가장 가성비 좋은 타이밍입니다.
현업에 들어가면 알고리즘 공부할 시간이 부족해집니다. 신입에게 요구되는 코딩테스트 실력을 지금 준비해두는 것이 장기적으로 훨씬 유리합니다.
2. 신입인데도 '3년 이상' 공고를 지원해도 될까요?
충분히 가능합니다. 3년 이상 공고를 보며 준비해야 합니다. 그래야 경쟁력 있는 지원자가 될 수 있습니다.
많은 기업들이 '3년'이라는 기준을 절대적인 경력이라기보다 운영 경험의 유무로 바라보는 경우가 많습니다.
→ 즉, 운영 환경에서 문제를 정의하고 개선한 경험이 있다면, 신입도 경쟁력이 있습니다.
- 준비 팁
- 직접 만든 프로젝트를 운영해보세요.
- 사용자 피드백을 반영한 기능 개선
- 성능 병목 구간에 대한 개선 경험
- 사용자 10만 명 이상이 온다는 가정하에 부하테스트(k6 등)도 의미 있는 경험입니다.
- 직접 만든 프로젝트를 운영해보세요.
핵심은 ‘기술적 문제를 어떻게 정의하고, 논리적으로 해결했는지’를 말할 수 있는 능력입니다.
3. 이론은 알겠는데, 실습이 너무 어렵습니다.
이건 정말 자연스러운 현상입니다.
대부분의 어려움은 문제를 충분히 작게 쪼개지 못해서 생깁니다. 예를 들어,
- “List가 어렵다” → 사실은 “List를 순회하면서 조건문을 작성하는 것이 어렵다”
- “DI 개념이 어렵다” → “생성자에 의존성을 주입하는 방식이 낯설다”
이렇게 쪼개보면 구체적으로 공부할 대상이 보이게 되고, 부담이 확 줄어듭니다.
실습이 막힌다면 직접 구현해보세요.
예: LinkedList를 직접 구현하면, 자바에서 List를 훨씬 쉽게 다룰 수 있게 됩니다.
4. 처음부터 좋은 코드를 짜는 게 너무 어려워요.
맞습니다. 처음부터 잘 짜는 사람은 아무도 없습니다.
중요한 건 “처음엔 돌아가는 코드 → 그 다음 리팩토링”입니다.
기능이 동작하는 코드를 먼저 만들고,
- 가독성
- 재사용성
- 의존성 분리
등을 단계적으로 개선하는 리팩토링 습관을 들이세요.
- 한 줄 정리: 좋은 코드는 처음부터가 아니라, 고쳐나가며 완성되는 것이다.
5. 공부할 책을 추천해주세요
자바 백엔드 개발을 탄탄하게 쌓기 위해선 다음 책들을 추천합니다.
『자바의 신』, 『자바의 신 2』: 자바 기본기와 객체지향 개념을 탄탄하게 다질 수 있습니다.
『스프링 입문을 위한 자바 객체 지향의 원리와 이해』: 스프링을 시작할 때 객체지향적 사고와 함께 접근할 수 있도록 도와줍니다.
- 한 줄 정리: 자바 기본기 → 객체지향 → 스프링 → 실습 이 흐름이 가장 안정적이다.
6. Git 다루는게 어려워요
처음에는 GUI 클라이언트 (예: Sourcetree, GitHub Desktop) 를 활용하여 커밋, 푸시, 브랜치 작업 등을 시도해 보세요.
GUI를 통해 Git의 전반적인 개념과 흐름을 감 잡은 후, 점차 명령어로 전환하는 것이 좋습니다.
- 한 줄 정리: 처음엔 GUI → 이후 CLI, 자연스럽게 Git의 개념이 몸에 익는다.
7. 공부 방향성을 어떻게 가져가야 할까?
- 자바/객체지향 심화
스프링을 배우는 과정에서도 결국 객체지향 설계가 핵심이다.
생성자, 의존성 관리 등 객체 생성/관리에 대한 이해가 우선이다.
- RDBMS (MySQL)
데이터 정합성을 위해 트랜잭션과 ACID 개념 필수.
NoSQL은 보조적(로깅, 검색엔진 등).
- ORM (JPA, Hibernate)
스프링을 실무처럼 다루려면 ORM 이해는 반드시 필요.
- 한 줄 정리: "스프링보다 객체지향, ORM보다 SQL부터, MySQL부터 튼튼히 쌓자."
8. 빠르게 학습하는 방법은?
운동 (특히 러닝) → 체력이 집중력.
개발 유튜브 시청 → 예: 개발바닥, 제미니의 개발실무
좋은 개발자들이 어떤 식으로 문제를 분석하고 접근하는지 감 잡기.
- 한 줄 정리: 개발자의 시야와 관점을 익히는 것이 빠른 성장의 지름길.
9. GPT 어디까지 활용할까?
GPT는 발췌독 도구로 활용.
GPT의 답변을 그대로 믿기보다는 근거 자료를 찾아 확인하는 습관이 필요.
코딩도 GPT가 짜준 코드를 100% 이해해야 내 코드다.
- 한 줄 정리: GPT를 쓰더라도, 내가 소화할 수 있어야 진짜 내 실력이 된다.
10. 알고리즘 시간복잡도 계산법
시간복잡도는 가장 오래 걸리는 로직을 기준으로 계산.
보통 for 루프가 몇 번 중첩되는지 곱해서 단순화해보는 것이 기본.
- 한 줄 정리: "가장 복잡한 연산이 전체 시간복잡도를 결정한다."
11. AI 활용은 언제부터?
지금은 "아 이런 것도 가능하구나" 수준으로 파악.
실무 투입되면 GPT, Copilot 등을 적극 활용하는 단계로 넘어간다.
예시: 현재 실무에서는 GPT가 80%, 내가 20% 직접 작성하는 수준으로 활용 가능.
- 한 줄 정리: "지금은 관찰과 탐색, 실무에선 적극적 활용."
댓글