WIL

WIL - 20230416

신동편 2023. 4. 17. 06:12
728x90

이번주에는 드디어 스프링 공부가 시작되었다.

아직 자바를 잘 다루지 못해서 좀 어지러운 감이 없지않아 있다.

 

스프링 공부를 시작하면서, 원래 하던 자바랑 시간 분배를 어떻게 해야할지 고민이 많았다.

1달 전쯤인가 뭣도 모르고 스프링 강의를 들었던 때에는 아무것도 이해 못하고, 막상 알아보면 자바개념이었고,

그랬었는데 객체지향 스터디를 하고나니 어느정도는 스프링이 뭔지 살짝씩 감이 오는 것 같다.

 

막상 스프링을 시작하고 나니, 스프링은 결국 자바라는 것을 느낄 수 있었고, 공부하는 시간을 나눠서 공부한다기보다는

능동적으로 스프링을 공부하다가 내가 모르는 자바 개념이 나오면 그때그때 찾아보기로 했다.

 

항해에서 내준 스프링주차의 1주차과제를 다 끝냈는데, 

https://github.com/been1118/springPrac-crud

기본적인 CRUD를 다루는 방법에 대한 내용이었다.

 

게시글을 작성하고 조회하고 수정하고 삭제하는 api를 작성해보았다.

PostMan을 사용해서 내가 쓴 코드를 테스트해보니까 뭔가 이제 진짜 내가 개발을 배우고 있구나라는 것을 느꼈다.

 

클라이언트에서 요청을 받아서 요청을 수행한다음 다시 클라이언트에 응답을 반환할 때 

Entity를 그대로 반환하지 않고, DTO에 담아서 반환하라는 요구사항에서 애를 좀 먹었다.

 

CRUD부분은 강의를 듣고나면 어렵지 않게 해낼 수 있었는데, DTO에 담아서 반환한다는 것이 좀 어려웠던 것 같다.

 

사실 처음에는 저 요구사항을 못보고 api명세서 예시에 있는대로 하면 되겠지 하고 그냥 했었는데,

삭제하는 부분의 Response부분이 

{ "success": true, }

이렇게 되어있는 것이다.

 

그래서 저 두개를 HashMap을 이용해서 키값으로 저장해서 반환해줄 생각이었는데, Json형식이 아니라서 그런지 원하는 결과를 얻지 못했다.

 

다른분께서 도움을 주셨는데, DTO를 하나 더 만들어서 거기에 값을 넣어서 반환하면 된다고 하셨다.

굳이 그럴 필요가 있나 싶어서 고민하고 있었는데, 그때 Entity를 그대로 반환하지 않고, DTO에 담아서 반환하라는 요구사항을 보았다.

 

그렇게 그분의 도움을 통해서 제네릭 타입의 "D"를 통해서 성공 여부와 함께 어떤 타입의 데이터든지 받아들일 수 있게 해주었고, 메서드들의 반환타입을 바꿔서 요구사항을 충족할 수 있었다.

 

또, http메서드들을 사용하면서, spring을 처음 공부해보면서 그 내용들을 간단하게 정리해보는 시간을 가졌었다.

https://eastlight0418.tistory.com/43

 

https://eastlight0418.tistory.com/44

 

Spring - MVC, DI, IOC

Spring Framework로 웹 개발을 할 땐 기본적으로 MVC 패턴을 따른다. MVC 패턴은 Model, View, Controller 이 3가지로 나뉘어 역할을 분할하여 처리한다. 역할을 나누어 처리하기 때문에 서로의 결합도가 낮아

eastlight0418.tistory.com

 

 

728x90

'WIL' 카테고리의 다른 글

WIL - 20230514(미니 프로젝트 WeLuvWine 회고)  (0) 2023.05.15
WIL - 20230508  (0) 2023.05.08
WIL - 20230430  (0) 2023.05.01
WIL - 20230423  (0) 2023.04.24
WIL - 20230410  (0) 2023.04.10