밤빵's 개발일지
[WIL]20240714 본문
이번주도 이렇게 지나갔다..! 손으로 적어가면서 과제를 진행하고, 강의를 들으면서 바쁜시간을 보내면서, 정재님이 알려주신 코드를 한줄한줄 주석처리하며 공부하는 방법이 정말 큰 도움이 많이되었다. 지금도 설명을 잘 할 수 있는건 아니지만 그래도 코드를 보는게 많이 달라졌기 때문에 이번 주는 그 코드들을 보면서 공부하는 시간을 많이 가진 것 같다. 개발자가 되기 위한 공부를 하면서 이 공부 방식이 코드의 동작 방식을 이해하고, 코드의 의도, 설계 등을 학습하는데 도움이 되었다!
이 공부 방법은 내가 성장해가는 과정에서 단순히 코드를 작성하는 능력이 아니라 코드가 어떻게 작동하는지 이해하며, 더 나은 코드를 설계하고 유지보수 할 수 있는 역량을 기르는 일 같다. 그리고 이 방법이 코드에 대한 이해도를 높이는 데 엄청 효과적이라는 걸 느껴서 꼭 기록하고 싶었다!
▶ 코드에 주석처리를 하며 공부한 방법의 효과
1. 코드의 흐름을 이해하는 데 도움이 된다.
코드에 주석처리를 하며 공부하는 방법의 가장 큰 장점은 코드의 흐름을 명확히 이해할 수 있다는 점이였다. 나는 복잡한 코드를 만나면, 그 코드가 무엇을 하는지 이해하지 못하고 넘어가는 경우가 많다. 그러나 코드의 각 줄에 대해 직접 설명을 달아보면서, 코드의 흐름과 작동 방식을 단계적으로 이해할 수 있었다. 예를 들어, 서비스 클래스에서 데이터베이스 접근을 처리하는 각 메서드가 어떻게 동작하는지 설명하고, 각 부분이 애플리케이션의 전체 흐름에서 어떤 역할을 하는지 이해할 수 있었다.
2. 객체지향 원칙과 설계 패턴 학습을 할 수 있다.
주석처리를 통해 코드를 설명하는 과정은 객체지향 원칙과 설계 패턴을 학습하는 데도 큰 도움이 되었다. 예를 들어, MemoService 클래스에서 MemoRepository를 생성자 주입(Constructor Injection) 방식으로 주입하는 이유를 설명하면서, 이 접근 방식이 객체지향 설계 원칙 중 "의존성 역전 원칙(DIP)"을 따르고 있다는 것을 깨달았다. 이를 통해 추상화에 의존하는 설계의 중요성을 조금이나마 이해할 수 있었다.
3. 예외 처리와 에러 핸들링의 중요성을 인식하게 되었다.
주석처리를 하면서 예외 처리 부분에 대해 자세히 설명할 때, 에러 핸들링의 중요성을 인식할 수 있었다. 예를 들어, 특정 ID로 메모를 검색하는 과정에서 Optional을 사용하여 객체의 존재 여부를 확인하고, 존재하지 않을 경우 IllegalArgumentException을 발생시키는 부분에 대해 설명하면서, 잘못된 요청이 들어왔을 때 시스템이 어떻게 반응해야 하는지를 고민하게 되었고, 일관된 예외 처리가 필요하다는 걸 알게되었다.
4. 코드를 읽고 설명하는 능력의 향상! (아주 조금...!!)
코드에 주석처리를 하는 작업은 단순히 코드의 기능을 적는 것이 아니라, 코드가 왜 그렇게 작성되었는지에 대한 이유와 의도를 생각하게 만들었다. 그 덕분에 코드를 읽고 분석하는 능력이 조금은 늘게되었고, 코드를 단순히 작성하는 것을 넘어, 작성한 코드중 잘못된 부분이 보이기도하고, 다른 친구가 작성한 코드도(어차피 다 비슷비슷하지만..!!) 이해할 수 있게 되었다. 내 코드랑 다르면 왜 이렇게 작성했는지 설명할 수 있게 되어서 조금은 성장했구나 느꼈다.
5. 팀 프로젝트를 위한 대비?
주석처리를 하면서 앞으로 다가올 팀 프로젝트에 대한 생각을 하게 됐다. 협업 생각을하면서 팀원들과 소통하려면 내 코드에 대한 이해가 되어있어야 내가 작성한 코드가 왜 이렇게 작성이 되었고, 어떤 동작, 기능을 하는지? 에 대해 명확하게 설명 할 수 있어야, 팀원들이 내 코드를 쉽게 이해하고 협업할 수 있지 않을까? 란 생각을 했다.
▶ 정리
앞으로도 이 방법을 꾸준히 활용하면 좋을 것 같다. 아직은 단순히 코드를 이해하는 정도가 크지만, 객체지향 원칙이나, 설계패턴 특히 예외 처리에 관한 공부를 많이 할 수 있었고, 코드를 읽고 설명하는 능력이 조금씩 늘어가는 것 같아서 이번 주는 큰 수확을 얻은 기분이다. 계속 꾸준하게 진행한다면 많은 성장이 있겠지?! 다음 주도 화이팅!
'개발Article' 카테고리의 다른 글
[TIL]20240716 단일 항목에 Lambda표현식을 쓴 이유? (0) | 2024.07.17 |
---|---|
[TIL]20240715 제네릭의 와일드카드 <?> (0) | 2024.07.15 |
[TIL]20240713 Entity에 @Setter어노테이션을 사용하지 않는 이유? (0) | 2024.07.14 |
[TIL]20240712 Entity (0) | 2024.07.12 |
[TIL]20240711 Dto 사용의 중요성 (0) | 2024.07.12 |