동생이 우리 집에 자주 놀러 오는데, 그때마다 "언제 놀러 오는 거야?", "언제 와서 언제 나가?"라는 질문을 계속 해야 했다. 이 과정을 반복하는 것이 너무 불편해서 사이드 프로젝트로 '우리집 예약 시스템'을 만들기로 했다. 사용한 테크 스택DB: MySQLBE: Java 17, Spring, jOOQFE: Next.js (v0.dev의 도움을 받았다)사내에서 JPA도 물론 사용하지만, jOOQ도 사용해보게 되었는데, jOOQ만의 매력이 있는 것 같아 사이드 프로젝트를 하면 꼭 사용해보고 싶었다. 카카오톡 알람으로 서로에게 알람 메시지를 보내려고 했는데, 이 부분은 회원가입이 이미 되어있는 유저들만 가능 해서 개발 하는 시간 내에 구현을 다 하지 못할 것 같아 빠르게 구현하기 위해 나에게 채팅 보내기..
API 요청을 제어하려면 Rate Limiting(속도 제한) 이 필요합니다.이 글에서는 API를 "1분 이내 30번 요청 가능하지만, 24시간 동안 최대 30번만 허용"하는 Bucket4j의 정책을 설정하는 방법을 다룹니다.*Bucket4j을 도입하는 방법을 설명하는 것은 아닙니다.🧐 Rate Limiting이란?Rate Limiting(속도 제한)은 특정 시간 동안 허용할 요청 수를 제한하는 기술입니다.예를 들어:"1분에 60개의 요청 가능" (API 남용 방지)"24시간 동안 100개의 요청 가능" (과도한 사용 제한)이러한 제한을 적용하면 서버 부하를 방지하고, 공정한 API 사용을 보장할 수 있습니다.🛠 Bucket4j로 정책 설정하기Bucket4j는 토큰 버킷(Token Bucket) 알고..
새로 개발 중인 기능에 필요한 데이터 구조를 양방향 엔티티로 설계하게 되었습니다. 그런데 이 과정에서 양방향 참조로 인해 재귀 호출 문제가 발생하였고,이를 해결할 방법을 찾아보게 되었습니다. 예시 코드들은 업무와 무관하게 작성되었습니다. 문제 상황Category와 Product 엔티티는 양방향 연관관계를 가지고 있습니다. 예를 들어, Category는 Product의 리스트를 가지고 있고, Product는 다시 Category를 참조하는 구조입니다. 코드로 나타내면 다음과 같습니다.@Entity@Table(name = "category")public class Category { @Id private Long id; @OneToMany(mappedBy = "category", casca..
대규모 서비스와 관련된 책 중에 유명한 책으로 알고 있는데, 마침 회사에 책이 있기에 읽어 보았습니다.읽는 데는 2주 반정도가 소요 되었습니다. 『웹 개발자를 위한 대규모 서비스를 지탱하는 기술』은 일본의 유명 웹사이트 하테나(Hatena)의 변천사를 다루며, 대규모 서비스를 구축하고 운영하는 데 필요한 기술과 인사이트를 전달하는 책입니다. 주요 내용 및 느낀 점이 책은 대규모 데이터를 다룰 때 필수적으로 알아야 할 세 가지 전제 지식을 바탕으로 얘기를 해줍니다.OS 캐시의 이해서버 분산과 RDBMS 운용대규모 환경에서의 알고리즘과 데이터 구조 활용 특히 하테나가 포털 사이트로서 시스템을 어떻게 구축했는지 자세히 설명하고 있어서, 현재 포털 사이트를 운영하는 회사에 다니고 있기에 정말 흥미롭게 읽을 수 ..
벌써 신입 개발자로서 업무를 시작한 지 1개월이 다 되어갑니다. 2024년은 저에게 정말 많은 일이 있었던 한 해였습니다.이를 되돌아보며 회고 겸 블로그 글을 작성해 보기로 했습니다. 개발자라면 주기적인 회고를 통해 자신을 점검하는 게 중요하다고 생각하는데요, 이번 기회를 계기로 앞으로 꾸준히 회고 글을 올릴 수 있으면 좋겠습니다.1월~3월사실 처음 이야기하는 것이지만, 작년 12월에 우아한테크코스와 42에 지원했던 적이 있었어요. 물론 42에서 보낸 한 달은 즐거웠지만,함께했던 친구들 중 저만 불합격한 사실이 ‘내가 과연 개발자를 할 수 있을까? 공무원을 그만둔 게 잘못한 선택이었나?’ 하는 자괴감에 빠져 지냈습니다. 그리고 우아한 테크 코스 프리 코스를 함께 공부했던 스터디 원들과 함께 동아리(취지직..
스프링 배치 스터디가 처음이자 마지막(?)으로 오프라인 모임을 갖게 되었습니다. 11월 30일 토요일(8회차)에 진행되었는데요,시간이 꽤 지나 기억이 흩어지긴 했지만... 늦기 전에 기록해두고 싶어서 이렇게 글을 쓰게 되었습니다. 😊 스터디 순서는 다음과 같이 진행 되었습니다.인사말8주차 스프링 배치 스터디특급 게스트(김남윤)님의 스페셜 세션특급 게스트(향로, 김남윤)님들의 개발자 Q&A 토크스프링 배치 퀴즈(진행 될 예정이었으나 시간 관계상 생략)중간 시상스터디원 단체 사진네트워킹: 피자 먹으면서 얘기하기 처음에 딱 들어갔을 때 배치가 완전 발표자를 기준으로 둥글게 되어있었는데,완전 면접하는 느낌(??)이어서 절대 발표자가 되면 안됐으면 좋겠다고.... 빌었습니다 ㅋㅋㅋㅋ 😂 대망의 발표자 뽑기 ..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. 원본: [SpringBatch 연재 10] 스프링배치 플로우 컨트롤 하기 [SpringBatch 연재 10] 스프링배치 플로우 컨트롤 하기 devocean.sk.com Spring Batch에서 flow 컨트롤은 Job 내에서 Step들의 실행 순서와 조건을 제어하는 기능입니다. FlowBuilder API를 사용하여 설정할 수 있습니다. 주요 APIFlow 컨트롤을 위해 Spring Batch에서 제공하는 주요 API들은 다음과 같습니다.next(): 순차적으로 Step들을 연결시킬 때 사용합니다.on(): 특정 Ex..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.