본문 바로가기

개발자 취업 프로젝트[일지]

💻개발자가 되기 위한 프로젝트(101)💻

06.27.2023 - 학습 일지
[국비] 백엔드 과정
※ 오전 활동 ※
T : AM 09:00 - 11:50
Algorithms - Graph
※ [학습 내용] ※

Algorithms - Graph
  1. Graph
    - 그래프의 종류와 각 그래프의 종류에 대한 개념에 대해서 학습함
    - [종류]
      1. 최소 신장 트리
         - 그래프의 정점과 간선 중 일부를 선택해서 구성하는 트리를 신장 트리라고 함
      2. 최소 신장 트리 – Kruskal 알고리즘
         - [기준]
            1. 간선을 가중치 기준 오름차순 정렬함
            2. 가중치를 낮은 간선부터 선택 이때 간선으로 인해 사이클이 생기면 다음 간선 선택함
            3. 선택한 간선이 N-1개가 될때까지 반복함
      3. 최소 신장 트리 – Prim 알고리즘
        - 하나의 정점에서 시작해서 정점을 하나씩 추가하는 알고리즘을 말함
        - [기준]
           1. 임의의 시작 정점을 선택함
           2. 현재 선택된 정점들을 기준으로, 인접한 정점 중 가중치가 최소인 간선으로 연결된 정점을 선택함
           3. 모든 정점이 선택될 때까지 반복함
  2. Kruskal 알고리즘문제 풀이
    - 서로소 집합 관련 알고리즘 문제 풀이

  3. Prim 알고리즘문제 풀이
    - 서로소 집합 관련 알고리즘 문제 풀이

  4. Programmers43162[네트워크 문제]
    - BFS 알고리즘 문제 풀이

  5. Programmers43163[단어변환 문제]
    - BFS or DFS 알고리즘 문제 풀이

Algorithms - Graph (실습)

Algorithms - Graph [Kruskal 알고리즘문제 풀이]
Algorithms - Graph [Prim 알고리즘문제 풀이]
Algorithms - Graph [Programmers43162(네트워크 문제)]
Algorithms - Graph [Programmers43163(단어변환 문제)]


[국비] 백엔드 과정
※ 오후 활동 ※
T : PM 13:00 - 18:00
SpringBoot - Testing
※ [학습 내용] ※

SpringBoot - AOP(관점 지향 프로그래밍)
  1. Util
    - JsonUtil를 생성하여 Map을 Json으로 변환하거나, Json을 Map으로 변환을 해야하는 상황을 대비함
  2. Testing
    - UserControllerTests에서는 UserController, UserService의 기능들이 UserDto를 나타내는 Json요청시 id가 null이 아닌 UserDto Json응답에 문제가 없는가를 Testing함
    - UserServiceTests에서는 MockitoExtension을 이용하여 UserRepository, UserService를 불러와 UserDto의 id값이 null이 아닌가를 Testing함
    - UserRepositoryTests에서는 UserRepository를 불러와 UserEntity를 데이터베이스에 추가하는 것이 성공했는가, 데이터베이스에 추가하는 것이 실패했는가, UserEntity를 username을 통해 찾기에 문제가 없는가를 각 Method를 생성하여 Testing함
SpringBoot - Testing (실습)

SpringBoot - Testing [Dependency]
SpringBoot - Testing [JsonUtil]
SpringBoot - Testing [UserControllerTests]
SpringBoot - Testing [UserServiceTests]
SpringBoot - Testing [UserRepositoryTests]


KDT 학습내용 용어정리
※ [정리내용] ※
 1. SpringBoot - Testing → [URL]
KDT 학습내용 용어정리(노션내용 일부)

SpringBoot - Testing정리


마무리
  - 오전은 Graph를 마무리하는 시간을 가졌고, Kruskal Algorithms, Prim Algorithms의 이론과 문제풀이를 통해서 Graph관련 알고리즘은 끝을 맺었고, 추가로 프로그래머스 DFS, BFS 2문제를 풀이했는데, 너무 재밌었다. 물론 어제와 동일하게 비슷한 문제더라도 계속해서 문제를 다루다보니, 패턴이라던지 코드를 작성하면서도 해당 메서드를 분리하여 재사용성을 높여 좀더 기능을 활용할때에 OOP적으로 진행을 하다보니 이제야 익숙해지기 시작했고, 처음과 다른점이라면 알아서 이제는 반복적인 부분이 보인다 싶으면 분리하여 호출하여 이용되도록 하는 작업이 익숙해졌다는 점이다. 오후는 SpringBoot Testing에 대해서 Test하는 방법에 대해서 학습을 진행했다. JUnit, Mockito등 강사님이 짜온 코드를 github에서 pull하여 만들어 놓은 controller, service, repository, dto, entity를 가지고 Controller Test를 실행하고, Service Test를 실행하고, Repository를 Test하면서 문제가 없는지를 Test Annotation,  Mock Annoation등을 이용하여 해당 기능들이 잘 동작하는지를 확인하는작업을 하였다. TDD란 어떻게하는지 어떻게 해야하는지를 학습하였다. 더 깊은 공부를 해야겠다는 생각도 있지만, 정말 실무에서도 TDD부분이 필요하거나 때로는 급할때는 중요한 파트만 확인하고 진행하는 방향을 잡고 되도록이면 문제없는 클린 코드를 작성하는 방법을 더 찾아서 공부를 해봐야 겠다는 생각을 하게 되었다. :)