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