본문 바로가기

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

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

06.15.2023 - 학습 일지

1. AM 09:00 ~ PM 18:00분 : BE(백엔드 KDT)

   - [AM 09:00 - 11:50]

Algorithms - String
 -  (오전 학습)

✔ [학습 내용]

 

   Algorithms - String

      1. 문자열에서 숫자 만들기

         1-1. ASCII 코드에서 ‘0’은 48임

         1-2. String.charAt(i) 로 char를 하나씩 가져옴

         1-3. 자리에 맞게 int로 변환

      2. 숫자에서 문자열 만들기

         2-1. 첫번째 자리를 모듈로 연산(%)으로 가져옴

         2-2. ASCII 코드의 `0`에 해당하는 값을 더함

         2-3. 다음 자리의 숫자를 가져올 수 있도록 계산함

      3. 패턴 매칭

        3-1. target 문자열과 pattern 문자열의 위치를 저장함 (i 와 j)

        3-2. target[i] 와 pattern[ j] 가 일치할 경우에 (i++ , j++)

        3-3. target[i] 와 pattern[ j] 가 불일치할 경우?

              3-3-1. i = i - j 를 할당 후 i++ i - j 부터 검색해서 찾는데 실패했기 때문에, i - j + 1 부터 다시 찾음

              3-3-2. j = 0 을 할당. 패턴의 처음부터 다시 검증함

        3-4. j 의 크기가 pattern 의 길이만큼 커지면 성공임

      4. Optional에 대해서 학습함 

Algorithms - String(실습)

Algorithms - 문자열에서 숫자 만들기
Algorithms - 숫자에서 문자열 만들기
Algorithms - 패턴 매칭
Optional 학습

SpringBoot - DB Connction

✔ [학습 내용]

 

   SpringBoot - DB Connction

      - AppService에서 List를 반환받아 Entity의 값을 이용할 수 있도록 작업함

      - Controller도 @ResponseBody List를 반환받아 Entity의 값을 이용할 수 있도록 작업함

      - DTO를 생성하여 Entity를 직접사용하지 않고 분리하여 controller, service에서 호출받아 이용되도록 작업

         -> 일종의 디자인 패턴임

         -> View에서 사용하는 데이터와 Model이 관리하는 데이터의 형태를 분리함

         -> Entity가 변화했을 때 DTO를 사용하는 View에 영향이 줄어듬

         -> Entity에서 사용자에게 노출되는 정보를 조절할 수 있음 (정보 은닉)

      - StudentDto를 생성함

         -> 객체의 생성을 담당하는 클래스 메소드임

         -> 객체 내부의 메소드를 통해 새로운 객체를 만드는 방법

SpringBoot - DB Connction(실습)

SpringDB Connection - Controller, Service, Dto, Entity를 이용하여 재사용성이 용이하도록 함
SpringDB Connection - CRUD 결과물을 HTTP통신을 통해서 View단에서 실습을 통해 Test가 잘되는지를 Check하는 과정

마무리

     - 알고리즘을 풀면서 처음에는 숫자를 문자열로 교환해주는 작업을 할때에 이해가 안돼었는데, 아스키코드에 대해서 따로 이론적인 부분을 찾아보고 왜 8054라는 결과값이 나오는지에 대해서 이해하게 되었고, 문자열에서 숫자로 교환해주는 작업 또한 음수인가, 양수인가를 if문을 통해서 값을 합쳐주는 역할과 패턴매칭은 쫌 신기했고, 이런 알고리즘 문제는 되게 재밌게 풀었고, 물론 강사님과 함께 풀이를 진행했지만, 하나하나 직접 코드를 작성하고 디버깅을 통해서 이해를 해보니깐 어떻게 결과값이 나오는지에 대해서도 알 수 있어서 좋았다. 오후는 DB에 대해서 CRUD를 한번 더 복습하는 차원에서 진행을 하였고, 조금 더 다양한 시도를 하였고, 특히 Entity부분을 Controller, Service에게 직접 사용하지 않고, 재사용성과 원하는 Data만 사용을 하기 위해서 Dto로 분리를 하여 호출시에만 원하는 Data를 사용할 수 있도록 작업하였고, 그외에는 빈 CRUD메서드에 각 기능을 작성하면서 마무리를 하였다. 한번 더 학습을 하다보니 조금 더 이해가 잘되었고,  정보은닉을 위해서라도 Entity를 바로 불러와서 이용하는 것이 아니라 Dto를 만들어 원하는 Data의 값을 호출시에만 표현이 되도록하는 것이라는 것을 알게되어 좋았다. :)