전체 글 79

TIL 2025-02-27 (Trouble Shooting (Team_Flow) )

1) 개요 슬랙 연동으로 특정 이벤트 때 슬랙의 특정 채널에 알람이 발송되도록 코드 구현 2) 문제 발생슬랙 API를 가져와 연동 후 코드 작성를 하여서 테스트로 알람을 보내봤는데 코드 에러는 없으나 슬랙엔 알람이 안오는 문제 발생. 3) 해결해당 문제를 확인하기 위해 알람 내용과 알람 채널이 제대로 된 정보를 가져오는 지 확인해본 결과.알람을 보낼 채널명을 제대로 가져오지 못하는 것을 확인.properties 파일은 Spring에서 기본적으로 ISO_8859_1로 인코딩 되기 때문에 한글로 되어있는 채널명을 제대로 가져오지 못하여 해당 채널을 찾을 수 없어서 슬랙에 알람이 오지 않았던 것./ /해당 코드를 추가하여 ISO_8859_1을 UTF_8로 변경하여 채널명을 데이터를 똑바로 받을 수 있도록 변경..

TIL/Project 2025.02.27

TIL 2025-01-13 (Redis)

1 ) 학습한 내용Redis  Redis (Remote Dictionary Server)메모리 기반의 오픈 소스 데이터 구조 저장소매우 빠른 속도로 데아터를 처리할 수 있도록 설계되었으며, 캐싱, 메시징 브로커, 데이터베이스 등 다양한 용도Redis는 다양한 데이터 구조와 고성능 처리 능력을 제공 주요 특징메모리 기반모든 데이터가 메모리에 저장되어 초고속으로 데이터 접근이 가능데이터를 디스크에 지속적으로 저장하여 데이터 영속성을 보장 할 수 있다.다양한 데이터 구조String : 가장 기본적인 데이터 타입SET key "value"List : 순서가 있는 문자열 목록 (ex 대기열 구현)LPUSH key "value1" "value2"Set : 중복 없는 문자열 집합SADD key " value"Sort..

TIL/Spring 2025.01.13

[KPT 회고록] (project : Team-Flow)

1) KPT 회고록 : Team-FlowKeep- Github squash 사용- 쉬지 않는 소통(정보 공유, 의견, 토론 등등)- 모든 컨벤션을 잘 지키는 모습- 자신의 파트가 아니어도 공부 및 이해하려는 자세- 자신이 맡은 바의 책임을 다했다.- 팀원들Try- 시간이 더 있었다면 다른 도전 과제도 시도해보겠다.- 코드 최적화- 테스트 코드 시도- 배포 로그 확인하는 법Problem- 적은 팀원으로 인한 시간 부족으로 코드 리뷰를 잘하지 못했다.- 적은 팀원으로 인한 업무 증가로 일부 도전 과제를수행하지 못했다.   2) 프로젝트 팀원들 소감김세원 : 이번 팀 프로젝트를 하면서 의사소통과 서로 존중하고 존중 받는 것이 얼마나 소중한 지 느낄 수 있었던 기간이었습니다. 여러모로 감사한 시간이었던 것 같습..

TIL/Project 2024.12.31

TIL 2024-12-31 (Trouble Shooting (Team_Flow) )

1) 개요 AWS EC2와 RDS를 활용하여 Spring Boot 애플리케이션을 Docker 기반 CI/CD 파이프라인을 통해 자동 배포하는 프로젝트를 진행하는 과정에서 다양한 문제를 해결해야 했습니다. GitHub Actions를 활용하여 Docker 이미지를 빌드 및 푸시하고, EC2에 배포하여 RDS와 연동하는 방식으로 설계되었습니다. 그러나 배포와 실행 과정에서 여러 트러블이 발생하였고, 이를 해결하기 위해 CI/CD 구성, Docker 및 AWS 서비스와 관련된 다양한 설정 및 작업을 수행했습니다. 2) 문제 발생맨 처음 Dockerhub에 이미지를 저장할 땐 까지 큰 문제가 없었지만 푸쉬를 하여 CD를 진행하는 과정에서 바로 에러가 발생했다. deploy-to-ec2를 성공했지만 AWS EC..

TIL/Project 2024.12.31

TIL 2024-12-19 (Trouble Shooting (plus week) )

1 ) @NotNull?? (nullable = false)?? 개요플러스 주차 개인 과제 도중 nullable = false 의 제약 조건을 테스트를 하는 과제 도중 혼자 코드를 작성했지만 평소 테스트 코드를 작성하지 않기도 하고 발제를 정확히 이해하지 못하여 지금 작성한 테스트 코드가 맞는지 의문이 생겼다. 문제발생스스로 생각한 과제는 'status = null' 이면 예외처리를 하면 된다는 생각에 객체에 직접 데이터를 값을 입력해주어서 테스트 진행하다가 이렇게 객체에 데이터를 넣으면 무조건 null 값인데 굳이 테스트를 해야되는 이유를 모르겠어서 튜터님에게 상담 요청하였고 튜터님이 과제의 목적을 정확히 설명해주셨다.코드 수정 후 테스트 진행 중 코드의 문제점이 없다고 생각하였지만 계속해서 예외처리가..

카테고리 없음 2024.12.19

TIL 2024-12-17 ( 5주차 - 데이터베이스 다루기 )

1) 오늘 학습한 내용QueryDLSAuditing@Dynamicinsert@DynamicUpdate QueryDSLEntity의 매핑 정보를 활용하여 쿼리에 적합하도록 쿼리 전용 클래스(Q클래스)로 재구성해주는 기술.JPAQueryFactory을 통한 Q클래스를 활용할 수 있는 기능들을 제공.JPAQueryFactory?재구성한 Q클래스를 통해 문자열이 아닌 객체 또는 함수로 쿼리를 작성하고 실행하게 해주는 기술.JPAQueryFactory 사용을 위해서는 entityManager를 주입해서 Bean으로 등록해줘야 한다.// config 패키지안에 추가@Configurationpublic class JPAConfiguration { @PersistenceContext private EntityMan..

TIL/Spring 2024.12.17

TIL 2024-12-12 ( 4주차 - 데이터베이스 다루기 )

1) 오늘 학습한 내용CascadeorphanRemovalFetchJpaRepository페이징JPQL Cascade (영속성 전이)사용위치 : 연관관계의 주인 반대편 - 부모 엔티티 (N대1 에서 1), (OneToMany or OneToOne)양쪽 엔티티의 라이프 사이클이 동일하거나 비슷해야한다.옵션 종류 ALL : 전체 상태 전이PERSIST : 저장 상태 전이REMOVE : 삭제 상태 전이MERGE : 업데이트 상태 전이REFERESH : 갱신 상태 전이DETACH : 비영속성 상태 전이 orphanRemoval (고아 객체 제거)사용위치 : OneToMany or OneToOne에서 사용 - 부모 엔티티Cascade.REMOVE와 비슷한 용도로 삭제를 전파하는데 쓰인다.부모 객체에서 리스트 요소..

TIL/Spring 2024.12.12

TIL 2024-12-10 ( 2-3주차 - 데이터베이스 다루기 )

1 ) 오늘 학습한 내용DB(H2) 사용 방식트랜잭션DB Driver 역할 및 종류DB Driver 동작 방식JDBCMyBatisORM DB(H2) 사용방식Server Mode : 현업에서 사용하는 모드, 컴퓨터에 DB 엔진을 설치하고 엔진을 구동하는 방식In - memory Mode : 애플리케이션에 DB 엔진이 내장되어 에플리케이션과 함께 실행되고 종료되는 방식Embedded Mode : 인메모리와 같은 방식이지만 데이터를 로컬에 저장하기 때문에 휘발에서 자유로운 방식 트랜잭션DB의 상태를 변화시키기 위해서 수행하는 작업의 단위데이터 처리 중에 문제 발생시 그 전에 했던 변경을 아무일도 없는 것 처럼 모두 되돌림.3가지 특징원자성 (All or Nothing) : 모두 반영되던가 전혀 반영되지 않아야..

TIL/Spring 2024.12.10

[KPT 회고록] (project : 먹GO)

KPT 회고록1. Keep - 현재 만족하고 있는 부분 팀원들간의 피드백 (코드리뷰) 깃브랜치 나눠서 작업 (Master - Develop - feat/user, feat/admin, feat/store) 에러코드 공통화 적극적인 소통 패키지 도메인 단위로 나누기 enum 활용해 공통 String 처리2. Problem - 불편하게 느끼는 부분erd - api 명세서가 처음부터 제대로 되어있지 않아 생기는 의견 충돌에러코드 공통 작업으로 인한 충돌 -> merge 해야함erd 중요한 칼럼 순서대로 정렬상수 활용3. Try - Problem에 대한 해결책, 당장 실행 가능한 1) 설계 더 신경 쓰고, 시간을 투자해보기2) api 명세서 쓸 때, 미리 생각하고 공통 코드로 작성! -> 혼자 관리3) pk -..

TIL/Project 2024.12.09

TIL 2024-12-08 (Trouble Shooting (먹GO) )

1.  Cookie 역직렬화 1) 개요쿠키에서 장바구니 데이터를 읽어와 객체로 변환하는 방식을 구현하려고 하였고 처음엔 단순한 형변환으로 데이터를 저장할 수 있다고 생각하였지만 파싱이란 개념을 몰라 문제가 발생하였다. 2) 문제 발생// 처음에 생각한 방법List basket = (List) basketCookie.getValue();문제 1.처음엔 단순한 형변환으로 데이터를 저장할 수 있다고 생각하였다. 하지만 여기서 ClassCastException 이라는 exception이 발생하는데 쿠키 값은 단순 문자열이기에 이를 Java 객체로 직접 변환하려고 발생하는 에러인 것을 알았다.문제 2.쿠키 값은 JSON 형식이므로 JSON 데이터를 처리하지 않으면 문자열 데이터인데 쿠키 값을 그대로 사용하려고 하..

TIL/Project 2024.12.08