[인프런 워밍업 클럽 스터디 0기 발자국] 2주차 회고

[인프런 워밍업 클럽 스터디 0기 발자국] 2주차 회고

안녕하세요. 주니어 백엔드 개발자를 꿈꾸는 12hugs 실명은 진영준입니다. 😉

지난주 월요일부터 인프런 워밍업 클럽 스터디 0기를 시작했으며,

2주차에는 무엇을 느꼈고 무엇을 공부했으며 어떤 사실을 깨달았는 지에 대해

공유를 해볼까합니다. 그럼 시작합니다!


내가 알던 JPA는 더욱 넓은 세계였다.

제가 알던 JPA는 단순히 백엔드 개발자가 SQL언어에 대한 공부를 따로 해야하기도 하고,

좀 귀찮기때문에 나온 개념이라고 생각했습니다.

그래서 별 거 아닌 존재라고 생각하기도 했고, 간과한 부분이 없지 않아있었습니다.

그렇지만, 강의를 들으면서 JPA의 기능에는 놀라운 기능들이 있다는 것을 알게되었습니다.

existBy, countBy 등등 많은 기능을 지원하기도 하고, 직접 @Query 어노테이션을 통해

JPQL언어DB에 SQL을 날릴 수 있는 것도 확인하였습니다.

 

그리고 하이버네이트란 무엇이고, JPAORM은 무엇인지에 대한 개념도 잡히게 되었습니다.

아무래도 너무 야생형으로 공부한 입장으로 해당 기능과 관련된 지식이 없으면

구글링조차 할 수도 없기때문에 해당 단어들과 기능들은 사막의 오아시스와도 같았습니다.

 

image

객체지향 모두 지향하지만, 사실 지양하고 있다.

객체지향이 중요하다는 점은 모르는 사람이 없을 것입니다.

사실 이런 개념때문에 객체지향언어들이 각광을 받기도 합니다.

하지만, 저는 전혀 객체지향을 하고 있지 않았습니다.

 

제가 짠 로직들은 전부 절차지향이었으며,

class가 주인이 되는 코드를 짜왔습니다.

 

그렇지만, 이번 2주차를 통해 객체지향에 대한 개념이 조금 잡히기 시작했습니다.

이건 미니프로젝트를 진행하며, 느낀 부분이었습니다.

저는 원래 평소와 같이 서비스에 모든 비즈니스 로직을 쑤셔넣었습니다.

하지만, 제가 쓴 코드인데도 불구하고, 읽기가 힘들고, 이해하기가 힘들었습니다.

다시 말하자면, 코드싸개였고, 전혀 객체지향적이지도 못했습니다.

image출처 : https://namu.wiki/w/%EC%BD%94%EB%8D%94

 

그렇지만, 객체지향을 공부하기 시작하면서 객체의 불변성을 유지하기 위해서

기존 테이블 @Entity 객체의 @Setter을 빼고, 정말 객체끼리 상호작용의사소통을 하며,

비즈니스 로직의 간소화를 진행할 수도 있었고, 훨씬 깔끔해진 코드와 함께 가독성 또한 좋아지게 되었습니다.

 

그래서 2주차를 통해 얻게 된 것은?

프로젝트를 진행하기 전에 요구사항설계가 중요했다는 점을 강조하고 싶습니다.

요구사항 스펙은 사람들이 원하는 기능을 함축해놓은 스펙입니다.

즉, 클라이언트가 원하는 기능이 없다면, 개발자는 필요가 없어지게 되겠죠.

 

그리고 설계가 굉장히 중요합니다.

설계를 잘 해놓고 시작해야 변수사항에 대해 잘 대처를 할 수 있으며,

보다 유연하고, 객체지향적인 코드를 짤 수 있다는 생각을 했습니다.

 

그래서 저는 처음에 설계를 안하고 미니프로젝트를 시작했기 때문에

며칠뒤 코드를 처음부터 다시 짜는 불상사를 일으켰습니다.

 

image

더욱 유연하고 뛰어난 개발자가 되고 싶다면,

공부도 물론 중요하겠지만, 설계요구사항을 충분히 이해하고

객체지향적으로 코드를 짤 줄 아는 개발자여야 한다는 걸 깨닫게 된 2주차였습니다.

댓글을 작성해보세요.