https://youtu.be/dNcZ8rJ5gLM?si=1C_dfXg6lUnJ0_FX

요즘은 자고 일어나도 개운하지 않아!!.. 오늘도 거지같은 꿈을 꿔서 깼다..


1. GDSC 프로젝트 트랙 : 끝!!!

드디어드디어! GDSC 프로젝트 트랙이 끝났다. 학기 중부터 시작해서 여기까지 오기까지... 꽤나 길었던 듯 짧았던 듯 정신없이 지나간 1학기처럼 방학마저도 순식간에 지나가버렸다.

 

회고록은 따로 쓰겠지만(아마도), 짧게나마 남기자면 스스로 많이 부족함을 느끼는 시간이었다. 간단한 CRUD 기능만 구현한 것과 마찬가지이지만, 그것조차도 많은 오류를 만났었다...

 

1.1 개념의 중요성을 느끼다 : 영속성 컨텍스트

[SpringBoot] 물품 추가 API 구현 (tistory.com)

 

[SpringBoot] 물품 추가 API 구현

1. 목표🎯특정 카테고리에 물품을 추가하는 기능 구현하기  2. 기능 명세서📜NameMethodURIDomainAuthZ물품 추가POST/itemitemADMIN  3. 1차 코드 작성💻이전에 만들었던 '카테고리 추가' 기능이랑 똑같이

yeonee911.tistory.com

물품(item)을 추가하는 api를 구현했는데, 물품의 상위 항목인 카테고리에 변경사항이 반영되지 않는 문제가 발생했다. 

문제가 발생한 근본적인 원인은 자바에 대한 개념이 부족한 나 자신 때문이었다...

 

해결 방안에 대해서는 해당 게시글에 작성했으나, 야생형 개발자의 부족함을 뼈저리게 느꼈다...

어느 정도 실전을 경험해봤으니 숭숭 구멍난 개념을 메꿀 차례인 것 같다.

 

1.2 웹 계층 구조의 중요성을 느끼다 : 협업과 코드 유지보수가 잘 되려면...

팀원분의 코드를 리뷰하면서 계층 구조의 중요성을 느꼈다.

 

사실 내가 기존에 작성한 코드는 계층 구조를 잘 지켰다고 생각한다. 물론 내가 직접 생각하면서 작성한 건 아니고, 다른 여러 코드를 참고하면서 자연스럽게 패턴을 따라가게 된 것이다. 그래서 그런지 정작 그 필요성을 실감하지는 못했다.

 

하지만 컨트롤러 계층에 비즈니스 로직을 모두 작성하고 텅 빈 서비스 계층을 보면서, 음... 뭔가 잘못됐다! 정도는 느낄 수 있었다.

웹 계층 구조를 지키지 않을 경우
한 곳에 코드가 뭉쳐지고 굉장히 길어져서 그걸 단순히 읽는 것조차 피로도가 굉장히 쌓였다.
유지 보수가 굉장히 힘들어질 것 같았다.. 

 

1.3 웹 계층 구조 vs MVC패턴

이 WIL을 작성하면서 든 의문인데, 그럼 웹 계층 구조와 MVC패턴이랑 뭐가 다른 거지? 같은 건가? 관계가 어떻게 되는 걸까?

호기심에 이리저리 검색해보니 나와 비슷한 의문을 가진 사람이 있었다.

mvc pattern과 웹 애플리케이션 계층 구조 비교에 관해 - 인프런 | 커뮤니티 질문&답변 (inflearn.com)

 

mvc pattern과 웹 애플리케이션 계층 구조 비교에 관해 - 인프런 | 커뮤니티 질문&답변

누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.

www.inflearn.com

이 답변만으로는 조금 이해가 안돼서... 더 찾아봄

 

1.3.1 MVC 패턴이란?

MVC - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN (mozilla.org)

 

MVC - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고

developer.mozilla.org

Model : 데이터와 비즈니스 로직을 관리합니다.

View : 레이아웃과 화면을 처리합니다.

Controller : 모델과 뷰로 명령을 전달합니다.

 

1.3.2 애플리케이션 아키텍처(AA)

애플리케이션 아키텍처(Application architecture)란? (redhat.com)

 

애플리케이션 아키텍처(Application architecture)란?

애플리케이션 아키텍처란 소프트웨어 애플리케이션 디자인과 구조를 정의하는 프로세스를 뜻하며, 애플리케이션 구성 요소, 시스템 레이어 및 모듈 등을 정의합니다.

www.redhat.com

또다시 검색결과... 내가 알고 있던 '웹 계층형 구조'는 애플리케이션 아키텍처의 하위 항목이었다!이렇게 또 새로운 사실

 

아키텍처에 크게

- 계층화 또는 N-티어 아키텍처
- 모놀리식 아키텍처
- 마이크로 서비스 아키텍처
- 이벤트 기반 아키텍처
- 서비스 지향 아키텍처 

가 존재하는데, 여기서 '웹 계층형 구조'라고 부르던 것은 '계층화'에 속하는 것 같다

그리고 주로 이걸 계층형 아키텍처 (Layered Architecture)라고 부른다.

 

그리고 애플리케이션 아키텍쳐는 또다시 아키텍처의 하위항목이다...(복잡해!!)

< 아키텍처(Architect) >
1. 솔루션 아키텍처(SA)
2. 데이터 아키텍처(DA)
3. 시스테 아케틱처(SA)
4. 테크니컬 아키텍처(TA)
5. 소프트웨어 아키텍처(SA)
6. 엔터프라이즈 아키텍처(EA)
7. 비즈니스 아키텍처(BA)
8. 애플리케이션 아키텍처(AA)
     8.1 계층형 아키텍처 (Layered Architecture)   => 여기에 속함!!
     8.2 ...
     8.3 ...

 

중간에 조금 돌아왔지만, 어쨌든! 스프링 계층 구조에 다시 알아보자면,

JPA 활용강의 1

Spring Boot Architecture - javatpoint

 

Spring Boot Architecture - javatpoint

Spring Boot Architecture with Introduction, Features, Project, Starter Project Wizard, CLI, Application, Annotations, DM, Properties, Actuator, Thymeleaf View, JPA, JDBC etc

www.javatpoint.com

영어 읽는 습관 들이기..ㅎㅎ..

 

1.3.3 참고하면 좋을 글

MVC is clearly different from the layered architecture. | by Vijini Mallawaarachchi | Medium

 

MVC is clearly different from the layered architecture.

In monolithic architecture, the functionalities are defined in a functional manner. This makes the components of the system interwoven and…

vijini.medium.com

이 답변에 대해서도 댓글로 갑론을박..

The main difference between the two patterns is that the Clean Architecture emphasizes a separation of concerns at the business logic level, whereas the MVC pattern separates concerns at the presentation level
그리고 그 댓글들 중 오오.. 끄덕인 문장.

 

[Architecture] Layered Architecture(feat. MVC 패턴) (tistory.com)

 

[Architecture] Layered Architecture(feat. MVC 패턴)

❓Software Architecture소프트웨어 아키텍처는 모든 소프트웨어 시스템의 기본 구조를 말하며 시스템이 제대로 기능하고 작동하도록 하는 모든 측면을 말한다.소프트웨어 시스템에서의 아키텍처는

gnuoyus.tistory.com

3-tier Layered Architecture와 MVC (velog.io)

 

3-tier Layered Architecture와 MVC

많이 헷갈려하는 3-tier 계층과 MVC의 관계

velog.io

 

정말 명쾌하게 정리해주심

 

1.3.4 결론!

MVC패턴과 스프링 계층 구조를 완전히 일대일 대응시키기에는 무리가 있다.

출처 : [Architecture] Layered Architecture(feat. MVC 패턴) (tistory.com)

 

알아보다 보니 굉장히 길어졌다... 나도 따로 한 번 정리하면 좋을 듯

 

 

2. 알고리듬 두둠칫

곧 골3 찍을 듯?!
순조로운 하트 만들기. 제 눈에는 벌써 하트가 보여요

저번주는 개발하느라 바빠서 알고리즘 공부는 거의 못했다. 그냥 계속 DP만 풀었다.

이번주는 아마도 그래프만 주구장창 팔 듯! 몇 주 전에 그래프만 팠었는데, 그새 또 까먹은 것 같다.

그 와중에 재밌게 풀었던 문제 추천

10164번: 격자상의 경로 (acmicpc.net)

4883번: 삼각 그래프 (acmicpc.net) -> 이건 진짜 배열 인덱스 잘못 적었다가 계속 틀림ㅇㄴ!!

 

복습 안하면 그냥 바로 까먹어버림.. 금붕어 뻐끔뻐끔🐟🫧

 

그나마 오늘은 이분탐색을 이용한 LIS구하기 문제를 풀었다. 언제쯤 나는 알고리즘 마스터가 될 수 있을까...

매주 알고리즘 분야를 하나 정해서 그것만 파는 것도 꽤 좋은 방법 같다. 그렇게 백준에 아름다움 육각형을 만들어버리기

아니면 신촌 알고리즘 캠프 복습하기?

 

3. 대학수학 공부

그냥 못했어요!! 으악!. 이번주는 선형대수 고유치,고유벡터를 공부할 예정이다.

 

4. 게임 개발...

얘도 못함.... 내가 팀장인데 해야지.. 언제쯤 출시할까??

지난 번에 출시한 '구해줘! 알바생'도 업데이트 해야하는데, 마감 8월 31일까지임..

구해줘! 알바생 - Google Play 앱

 

구해줘! 알바생 - Google Play 앱

스트레스를 관리하여 3개월 계약 기간을 견디자!

play.google.com

혹시 이 글을 보시면 한번만 구경해주세요. 진짜 제가 만들었지만 재밌어요. 저의 눈물실화 알바 경험이 담긴..

그래픽도 진심 귀여움.

 

진짜 미연시가 만들기 더 힘들다. 이런 캐주얼 게임 개발이 훨씬 쉽긴 한듯..

플레이는 미연시가 훨씬 쉬운데, 대체 왜?!(그래서 만들기 더 쉬운 줄 알았던 과거의 나..

 


 

그 와중에 광고 공모전 동아리, 포스트유니브도 지원했다!! 만약 붙는다면... 정말 흥미로운 경험이 될 듯!

그리고 세오스도 모집 시작했고... 백엔드 지원해보고 싶긴 한데 만약에, 정말 만약에? 포스트유니브에 합격한다면 병행은 아무래도 힘들지 싶다.

.

.

.

힘들겠지..? 하지만 하고 싶다...

 

아마 이번주부터 가능하면 빨리! 코틀린 관련 책도 빌려서 조금씩 개념을 정리해보려고 한다!

유튭 썸넬이자 내 썸넬

+ Recent posts