기록/WIL

[이노베이션 캠프]3주차 WIL

쥬냥냥 2022. 8. 21. 16:36

느낀점 

이번주는 저번주에는 앞으로 나의 주특기를 위한 언어를 공부했다면 드디어 주특기 spring을 접하고 시작하는 주특기 입문 주차였다. 나는 spring, 즉 백엔드를 선택했는데 어떤 것을 하는진 알고, db분석이나 각각 어떤 역할을 하는지는 대강은 아는데 이를 실제로 내가 해보는 것은 처음이였다. 아직 자바 문법이 완벽하지 않은 상태에서 강의를 들으며 따라하다보니 솔직히 어느정도 따라하고 만드는 것 까진 가능했으나 대강 각각 dto, service, repository, controller, model이 어떤 역할을 하고 서로가 연관되어 하나의 서버가 되어 실질적인 데이터나 동작들을 이루어지는 이런 전반적인 알고리즘은 이해할 수 있었다. 하지만 아무래도 나는 성격 상 뭔가 확실한 이해를 하지 못하면 잘 못넘어가는 성격때문에 시간적으로 구글링이나, 따로 하나의 문법이라도 이해가 안되는 것들은 찾아보고 최대한 이해해서 이런상황엔 이런 것, 이정도의 알고리즘과 베이스는 잡고 갈려고 노력했던것같다. 아예 아무것도 못만지다가 결론적으로 개인 프로젝트 정도는 어느정도 순조롭게 풀어냈을 때 그 성취감은 좋았으나 아직 나의 한계와 정확히 넘겨짚고 넘어가지 못하는게 아쉽다는 생각이 아직도 너무크다. 그리고 아무래도 시간을 많이 치중하다보니 원래 하려했던 java 공부나 따로 sqld 시험을 신청해서 db쪽 공부를 생각만큼 하지 못하고 블로그도 많이 관리를 못하다 보니 그런 시간적인 부분에 대해 후회가 정말 많이 느껴졌다. 그동안 나에게 많은 시간들이 있었는데 단순히 학교의 학업에만 따라가고 정말로 개발자가 되기 위한 초석, 기본적인 것을 좀 더 신경썼으면 지금의 나보단 더 많은 것을 얻을 수 있을텐데라는 과거의 후회와 앞으로는 이런 생각이 안들게 이 이노베이션 캠프가 끝나더라도 이런 마음가짐을 가지고 노력할 수 있도록 열심히 해야겠다는 각오를 한번더 다질 수 있었던 것 같다.

 


배운점

기본적으로 위에서 말했 듯 spring의 기본적인 원리와 그안의 인터페이스, 서버와 연결되는 과정, 문법적인 부분에 대해 익힐 수 있었다. 특히 java의 spring이 mvc(모델-뷰-컨트롤러)의 비지니스 로직에 좀 더 치중해(service) 개발 할 수 있게 하는 다양한 문법이 있다는 것을 알게 되었고(기본적인 db와의 연결이나 entity나 각 객체들의 연결을 손 쉽게 할 수 있게 spring에서 알아서 처리해주는 기능이 되게 많음) 팀 과제를 통해 전반적인 spring을 위한 개념(jpa, restAPI, DTO, JVA...)들을 좀 더 공부 할 수 있었다.

 

그 중에서도 의존관계 주입인 DI(즉 개발자는 특정 객체에 필요한 객체를 외부에서 결정해서 연결 시키는 것)는 제어의 역행이 일어날 대 스프링이 내부에 있는 객체들 간의 관계를 관리할 때 사용하는 기번으로 이를 통해 의존성이 줄고 재사용성이 높으며 테스트하기 좋은 코드를 만들 수 있다는 점을 집중해 알았다.

 

또한 이에 대한 핵심 개념인 핵심 개념인 제어의 역전 IoC말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아닌 외부에서 결정되는 것이라는, 개발자는 프레임워크에 필요한 부품을 개발하고, 조립하는 방식의 개발 즉 스프링 그 자체가 구조를 설계 할 수 있도록 만들어졌다는 개념또한 중요히 짚고 넘어갔다.

<용도에 맞게 필요한 객체를 그냥 가져다 사용, ex: 칼의 용도별 사용...

(1) 과일을 깍을때 사용하는 칼? -> 과도(생성 되어 있는 객체)

(2) 일반 적으로 요리 할을 때 사용하는 칼? -> 식칼(생성되어 있는 객체)..>

 

그리고 이런 IoC 컨테이너(bean을 모아둔 통)를 사용하기 위한 bean(스프링을 관리하는 객체)에 대한 개념(생성방식, 사용 @ 등) 역시 중요하게 배웠다.


+개인과제 githublink(나만의 백엔드 서버 만들기)

https://github.com/ggiou/spring_new_homework-week3