[구름 프로펙트 부트캠프] 클라우드 엔지니어링 1기 수료 후기 (25.1.31 ~ 25.4.3) - (1) 지원 절차, 장단점
·
기타/2025 프로펙트 부트캠프(1차) | 클라우드 엔지니어링
goorm에서 진행하는 단기 부트캠프 - 클라우드 엔지니어링 1기 수료 후기입니다!1. 구름 프로펙트 부트캠프?goorm에서 진행하는 KDT 단기심화 교육과정(클라우드 엔지니어링 1기) 단기심화(약 2달) 과정이기에교육 없이 프로젝트 진행으로만 이루어진다는 특징이 있다! 오프라인 교육장에서 매일 오전 9시 ~ 6시까지 진행된다.(판교 교육장이었는데, 2기부터는 강남 교육장에서 진행된다 들었다.) https://profect.goorm.io 프로펙트이론을 넘어 프로젝트로 도달한 프로페셔널의 영역. 혼자가 아닌 팀과 함께 다음 단계로 넘어가세요.profect.goorm.io2. 지원한 이유?프로젝트 경험이 부족하다 생각해 지원하게 되었다.그동안 지식을 쌓아왔지만, 지식을 프로젝트에 활용한 경험이 적었기 때문..
[스프링부트] 디스코드 웹훅 (2) - API call 알림 (Interceptor, FeignClient)
·
백엔드
지난 시간에는 서버 500 Internal Server Error를 디스코드 서버로 전송해줬다. 이번 시간에는 백엔드 API call을 디스코드로 전송해보자!⭐️ 배경🙋‍♀️(프론트엔드) 흠... 한 화면(페이지) 접속 시, 몇 개의 API가 호출되는지 궁금해요🙋‍♀️(프론트엔드) 백엔드 분들, API 로그 확인해주실 수 있을까요? 🙋‍♀️(백엔드) 물론이죠! 잠시만 기다려주세요 백엔드 동료의 빠른 조치 덕분에,API call 시 로그를 콘솔을 통해 확인할 수 있었다.  ✅ 동료의 조치 방법기존 스프링부트 실행 시, API call 발생 시 log가 발생하지 않는다.➔ Spring Intercept를 이용해 API Call 발생 시, HTTP 요청을 가로채 log로 남긴다  ✅ 나의 발전🙋‍♀️ ..
[스프링부트] 디스코드 웹훅 (1) - 에러 로그 전송 (logback)
·
백엔드
⭐️ 배경프로젝트 진행 중,🙋‍♀️ 프론트엔드: 백엔드 분들.. '500 Internal Server Error' 떴어요 ㅜㅜ  아!프론트엔드는 백엔드 API 를 호출하는 사용자 입장이기 때문에,내부 Log는 살펴볼 수 없다는 단점이 있다 (이 때문에 약 1시간 삽질하셨다고 한다...) 🙋‍♀️백엔드: 히힛 에러 코드(400번대) 노출 안해야 외부 위협에 안정적이겠지?🙋‍♀️프론트엔드: 또 500 에러네... 뭐가 문제지? 문제를 해결하고자'백엔드 스프링부트 서버 에러를 디스코드로 전송하자'는 목표를 세웠다.⭐️ 환경백엔드 환경은 다음과 같다. ⭐️ 디스코드 웹훅'백엔드 스프링부트 서버 에러를 디스코드로 전송하자'라는 목적을 달성하기 위한 방법으로 디스코드 웹훅을 선택했다. ✅ 웹훅?- 웹 서비스(..
[DB 해킹] MySQL DB 털린 썰 풉니다 (RECOVER_YOUR_DATA)
·
백엔드
배경프로젝트 수행 중, 팀원의 알림을 받았다! 🙋‍♀️프론트엔드에서 API 요청 날렸는데, 에러가 뜨네요 ~  EC2에 평화롭게 접속해 서버 로그를 확인하니..DB에 문제가 있는 것을 발견했다 mysql에 접속해 로그를 살펴보니없다!DataBase가 없다! DB 해킹mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || RECOVER_YOUR_DATA || mysql || performance_schema || sys |+--------------------+5 rows in set (0.00 sec) REC..
MySQL 연결 - characterEncoding=utf8mb4 쓰지 마세요!
·
백엔드
요약utf8mb4로 인코딩된 데이터에 접근하고자 할 때, jdbc:mysql://{db주소}?useUnicode=true&characterEncoding=utf8mb4대신jdbc:mysql://{db주소}?useUnicode=true&character_set_server=utf8mb4 쓰세요! 또는,이미 DB서버의 my.cnf 파일을 character_set_server=utf8mb4로 설정했다면jdbc:mysql://{db주소}?useUnicode=true또는jdbc:mysql://{db주소}?useUnicode=true&characterEncoding=utf8로 접근하세요! + Java 인코딩 - MySQL 인코딩 매핑 테이블  배경백엔드 -> DB서버에 접속하도록 설정했다. 특히 applicatio..
[스프링부트] Soft delete 구현
·
백엔드
배경현재 프로젝트를 진행하고 있는데,30일이 지난 탈퇴처리 계정을 영구삭제하는 작업을 하려 한다! 즉, 이 두 가지를 구현해야 한다. 1. soft delete 구현2. soft delete 이후 30일이 지나면 실제 영구 삭제 구현1. soft delete 구현soft delete란?DB에 데이터를 실제로는 삭제하지 않고,사용자는 데이터에 접근 불가하도록 조치한 것을 말한다. 이게 왜 필요한가? 하면 사용자가 탈퇴 요청을 하고난 이후,10일 후 완전히 탈퇴되는 경우가 있을 수 있다. 이외에도 분석할 가치있는 유의미한 데이터는 soft delete하여 보존한다고 한다(물론 개인정보 보호 약관에 적혀있는 대로 보존해야한다) 그렇다면 hard delete는실제로 DB에서 데이터를 삭제하는 것을 말한다.  이..
[스프링부트] Spring Batch와 적용방법
·
백엔드
배경프로젝트 진행 중, Spring Batch를 적용해야 했다.정확히는 매 0시마다 DB에서 특정 데이터를 삭제해야 했다. (soft delete 된 데이터 영구삭제 구현)Spring Batch란?- 배치 프레임워크- 대용량 데이터 처리에 필수적인 기능 제공 (로깅, 추적, 트랜잭션 관리, job 프로세싱 통계, job 재시작, 스킵, 리소스 관리 등) Sprinb Batch Architecture  JobLauncherJob을 실행하는 주체 Job전체 배치 프로세스를 캡슐화한 엔티티여러 개의 step으로 구성@Beanpublic Job footballJob() { return this.jobBuilderFactory.get("footballJob") .start..
MySQL 한글 (인코딩) 에러 났을 때 해결방법
·
백엔드
요약1. /etc/my.cnf 파일 수정2. mysql 접속 후 DB Character Set 수정3. mysql 접속 후 Table column의 collation 수정4. DB 접속 시 인코딩 지정배경스프링부트를 이용해 백엔드 서버를 제작했고, MySQL DB 서버를 제작했다. 이때, API request body에 한글이 들어가면백엔드 서버에 이런 Incorrect String Value 에러가 뜬다 !! 개발환경DB 서버 -  mysql server 버전 5.7.44OS - Linux CentOS에러 원인mysql 인코딩 문제때문에 한글을 인식하지 못해 발생한 문제이다!해결 과정1. /etc/my.cnf 파일 수정 파일을 write할 수 있도록 권한을 상승시키자sudo chmod 666 /etc/..