최근 인프런에서 김영한님의 스프링 강의를 수강하고 있다. 강의 템포와 내용이 나에게 정말 잘 맞아 즐거운 마음으로 학습하고 있다. 특히 11~2월 사이에 배웠던 Servlet/JSP 관련 지식과 '스프링 5 프로그래밍 입문'을 읽으며 pom.xml, build.gradle, web.xml(특히 DispatcherServlet 설정)을 직접 작성했던 경험이 지금의 스프링 학습에 큰 도움이 되고 있음을 체감할 수 있었다.
스프링 강의를 들으면서 남궁성 님의 자바의 정석을 통해 Java 공부도 꾸준히 하고 있다. 스프링은 결국 프레임워크이고, 내가 작성하고 있는 언어는 Java이기에 꾸준히 기초 공부를 해야겠다고 생각했기 때문이다. (사실 아직 Java 실력도 형편 없기에, 더욱 열심히 공부해야 한다 🥲)
공부를 하다보면 기록하고 싶은 개념 및 내용들이 너무 많다. 하지만, 나는 하나의 개념을 공부하고 기록으로 남길 때 많은 글들을 읽어 보고 직접 예제도 작성해 보느라 시간이 오래 걸린다는 단점이 있기에.. 많은 것을 흡수하기 위해 일단 가볍게 개념을 정리하고, 시간적 여유가 있을 때 해당 개념을 상세한 기록으로 다시 남겨보도록 하자!
최근에 정리하고 싶었던 Java 개념들이다.
- call by value / call by reference - 인자를 전달하는 방법에는 크게 두 가지가 있다. 자바에서 객체를 인자로 전달할 수 있기 때문에 call by reference인가? 라고 생각할 수 있지만, 실제로 자바는 인자 전달 과정에서 직접적인 참조를 넘기는 게 아니라 객체의 주소값을 복사해서 넘기므로 "call by reference가 없다".
- Object 객체의 clone 메서드에서의 얕은 복사와 깊은 복사
- final class - 상속이 불가능한 class.
- final method - 오버라이딩 할 수 없는 method. 부모 클래스에서 정의한 method 기능을 자식 클래스가 그대로 쓰게 하고 싶을 때 사용한다.
- Java8의 Optional<T> - NullPointerException을 피하려면 null 여부를 검사해야 하는데, null 검사를 해야하는 변수가 많아지면 코드가 복잡해진다. 이를 방지하기 위해 null이 올 수 있는 값을 감싸는 Wrapper 클래스로 Optional<T>가 추가되었다.
- static import문 - import문을 사용하면 클래스의 패키지명을 생략할 수 있는 것과 같이 static import문을 사용하면 static멤버를 호출할 때 클래스 이름을 생략할 수 있다.
- 의존 관계에서의 강한 결합, 약한 결합
올해는 현재 이중전공을 하고 있는 컴퓨터학과의 강의를 24학점이나 수강해야 한다. 본 전공 강의를 수강할 때에는 의무감이 가장 컸는데, 컴퓨터학과 강의를 수강할 때에는 늘 큰 설렘을 느낀다. 이번 학기에는 운영체제, 컴파일러, 컴퓨터 네트워크, 인공지능 강의를 수강할 계획이며 특히 운영체제와 컴파일러 강의가 기대된다.
느리지만 꾸준히 코딩 공부를 이어나갈 수 있었던 나의 원동력은 '즐거움'이라 생각한다. 새로운 개념을 배울 때마다 신기하고 흥미로우며 미약하지만 티스토리와 깃허브에 기록을 남기는 것도 늘 즐겁다. 앞으로도 코딩을 '해야 하는 일'이 아닌 '하고 싶은 일'로 여기며 정진하도록 하자!
[4-1 계획]
- 컴퓨터학과 12학점 수강
- Java 복습 및 김영한님의 스프링 강의
- 자료구조 / 알고리즘 복습하며 1PS
- 1일 1commit
'나에 대한 기록' 카테고리의 다른 글
LG CNS 인턴, 현대 소프티어 부트캠프 코딩테스트 후기 (3) | 2023.05.30 |
---|---|
[독서 기록] 스프링5 프로그래밍 입문 - 최범균 저 (5) | 2023.01.29 |
[기록] 1월 둘째 주 질문 정리 (1) | 2023.01.16 |
[기록] 매일 코딩하기 - 11월 셋째 주 (Servlet 출력-입력 형식, 서블릿 필터, 입력 데이터 배열로 받기) (1) | 2022.11.14 |
[기록] 매일 코딩하기 - 11월 둘째 주 (Servlet 기초) (1) | 2022.11.11 |