06.26.2023 - 학습 일지
[국비] 백엔드 과정
※ 오전 활동 ※
T : AM 09:00 - 11:50
Algorithms - Graph
※ [학습 내용] ※
▣ Algorithms - Graph
- Graph
- 그래프의 종류와 각 그래프의 종류에 대한 개념에 대해서 학습함
- [종류]
1. 무향 그래프(Undirected Graph)
- 양쪽 정점에서 간선을 통해 서로에게 도달 가능함을 말함
2. 유향 그래프 (Directed Graph)
- 한 정점에서 다른 정점으로는 도달 가능하지만 반대는 불가함을 말함
3. 가중치 그래프(Weighted Graph)
- 간선에 값이 추가된 형태 - 해당 간선을 택할 때 비용을 표현하는 경우를 말함
4. 순환 그래프
- 시작한 정점에서 끝나는 경로를 사이클이라 할때 , 이런 순환 구조 를 가진 그래프를 말함
5. 완전 그래프
- 정점들이 가능한 모든 간선을 가진 그래프를 말함- 인접 행렬[Adjacent Matrix]
- 인접행렬 관련하여 알고리즘 문제 풀이 함- 인접 리스트[Adjacent List]
- 인접리스트 관련하여 알고리즘 문제 풀이 함- 깊이 우선 탐색(재귀함수)[RecursiveDFS]
- 깊이 우선 탐색(재귀함수) 관련하여 알고리즘 문제 풀이 함- 너비 우선 탐색 정렬[ListBreadthFirstSearch]
- 너비 우선 탐색 정렬 관련하여 알고리즘 문제 풀이 함
Algorithms - Graph (실습)
[국비] 백엔드 과정
※ 오후 활동 ※
T : PM 13:00 - 18:00
SpringBoot - Validation
※ [학습 내용] ※
▣ SpringBoot - Validation(유효성 검사)
- Controller
- UserController를 생성하여 ResponseEntity를 참조하는 Map type안에 문자열을 받아주는 addUser Method를 생성하여 UserDto를 이용하여 Data들이 HTTP 통신시 log를 이용하여, 각 Data의 값을 표현해주도록 HTTP통신이 잘되는지를 표현해주는 작업을 함
- handleValidationExcepton Method를 생성하여 각 Data에서 발생할 수 있는 에러를 예외처리를 통해 에러코드를 표현하게 하여 어떤 에러인지를 보여주는 역할을 함- Dto
- UserDto에서는 각 Entity가 Interface에서 생성해준 Element를 이용하여 유효성 검사를 조금 더 원활하게 할 수있도록 해당 Entity에게 애노테이션을 명시해 줌- Annotations
- BlackListValidator에서는 호출이 되는 시점으로 생성여부와 검증할지 말지 여부를 검증하는 Class임
- Phone010에서는 Phone Entity에게 유효성 검증이 일어날때 필요한 요소들을 부여해주는 작업을 함
- EmailWhitelist에서는 Email Entity에게 유효성 검증이 일어날때 필요한 요소들을 부여해주는 작업을 함
- BlackList에서는 Field 타입인 것은 Runtime이 끝날때까지 유효성 검증에필요한 요소들을 부여해주는 작업을 함- Constraints
- Phone010Validator을 생성해 phone Entity의 유효성을 검증하는 역할을 함
- EmailWhitelistValidator을 생성해 email Entity의 유효성을검증하는 역할을 함- PostMan
- HTTP 통신을 하면서 각 Entity의 유효성 Test를 하기 위한 작업임
SpringBoot - Validation (실습)
KDT 학습내용 용어정리
※ [정리내용] ※
1. Validation Test - [URL]
2. Annotation Arrangement - [URL]
KDT 학습내용 용어정리(노션내용 일부)
마무리
- 오전은 Graph의 종류, 개념, 인접행렬, 인접리스트, 깊이 우선 탐색(재귀함수), 너비 우선 탐색 정렬 문제를 풀면서 조금씩의 수정만으로 결과값이 틀려지고, 물론 이 4가지 그래프에 대한 이해를 한 것은 아니지만, 어떻게 결과값들이 조금씩 다른지에 대해서 학습하였고, 오후는 유효성 검사에 대해서 이론과 실습을 하였다. 물론 유효성 검사시 필요한 애노테이션을 그대로 부여한 경우도 있지만, 직접 커스텀을 하여 해당 Entity에게 커스텀한 애노테이션 요소를 부여하여 만약 해당 Entity의 값이 명시한대로 True가 아니라면 커스텀한 에러를 보여주게 한다. 그 전 학습때에도 try-catch문으로 예외처리를 하는데, error가 난다면 따로 error메세지를 커스텀하여 HTTP Status에 커스텀한 error method를 호출하게 하여 HTTP 통신을 통해서 error날때 해당 error message가 보여지도록 하였다. 이번은 Entity에게 각 애노테이션을 명시하여 표현하는 방법을 학습하였다. 되게 재밌기도하고 정말 이렇게 커스텀하여 에러를 보여지게 하여 뭐가 원인이고 개발자로써 어떤게 문제인지를 빠르게 파악할 수 있게 하면 좋겠다는 생각을 하게 되었다. 조금 깊게 공부를 하다보니 전부 이해가 되지는 않아도 어떻게 쓰여지고, 구현을 해야하는지에 대해서는 이해를 하게 되었다.
'개발자 취업 프로젝트[일지]' 카테고리의 다른 글
💻개발자가 되기 위한 프로젝트(101)💻 (0) | 2023.06.28 |
---|---|
💻개발자가 되기 위한 프로젝트(100)💻 (0) | 2023.06.27 |
💻개발자가 되기 위한 프로젝트(98)💻 (0) | 2023.06.23 |
💻개발자가 되기 위한 프로젝트(97)💻 (0) | 2023.06.22 |
💻개발자가 되기 위한 프로젝트(96)💻 (0) | 2023.06.21 |