본문 바로가기

전체 글88

[TIL] 2023-01-18(58day) / 프로젝트(3day) 프로젝트(3) 👉 @Transactional(readOnly = true) 사용하는 이유 @Transactional(readOnly = true) - 영속성 컨텍스트가 결과를 관리하지 않는다. - 읽기 전용이라, 스냅샷을 보관하지 않아 메모리 최적화에 도움을 준다. - 읽기 전용 메서드라는 것을 알 수 있다. - 플러시가 발생하지 않는다. 🙋‍♂️ 소감 : 서비스 로직이 실행이 되지 않아 한참을 들여다봤는데, 지난 프로젝트 피드백에서 @Transactional(readOnly = true) 잘 사용했다는 피드백이 생각나서, 생각 없이 조회한 데이터 return이 아닌 부분에도 죄다 붙여 버린 게 이유였다. 생각이 나서 썼는데 생각 없이 쓰다니 생각 좀 하고 살아야겠다. 😈 아는 내용이라고 그냥 넘어가지 .. 2023. 1. 19.
[TIL] 2023-01-17(57day) / 프로젝트(2day) 프로젝트(2) 👉 UserRepository List findAllByRole(UserRoleEnum roleEnum); 👉 ProfileRepository List findAllByUserIdIn(List userIdList); 👉 AdminServiceImpl List userList = userRepository.findAllByRole(UserRoleEnum.SELLER); List userIdList = new ArrayList(); for(User user : userList){ userIdList.add(user.getUserId()); } List profileList = profileRepository.findAllByUserIdIn(userIdList); List sellerList =.. 2023. 1. 18.
[TIL] 2023-01-16(56day) / 프로젝트(1day) 프로젝트(1) 👉 API 명세서 # User API # Seller API # Customer API # Admin API 👉 ERD 🙋‍♂️ 소감 : 새로운 프로젝트가 시작되었다. 오늘은 첫날로 팀원 모두 API 명세서와 ERD 작성 및 프로젝트 기본 구조를 만들었다. API 별로 역할 분담을 했으며, 나는 Admin API 부분을 맡아 진행하기로 했다. 프로젝트를 하면 할 수록 점점 더 디테일한 부분이 보이는게 예전보다 많이 성장하고 있는 것 같다. 😈 아는 내용이라고 그냥 넘어가지 않기! 😈 2023. 1. 16.
[WIL] 2023-01-14(11th week) 😃 Keep - 이해 안되는 부분은 반복 학습. - 모르는 부분은 팀원들과 공유하여 해결해보기. 😅 Problem - 알고리즘 문제 풀이를 하지 못함. 💪 Try - 프로젝트 중간중간 알고리즘 문제 풀어보기. - 개인과제 JPA 연관관계 최대한 끊어보기 🙋‍♂️ feel - 지난 프로젝트에서 못했던 개인과제의 연장선이라 생각하고 시큐리티 적용을 맡아서 하긴 했으나, 완벽히 이해된 상태에서 하지는 못했었다. 일주일간 개인과제에서 리팩토링 하면서 차근차근 최대한 이해하면서 사용하려고 했다. 다음 주에 새로운 프로젝트가 시작되는데 최대한 할 수 있는 부분까지 욕심 내서 해보고 싶다는 생각이 든다. 2023. 1. 15.
[TIL] 2023-01-13(55day) / SQL 인덱스 SQL (3) 👉 인덱스 - 데이터를 빠르게 찾을 수 있도록 도와주는 도구 # 인덱스 생성 CREATE [UNIQUE] INDEX 인덱스_이름 ON 테이블_이름 (열_이름) [ASC | DESC]; # 인덱스 생성 SHOW INDEX 테이블_이름; # 인덱스의 적용 ANALYZE TABLE 테이블_이름; # 인덱스 제거 DROP INDEX 인덱스_이름 ON 테이블_이름; 인덱스를 효과적으로 사용하는 방법 WHERE 절에서 사용되는 열에 인덱스를 만들어야한다. 데이터 변경 작업보다 SELECT 문을 훨씬 자주 쓰는 열에 인덱스를 만들어야 한다. 데이터의 중복이 높은 열은 인덱스를 만들어도 별 효과가 없다. 사용하지 않는 인덱스는 제거. 🙋‍♂️ 소감 : JPA가 모든 데이터를 엔티티 객체로 변환하여 검색하.. 2023. 1. 15.
[TIL] 2023-01-12(54day) / SQL JOIN / 제약조건 SQL (2) 👉 JOIN - 두개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것 # Inner Join (가장 많이 사용) SELECT FROM INNER JOIN -- INNER JOIN은 'INNER' 생략가능 ON [WHERE 검색 조건] -- 테이블 이름에 별칭을 붙이면 SELECT B.mem_id, M.mem_name, B.prod_name, M.addr FROM buy B JOIN member M ON B.mem_id = M.mem_id; # Outer Join (가장 많이 사용) - 두 테이블을 조인할 때 필요한 내용이 한쪽 테이블에만 있어도 결과를 추출 SELECT FROM OUTER JOIN ON [WHERE 검색 조건]; -- LEFT OUTER JOIN 문의 의미를 ‘왼쪽 테.. 2023. 1. 12.