본문 바로가기

부트캠프/한화시스템 BEYOND SW캠프

한화시스템 BEYOND SW 부트캠프 16기 16일차 (2025-06-10 | 화)


오늘은 자바 수업의 첫 시작이자, 컴파일 언어와 인터프리터 언어의 차이부터 자바 실행 구조, JDK의 역사와 선택, 그리고 IntelliJ 사용법까지 굉장히 많은 내용을 다룬 하루였다.

 

처음에는 C 언어와 파이썬의 비교를 통해, 정적 컴파일 언어와 인터프리터 언어의 장단점을 정리해보았다. 컴파일 언어는 속도 측면에서 우수하지만 수정과 빌드의 반복이 번거롭고, 인터프리터 언어는 즉시 실행이 가능해 빠르게 실험할 수 있는 반면, 런타임 성능에는 약점이 있었다. 이 비교는 자바가 어떤 구조를 취하고 있고, 어떤 장점을 보완하려고 했는지를 이해하는 데 기반이 되었다.

 

이어지는 설명에서는 자바가 단일 벤더 중심이 아닌 OpenJDK 기반의 다양한 배포판들로 진화했다는 점, 즉 Oracle 외에도 Amazon Corretto, Temurin, Zulu 등 다양한 선택지가 생겨났다는 점이 인상 깊었다. 이 점에서 자바가 '플랫폼 독립성'만 강조하는 것이 아니라, 생태계 자체의 개방성과 다양성도 중시하는 언어임을 느꼈다.

 

가장 핵심적으로 배운 것은 자바의 실행 구조였다. .java 파일이 .class 바이트코드로 컴파일되고, 그것이 JVM에서 인터프리터 또는 JIT 컴파일러에 의해 실행된다는 흐름은 단순히 암기하는 것이 아니라, 실제 메모리에서 어떻게 로딩되고 어떤 순서로 동작하는지 구체적인 그림을 그리며 배웠다. 특히 JIT 컴파일러의 역할과, 그것이 단순한 인터프리팅의 한계를 어떻게 극복하는지를 배우면서, 자바가 왜 이렇게 널리 쓰이는 언어인지에 대해 조금이나마 이해하게 되었다.

 

또한 IDE를 활용해 자바 프로젝트를 구성하는 방법도 함께 배웠다. IntelliJ IDEA의 설치와 실행 방법, New Project부터 JDK 설정까지의 흐름을 실습으로 익혔고, JDK와 JRE의 차이를 명확하게 정리했다. 이전에는 막연히 "JDK는 개발용, JRE는 실행용" 정도로만 알고 있었는데, 이제는 각각이 포함하고 있는 도구들에 대해 훨씬 선명하게 구분할 수 있게 되었다.

 

오늘 점심은 우체국 구내식당에 다녀왔는데, 솔직하게 말하자면 다소 아쉬웠다. 건동이형과 진호형의 추천에 내가 너무 기대를 하고 가서 그런지, 살짝 평범한 느낌이었고, 혹시 오늘만 그랬던 건 아닐까 하는 생각이 들었다. 수업이 끝난 후에는 어제 못 했던 스터디를 진행했고, 나는 처음으로 학원에 남아 밤 늦게까지 공부를 계속했다. 원래는 집에서 하려고 했지만, 요즘 들어 집에서는 너무 쉬는 분위기라 오늘은 나 자신에게 약간의 채찍을 주기로 했던 것이다. 그런데 남아서 형들과 이야기하고, 피자도 함께 먹으며 시간을 보내다 보니 오히려 더 힐링되는 느낌이 들었다.

 

자바 얘기뿐 아니라 서로의 군대 이야기, 프로젝트 이야기, 요즘 고민까지 나누며, 우리는 점점 더 가까워지고 있다는 걸 실감했다. 이렇게 자연스럽게 서로를 알아가는 분위기가 너무 좋았다. 그렇게 피자 두 판을 헤치운 뒤에는 지완이형과 이번 주 목요일에 있을 PCCP 시험을 대비해 기출 문제를 풀어보기로 했는데, 첫 번째 기출 문제였던 `붕대 감기` 문제는 수월하게 풀렸지만 그 이후 문제부터는 막히기 시작했다. 결국 오늘은 3번 문제까지만 건드려보고, 집에서도 조금 더 시도해봤지만 여전히 풀지 못했다. 원래는 4문제 중 3문제를 맞추겠다는 각오였지만, 이제는 1~2문제만 맞춰도 괜찮은 결과가 아닐까 하는 생각이 들었다. 그래도 이런 실패도 결국 경험이니까, 다음엔 더 잘할 수 있을 거라고 믿는다.