목차배경최근 많은 국내 IT 회사에서는 점차 JVM 기반 언어인 Kotlin을 도입하고 있다. 이번에는 Java가 처음 등장한 배경을 빌드 과정과 실행 방식을 통해 살펴보고, JVM 기반 언어란 무엇인지, 이를 배경으로 Kotlin의 동작 방식과 실행 원리는 어떠한지 살펴본다. C++의 빌드 과정Java의 빌드과정과 실행 원리를 살펴보기 위해서, C++의 빌드 과정을 먼저 살펴보자.Java가 등장하기 전, C++는 각 환경별로 실행되는 컴파일러가 각각 존재했다. 운영 체제별로 서로 다른 컴파일러가 소스 코드를 읽어들이고, 운영체제에 최적화된 바이너리를 만들어 냈다. 즉, 윈도우에서는 윈도우 C++ 컴파일러인 MSVC 컴파일러가 윈도우에 최적화된 바이너리를 만든다. 리눅스에서는 리눅스 C++ 컴파일러인 G..
💡 넥스트 스탭의 TDD, 클린 코드 with Kotlin 8기 강의를 수강하며 정리한 내용입니다. 목차배경TDD, 클린 코드 미션을 진행하며 TDD와 클린 코드, 객체지향 설계에 대한 인상 깊은 많은 피드백을 받을 수 있었다. 이번에는 그 중 하나인 객체지향 설계 중 클래스 네이밍에 대한 얘기이다. 클래스클래스가 객체를 인스턴스화한다. 클래스는 객체의 팩토리이다. (객체가 살아있는 생명체라면 클래스는 객체의 어머니) 클래스 네이밍클래스의 이름은 무엇을 하는지에 대한게 아닌 무엇인지에 기반을 두고 지어야 한다. 즉, 올바른 클래스 이름을 짓기 위해선 클래스의 객체가 무엇을 캡슐화할 것인지 관찰하고 적절한 이름을 지어야한다. 즉 이를 통해, 외부에서 객체에게 무엇을 하도록 메시지를 던지면 객체 스스로 무..
💡 넥스트 스탭의 TDD, 클린 코드 with Kotlin 8기 강의를 수강하며 정리한 내용입니다. 목차배경최근 넥스트 스탭의 TDD, 클린 코드 with Kotlin 8기 강의를 수강하고 있다. 아직 1주차 밖에 지나지 않았지만, 1주차 과제 중 테스트 코드 작성과 관련되어 리뷰어분께 좋은 내용을 전달받았고, 덕분에 많은 생각을 할 수 있게 되었다. 먼저, 당시 나는 콘솔 출력을 포함하는 로직은 테스트 코드로 어떻게 검증할 수 있을지, 테스트 코드 작성을 어떻게 해야할지 헤맸고 리뷰어분에게 도움을 요청했다. 리뷰어분은 해결 방법을 알려주기에 앞서 '왜 테스트 코드를 작성해야하는가?'에 대한 애기를 해주었다. 테스트 코드가 무엇을 확인하기 위함이고, 그게 테스트 코드로 확인이 필요할만큼 복잡하고 중요한..