본문 바로가기

분류 전체보기152

독후감 : 면접을 위한 CS 전공지식 노트 1일차 참 좋은 세상이다. E-Book 또한 편하게 대출이 가능했다. 덕분에 핸드폰으로 틈틈이 편하게 읽고 있다. 1일차 첫인상 넓고 얕은 지식들을 뇌 속에 빠르게 초벌하기 좋은 책이라는 인상이 강하다. 여기 있는 책만 보고 면접에 임하면 꼬리질문 한두번에 쉽게 멘붕이 올것 같은. 하지만 그럼에도 이 책을 읽기로 결심한 것은 그래서 좋기 때문이다. 우선은 넓게 이러한 키워드라도 있는 지 아는 것이 공부를 하며 큰 도움이 될때가 많았다. '아! 이게 그 개념인가?' 하는 포인트들. 그리고 쉽게 배웠던 지식들도 다시 일깨우며 워밍업하기 좋은 느낌이다. 디자인 패턴 네트워크 운영체제 데이터베이스 자료구조 위와 같은 챕터로 이루어져있고, 정말 튜터님들이 반복하여 강조했던 내용들이다. 이유가 있을 것이다. 이후 계획 .. 2023. 12. 8.
[트러블 슈팅] QueryDsl 도입후 테스트시 빈생성 문제 문제상황 myPageRepositoryCustomImpl이라는 빈생성을 못 한다는 에러 메시지가 나온다. 사실상 테스트 코드 작성 전인데도 해당 오류가 나온다. 해결방법 TestConfig생성 & JpaQueryFactory Bean 등록 @TestConfiguration은 @SpringBootApplication 에 의해 자동 탐색되지 않는다. @TestConfiguration public class TestConfig { @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory jpaQueryFactory() { return new JPAQueryFactory(entityManager); } } @Impo.. 2023. 12. 4.
[리팩토링] QueryDSL 도입기 0. 현재 상황 미뤄왔던 QueryDSL을 도입해보려 한다. 도입해야할 시기라는 것을 가장 크게 느낀 것은 아래 쿼리메소드를 작성했을 때이다. 메소드의 이름만으로도 쿼리문을 자동으로 작성해주는 Spring Data JPA 의 기능이지만 단점으로는 저렇게 너무 길어지기도 한다. 알아보기가 어렵다. QueryDSL는 동적쿼리를 생성하는 데에 있어서도 장점이 있지만, 한눈에 쿼리의 내용이 잘 파악이 되기도 하니 이를 기대해보며 개선해보려 한다. 1. QueryDsl 세팅 이전에 관련해서 설정을 마쳤기에 세팅관련한 자료는 아래 이전에 작성해뒀던 포스팅을 참고했다. 이전 포스팅 링크로 방법은 갈무리한다. https://thiswooin.tistory.com/68 TIL 230801 : QueryDSL 쓰려고 정리.. 2023. 12. 1.
[리팩토링] 작은 깨달음 : 리팩토링을 하기엔 데이터 수가 너무도 적었다 지난 번 Redis 서버가 미국에 있는 바람에 캐싱을 적용하자 오히려 느려졌다(?) https://thiswooin.tistory.com/134 [리팩토링] 레디스 캐싱을 통한 인증과정 유저정보 조회 속도 개선하기 개발환경 Java 17 / Spring Boot 3.x / Spring Security 3.x / MySQL 8.0 / Redis / JWT 테스트 DB는 로컬환경에서 진행. 현재코드 Spring Security를 통해 인증이 필요한 API의 경우 JWT 토큰을 기반으로 유저정보를 가져온 thiswooin.tistory.com ElastiCache는 추후 적용해보려 하고 우선은 빠르게 EC2 인스턴스에 Redis-server를 설치하여 이를 통해 해결해보려 한다. Redis 설치 on EC2 .. 2023. 11. 28.
[리팩토링] 레디스 캐싱을 통한 인증과정 유저정보 조회 속도 개선하기 개발환경 Java 17 / Spring Boot 3.x / Spring Security 3.x / MySQL 8.0 / Redis / JWT 테스트 DB는 로컬환경에서 진행. 현재코드 Spring Security를 통해 인증이 필요한 API의 경우 JWT 토큰을 기반으로 유저정보를 가져온다. 아래는 인증 구현체에서 유저정보를 가져오는 코드. username을 기반으로 select 쿼리를 보내서 가져온다. //UserDetailsServiceImpl.java @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userRepository.findByUsernam.. 2023. 11. 28.
231128 : 책과 세미나가 보이기 시작했다 위 다리는 다리의 역할을 하는가? Yes 이 다리를 만든 사람을 고용해 우리집으로 가는 다리를 만들도록 고용할 것인가? NO 지난 교육과정 돌아보기 지난 여름동안 간신히 REST API 설계, CRUD 게시판에 백오피스 기능 등 간신히 구현하는 법을 배웠다. 그렇게 5개월의 교육을 마치고 취업전선으로 몰아부치는 시즌에 나를 돌아보았다. 나는 위와 같은 다리를 만드는 사람같다는 생각을 떨칠 수 없었다. 구현은 어떻게든 시켰는데, 굉장히 허술한 느낌. 이런 내가 회사에서 값어치를 할 수 있을까? NO 나였어도 허술한 다리를 만드는 사람을 고용하진 않을 것이다. 최근 한달동안 돌아보기 최근 프론트-백을 모두 구현하며 나의 퀴즈형 게시판 사이트를 배포하는데 집중했다. 동시에 자연스럽게 구현만 배웠을 때 경험하지.. 2023. 11. 28.