[이노베이션 캠프]2주차 WIL
느낀점
우선 이번주는 자신이 선택한 앞으로의 코딩을 위한 기본인 주특기 언어를 숙련하는 주차였다. 원래 나는 컴퓨터 공학과로써 몇년전에 자바를 해본 경험이 있으니 좀 더 쉽게 진행이 가능 할 줄 알았으나 거의 이삼년전 배울때 사용 했을 때 제외하고는 사용한 적이 없어서 생각보다 난황을 많이 겪었던 것 같다. 특히 쉬울줄 알았으나 팀별로 알고리즘 문제를 풀며 서로 스터디를 진행 할때 하루에 10개씩의 프로그래머스의 문제를 풀었는데 전반적으로 문제를 풀기 위한 알고리즘은 어느 정도 예전에 백준의 코딩 테스트로 풀어봐서 생각은 나지만 이를 C로써 밖에 안해봐서 처음에 자바 기초 문법이 아예 생각이 안나서 너무 당황했었다. 알고리즘을 알면 뭐하나 이걸 내가 사용해야하는 언어인 JAVA로 제대로 표현을 못하는데 그때부터 아차 싶고 정말 아예 처음 접하는 사람마냥 한번 풀었던것도 문법을 중요하다 싶은건 다 정리하고 다시 객체지향 프로그래밍 개념자체를 잡을려고 노력했다. 그 결과 아직은 완전히 다른 사용할 줄 알 던 언어처럼 구사까진 못하더라도 어느정도 기초적인 부분은 잘 해결해 나갈 수 있으며 개인과제, 팀과제, 모의고사 테스트 모두 어느정도 수월하게 해결해 나갈 수 있었다. 하지만 한번 더 정말 꾸준함, 어떤 것이든 과거의 공부를 해봤다고 좀 더 쉽겠지라는 안일한 생각이 아닌 내가 배운 것이 나의 머리, 몸, 실제 상황에서도 사용할 수 있도록 어느정도 꾸준히 공부를 해야하는 것이 중요하다 생각이 들었고 그에 대해 앞으로 하루에 한문제라도 이 이노베이션 캠프를 진행하는 동안 사용하게 될 JAVA 코딩테스트를 풀어가며 감을 기존의 감을 가지고 가며 나중에 진행하게될 수많은 프로젝트에 순조로움을 위해 언어 공부또한 조금씩이라도 노력해야겠다는 생각을 특히 많이 하게 되었다.
배운점
위의 느낀점에서 말했다 싶이 일단, 기본적인 JAVA 문법의 체제와 역시 많은 사용자들이 이용하는 JAVA에는 정말 다양하고 개발자가 조금 더 수월하게 코드를 만들어 낼 수 있는 다양한 기능들이 있다는 것을 한 번더 알게 되었다. 특히 JAVA 자체가 여러개의 클래스를 가지고 그 안의 각각의 역할들이 서로 연관 되 커다란 프로젝트를 진행하듯 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체(클래스)를 만들고 그 객체들 간 유기적인 상호작용으로 통해 로직을 구성하는 객체지향 프로그래밍에 대한 개념을 특히 잘 잡을 수 있었다. 또한 JAVA를 실행하기 위한 가상 기계(컴퓨터) 즉 OS에 종속받지 않고 CPU가 JAVA를 인식해 실행할 수 있게 하는 가상 컴퓨터인 JVM에 대해 좀 더 깊게 생각할 수 있었다. JAVA는 CPU가 인식을 못해서 기계어로 컴파일을 해줘야 하지만 JVM 가상머신을 통해 파로 JVM이 인식하고 이를 OS가 해석할 수 있게 도와줘 JVM 을 통해 JAVA 파일 하나만 만들면 어느 디바이스에서든 실행할 수 있다는 점(java 파일명 -> java로 컴파일후, cmd에서 java로 실행 바로 가능) 자체가 이래서 JAVA의 언어가 여태까지 많은 개발자들에게 사용되고 개발에만 좀 더 치중할 수 있게 하는 좋은 언어라는 점을 한번더 배울 수 있었다.
+ 개인 과제 github link(버스, 택시 대중교통 모델 만들기)