본문 바로가기

728x90

내일배움캠프 4기 스프링

(123)
01. 31 TIL 1. 코딩 테스트 입문 문자열 정렬하기(2) ~ charArray를 사용하지 않아 빙빙 돌아 풀었다 chatGPT의 리뷰 This code is straightforward and easy to understand. However, there is one small improvement that can be made to the code. Instead of storing the numerical values of the characters in an ArrayList, you could use a char array, which would be more efficient in terms of memory usage. 다른 사람의 풀이에서 보고 내가 느낀 점과 똑같이 얘기한다..! 그저 신기할 뿐.. 2..
01. 30 TIL 1. 코딩 테스트 입문 숫자 찾기 *정수를 문자열로 변환할 때 : ("" + int)의 경우, 왜 "-"+ int를 할까? -> 문자열에 임의로 문자 '-'를 추가해 문자열의 인덱스를 하나 추가한 것이다. 다른 예시로는 "@" + int , "ㄱ" + int 등도 모두 동일한 결과를 나타냄. ~ 사용한 문자가 '-'여서 문자열의 정수가 음수일 때 indexOf 메서드에 양수 인자를 넣었을 때 발생하는 경우로 알았지만, 이런 경우는 없고, 알고 보니 char 한 글자를 추가해 바이트를 추가해 String의 길이를 1 늘린 것으로 정리되었다. 메서드 뎁스 파고 들어가보기 : String.indexOf() -> StringUTF16.indexOfLatin1() -> indexOfLatin1Unsafe() 2...
01. 23 ~ 01. 27/ 13주 차 WIL 심화 프로젝트를 끝내고, 최종 프로젝트를 위한 강의를 시작. 테스트 코드와 CI/CD. 1. 심화 프로젝트 심화 프로젝트를 마무리하고, 발표하며 과정을 성공적으로 마무리했다. 중요한 것은 이 과정에서 다른 사람의 버스를 타서 더 화려한 결과물을 가지는 것이 아니다.(우리끼리 실력자인 척 해봤자다) 그 코드가 내 코드인지, 그리고 그 코드를 어떻게, 왜 그렇게 짰는지를 설명할 수 있어야 한다. 2. 자바 복습 제너릭스를 공부했다. 그렇게 들여다봐도 뭔 소리인지 모르겠더니, 이번 수업을 통해 좀 알아들을 수 있게 되었다. 심화 프로젝트 및 개인 과제를 수행하며 실제로 사용해보고 복습했더니 이해에 도움이 된다. 그리고 수업이 후발대 특화다보니 아무래도 더 쉽게 느껴지기도 하는 듯 하다. 3. 코딩 테스트 입문..
01. 27 TIL 1. 코딩 테스트 입문 0단계 60개 해결! 약수 구하기 새로 알게된 기능 IntStream : rangeColsed IntStream.rangeClosed(1, n).filter(i -> n % i == 0).toArray(); 2. 테스트 코드 강의 및 실습 인프런 - 김영한 스프링 입문 강의를 통한 복습 - 레포지토리 테스트 케이스 작성 및 구동 실습 // 인텔리제이 : 반환 타입 확인 및 변수 자동 생성 : Ctrl + Alt + V // static import : Alt + Enter // Ctrl + R : 이전에 실행한 것을 다시 실행 *모든 테스트 메서드는 순서와 상관없이 잘 작동해야한다(서로 간 순서에 의존성이 없어야 한다) -> 테스트가 끝나고 나면 Clear를 해야한다 : @Afte..
01. 26 TIL 1. 코딩 테스트 입문 인덱스 바꾸기 : 새로 배운 기능 StringBuilder 클래스의 SetCharAt 메서드, Collection 클래스의 Swap 메서드, String 클래스의 Join 메서드 2. 테스트 코드 통합 테스트와 단위 테스트 Mock 객체 생성과 활용 강의 중 만난 오류 : Jwt 토큰 값이 Null이다 -> 로그 : JwtUtil이 noArgConstructor를 가지고 있어야 한다? 코드 스니펫을 그대로 따라해도 발생하는 오류 1) JwtUtil에 기본 생성자 어노테이션을 추가하고 기존의 @RequiredConstructor를 삭제후 테스트 실행 -> Key argument cant be null + 로그에서 오류에 break point를 설정할 수 있어 편리하게 디버깅 -> s..
01. 25 TIL 1. 심화 프로젝트 발표 추가기능 구현 : 개인적으로 해볼 것 검색 기능 키워드 검색 : 페이징 목록 조회를 할때 검색 키워드를 입력해 검색하는 기능을 추가해보세요. 판매자 검색 : 페이징 목록 조회를 할때 판매자명으로 검색하는 기능을 추가해보세요. 포인트 기능 포인트 조회 : 고객과 판매자는 포인트를 가진다. (최초 회원가입시 기본포인트 제공) 상품 포인트 가격 : 상품들이 모두 포인트 가격을 가진다. 포인트 결재 : 고객은 판매자의 상품을 구매할때 가격만큼 포인트가 차감된다. 포인트 수신 : 판매자는 고객이 구매한 상품판매가 완료되면 포인트를 수신한다. 포인트 추가 : 운영자는 고객 또는 판매자에게 포인트를 추가해준다. 고객-판매자 대화 기능 대화방 생성 : 판매가 시작될때 대화방이 생성된다. 대화 ..
01. 16 ~ 01. 20/ 12주 차 WIL 심화 프로젝트 진행 주차! 1. 심화 프로젝트 그동안 배운 내용을 보다 적극적으로 활용할 수 있던 시간이었다. 특히 나 같은 경우엔 페이징 처리를 바탕으로 각종 조회 메서드 작성에 대해 통찰을 얻을 수 있었고, 클린 코드의 중요성과 핵심만을 말할 수 있는 능력의 중요성에 대해 깨달았다. 2. 시퀀스 다이어그램 실무에서 많이 쓰인다는 시퀀스 다이어그램에 친숙해지고자 공부하는 시간을 많이 가졌다. 결과로 보다 친숙해지고, 실무에 투입되었을 때 당황하는 것을 좀 줄일 수 있을 것으로 기대한다. 3. 자바 복습 자바의 강력한 강점인 객체지향 프로그래밍과, 이를 구성하는 4가지의 장점에 대해 복습하는 시간을 가졌다. 자바가 확실히 처음에 접하기엔 좀 어려운 언어이지만, 이해하고 나면 꽤 든든한 논리구조를 가지고 ..
심화 프로젝트 간 어려웠던 페이징 처리 페이징 처리를 하기 전 설계를 리스트로 반환하는 방식으로 했지만, 추후 페이징 처리라는 말의 의미는 페이징 타입으로 반환하는 것이라는 것을 알게 되었고, 이에 맞춘 재설계 및 코드 재작성 단계를 거쳤다. 관리자 권한으로 접근할 수 있는 전체 판매자목록 조회 메서드 이를 통해 페이징 처리, 람다, Enum을 통한 권한 설정에 대해 보다 더 익숙해질 수 있었다. 트러블 슈팅 1. 참고 출처 : 스택 오버플로우 https://stackoverflow.com/questions/39036771/how-to-map-pageobjectentity-to-pageobjectdto-in-spring-data-rest 페이지네이션 https://hudi.blog/spring-data-jpa-pagination/ 람다 htt..

728x90