개인 프로젝트를 진행하며 데이터베이스를 설계하던 도중 DATETIME vs TIMESTAMP 중에 날짜 데이터를 저장할 타입을 고민하게 되었다. 기존에 나는 TIMESTAMP가 효율적이라고 알고 있었지만, 백엔드 개발 환경(특히 JPA)과 서비스의 성격에 따라 DATETIME이 더 적절한 선택지가 될 수 있다는 점을 배울 수 있었다. 1. DATETIME vs TIMESTAMP 핵심 차이점구분DATETIMETIMESTAMP저장 범위1000년 ~ 9999년1970년 ~ 2038년 (한계 존재)저장 크기약 5~8 bytes약 4~7 bytes (상대적 절약)타임존 변환입력된 값 그대로 저장UTC로 변환하여 저장 (글로벌 유리)인덱스지원함지원함쿼리 캐시캐싱 가능캐싱 불가능 (주의) 2.왜 TIMESTAMP가 ..
6개월 한화 부트캠프가 끝난 뒤 취업 시장에 나섰지만 눈에띄는 결과는 없었다.아직 실력과 프로젝트 경험이 부족하다 생각하여 찾아보던 중에 구름에서 진행하는 프로펙트 과정을 알게되었다.신청 + 면접을 통해서 합격하게되었고 기존에 만들어두었던 포트폴리오를 제출해서 코딩테스트는 따로 보지 않거 들어왔다.팀은 이미 배정이 되어있었다. 새로운 팀을 만나 이커머스 개발을 목표로 기획단계부터 mvp 기능 개발을 했다.팀 내에서 채팅기능 담당하게 되었고 cs지식과 웹소켓에 대한 지식이 없던터라 강사님과 팀원들의 조언을 받아가며 기능을 완성할 수 있었다.초반 팀장님을 중심으로 각자 구현할 기능을 정할 때 현재 자신이 갖고있는 역량보다 한단계 더 up할 수 있는 것들로 개발하자고 얘기했던게 생각난다.지금 돌이켜보면 처음 ..
이커머스 프로젝트를 시작하면서 채팅 도메인을 담당했다. 통신에 대한 기본적인 개념을 찾아보며 공부한 내용 정리차 써본다. 들어가기 앞서 구현하고자 하는 기능에 대한 분석을 우선했다. 1. 채팅 기능 분석 - 대화 단위 : 채팅방(1:1, 그룹, 시스템룸 등), 메시지(본문, sender, 보낸시각, 타입, 상태(전송/전달/읽음)의 개념 존재- 실시간성 : 서버 클라이언트의 양방향 통신이 가능해야하며 연결을 지속해서 유지하고 대화 순서를 보장할 수 있어야 함- 신뢰성/품질 : 채팅방 중복 방지, 재전송/오프라인 큐, 읽음 미확인 수 고려- 부가 기능 : 접속/타이핑 표시(Presence), 검색/핀/북마크, 미디어 업로드(S3 등), 신고, 차단, 필터링 위 내용 중 실시간성에 초점을 두고 전송 방식을..
알고리즘 공부하며 파이썬을 처음 접했다.문제풀며 나왔던 문법들을 하나씩 정리해놓자. 문자열 대소문자 변환text.upper() #모두 대문자text.lower() #모두 소문자text.capitalize() #첫 글자만 대문자text.title() #단어별 첫 글자 대문자text.swapcase() #대문자소문자 반전 문자열 이어붙이기s1 + s2 #문자열합치기f"{s1}{s2}" #f-string"".join([s1, s2]) #join활용문자열 - 정수 변환int("123") #문자열 -> 정수str(123) #정수 -> 문자열문자열 반복"Hi" * 3 #HiHiHifor ch in "abc": #문자열 하나씩 반복 print(ch)zip() 활용for a, b in z..
이번 포스팅은 팀 프로젝트로 진행한 Vue + Spring Boot 기반 ERP 시스템의 로그인 연동 기능을 리팩토링하면서 겪었던 문제들을 정리한 내용입니다.이 로그인 로직은 제가 직접 처음부터 구현한 것은 아니고, 기존 팀원이 작성한 Spring Security + JWT 인증 구조를 공부하면서 연동 흐름과 구조를 파악하는 과정에서 코드를 수정하였고 해당 부분에 대해 경험한 트러블슈팅을 기록한 것인데요,처음에는 단순한 404 오류라고 생각했지만, 실제로는 포트 충돌, 필터 매핑 누락, 비밀번호 암호화 미스매치 등 다양한 이슈들이 얽혀 있었어요. 해결 과정에서 Spring Security 필터 체인과 JWT 인증 처리 방식에 대해 많은 것을 배울 수 있었기에 간단히 기록해두고자 합니다! 문제 상황프론트..
프로젝트 코드 리팩토링 중에 Swagger를 활용해서 API를 정리하게 되었어요. 하나씩 정리하며 까먹지 않기 위해 + 정보 공유를 위해 블로그에도 기록해두고자 합니다. [간단 목차]- Swagger 소개- 설정 방법- 활용법 1. Swagger란?Swagger는 REST API를 문서화하고 웹 UI로 테스트 할 수 있게 도와주는 도구인데요,Spring Boot에서는 springdoc-openapi 라이브러리를 통해 Swagger UI를 연동합니다.개발에 필요한 API명세를 별도로 작성하지 않아도 컨트롤러와 DTO에 기반해 자동으로 문서화가 되기 때문에 개발자, 디자이너, 테스터 등 모두와의 커뮤니케이션을 시각적으로 도와주는 도구로 주로 활용됩니다. 2. 설정방법1) 의존성 추가 (Gradle) (최신 ..
회고를 꽤나 긴 텀을 두고 쓰게 됐다.그간 정말 많은 일이 있었고 그 가운데 성숙해진 부분도 많다 느낀다. 지금 무엇보다 집중하는 부분은 final 프로젝트가 시작되었다는 것, 그리고 예전이라면 시도하지 않았을 것들을 하고 있다는 것이다.운이 좋게도 첫 프로젝트 때 같이 팀을 했던 팀원들과 최종 때도 만나게 되었다.ERP 프로그램에서 인사쪽을 개발하게 되었고, 기획-개발-배포-최종발표까지 이루어지는 모든 과정들이 한달 반 안에 이루어져야 한다.어찌보면 막막하게 느껴지는 반면, 한달 반 안에 정말 많은 부분을 배우고 성장할 수 있는 기회라고 생각한다. 수료까지 이제 30일 남은 시점과 수료한 뒤를 기록해두자 한다. 단순히 프로그램을 잘 개발했다는 것에 의의를 두기보다 한달 반동안 유능한 팀원들과 협업을 ..
봄이오조 고생 많았어요.. 2주만 더 힘냅시다.. 애정합네다.. 🤍 [봄이오조 백엔드 프로젝트]https://github.com/Jooahyeon/be14-2nd-springiscomming-marktory.git 배운내용 HTMLCSS Keep 봄이오조 팀: 촉박한 일정에 모두가 초집중하여 백엔드 프로젝트를 끝냈다. 주말과 평일 며칠을 밤새며 본인을 내려놓고 프로젝트에만 몰두해준 팀원들이 존경스러웠고 미리 대비하지 못해 모두를 힘든 일정으로 밀어붙인 것 같아 죄송스러웠다. 오는 2주는 차근히 부지런히 마쳐서 팀이 밤새는 일 없도록 컨디션을 잘 조절하며 개발할 수 있는 환경으로 만들어보고 싶다.Problem 프로젝트를 하다보니 의도치않게 침묵이 이어질 때가 종종 있었다. 내 침묵이 팀 분위기에 부정..
주말 내내 팀원들과 함께 프로젝트를 했다. 모님이 찍어주신 사진이 청춘드라마의 한장면 같아 맘에 들어 올림~배운내용 MSASpring SecurityJPARest-APIEureka Server Keep 개발도 인성도 무언가를 계속 꾸준히 배우고 있다는 것..에 의미를 두고싶은 한 주다.Problem 수업을 듣고 한번에 입력이 되는 두뇌였음 좋겠다. 수업을 듣고 촘촘히 복습할 여유가 없어 아쉽다.Try 일단 현재 진행하는 백엔드 프로젝트에 집중하고 있다. 백엔드 프로젝트가 끝나면 로그인은 꼼꼼히 복습해봐야지. Resolution지금 할 수 있는 것을 하자