전체 글 59

SQUARE of TOSS - 10 to 100

2025 Square of Toss안녕하세요, 최근 토스의 대표적인 개발자 컨퍼런스인 "Square of TOSS 2025"에 다녀왔고, 이번 글에서는 행사에서 얻은 기술적 인사이트와 토스의 개발 문화에 대해 정리해보려고 합니다. 컨퍼런스 참석 전 토스는 국내 최고의 핀테크 기업 중 하나로, 빠른 실행력과 탄탄한 기술력을 바탕으로 급성장한 회사입니다. 그렇기 때문에 "토스에서 개발자로 일하면 어떻게 성장할 수 있을까?", "토스의 개발 문화는 무엇이 다를까?" 하는 궁금증이 많았습니다. 특히, 이번 세션의 주제인 "최고의 완성도를 지향하는 '장인 정신'과 성장의 토양이 되는 '실패 문화'"는 저에게 매우 흥미로운 주제였습니다. 개발자로서 어떻게 실력을 키우고, 주어진 환경 속에서 더 좋은 코드를 만..

JIRA 강의 초기 기획

1. 목표 설정누가 이 강의를 들어야 할까? (예: JIRA를 처음 쓰는 개발자, JIRA를 활용해서 애자일(스프린트)로 프로젝트 하고 싶어하는 학생)이 강의를 들으면 무엇을 할 수 있게 될까?예:JIRA에서 이슈를 만들고 관리할 수 있다.애자일 보드를 세팅해서 팀의 업무를 체계적으로 정리할 수 있다.스프린트/백로그/버전 관리 등 실무에서 사용하는 기능을 익힌다.2. 커리큘럼 구성 (목차 만들기)강의를 듣는 사람이 처음부터 차근차근 따라갈 수 있도록 단계별로 구성 (정의 / 실습)예시:JIRA란 무엇인가?JIRA 기본 용어 정리 (이슈, 프로젝트, 워크플로우 등)이슈 생성/관리 실습프로젝트 보드 구성하기 (칸반/스크럼)백로그/스프린트/릴리즈 관리팀 협업 팁 (필터, 대시보드, 알림 등)실무 예제: 소규모..

나를 소개 2025.04.12

JIRA 가이드 라인 및 효율성 정리

Jira 가이드라인1. 💡 이슈 등록 (Backlog)작업은 무조건 Jira 이슈로 시작합니다.제목은 명확하게, 예: USER - AOP 마스터권한 기능, Auth - JwtTokenProvider 구현할 일 단위로 쪼개서 작성합니다. (작업 단위: 1~2 / 3~4일 이내 권장)이슈 클릭해서 첫 시작기간 및 마감기간 꼭 체크해주기!담당자 지정 & 우선순위 설정2. 💡 이슈 생성 후 (Issue)백로그에 이슈 생성 후, 이슈 클릭담당자 선택설명 - 간략하게 넣기 (대영 튜터님 예시 참고)Start date(시작 기간 선택)기한 (마감 기간 선택)상위항목 - 각 도메인에 맡는 타임라인 선택(각 도메인에 대한 타임라인이 없으면 타임라인 생성 후 진행)Team 선택그러고 타임라인에서 확인 (이건 자율)3...

나를 소개 2025.04.05

4계층 아키텍처 VS 헥사고날 아키텍처

보통 계층형 아키텍처로 4계층 아키텍처(4-Layer)로 패키지 구조를 잡고 진행하다가 마지막 프로젝트 헥사고날 프로젝트로 진행✅ 4계층 아키텍처 (Presentation, Application, Infrastructure, Domain)의 효율적인 점- 역할 즉, 관심사를 명확히 나눠서 유지보수와 테스트가 쉬워지고, 코드의 변경에 강해서 유연한 확장이 가능관심사의 분리(Separation of Concerns)→ 각 계층의 역할이 명확하여 코드 구조가 직관적이고 유지보수가 쉬움유연한 변경과 확장→ 비즈니스 로직(Domain)과 기술 구현(Infrastructure)이 분리되어 변경에 강함테스트 용이성→ 의존성 주입과 계층 분리 덕분에 단위 테스트, 통합 테스트 작성이 수월함모듈화 및 재사용성→ 도메인 ..

트랜잭션 관리 → MSA에서 데이터 일관성을 보장하는 방법 SAGA (Orchestrator) - 테코톡 2차 자료조사

4. [민수님] Saga (2) + 마지막 비교Saga 코레그로피 정의 및 개념코레그래피의 장단점활용 주문을 예를 들어서코드로 표현 (예제 중하나)시각화마지막 비교 ( Saga1 vs Saga2)혹시 모르니 추가마이크로서비스의 독립적인 분산 트랜잭션 처리를 지원하는 패턴이 바로 사가(Saga) 패턴이다. 사가 패턴은 각 서비스의 로컬 트랜잭션을 순차적으로 처리하는 패턴이다. 사가 패턴은 여러개의 분산된 서비스를 하나의 트랜잭션으로 묶지 않고 각 로컬 트랜잭션과 보상 트랜잭션을 설정해 비즈니스 및 데이터 정합성을 맞춘다. 즉 로컬 트랜잭션은 자신의 데이터를 업데이트 한 다음 사가 내에 다음 로컬 트랜잭션을 업데이트 하는 트리거 메시지를 게시해서 정합성을 맞춘다. 다른 트랜잭션이 실패해서 롤백이 필요한 경우..

트랜잭션 관리 → MSA에서 데이터 일관성을 보장하는 방법 SAGA (Orchestrator) - 테코톡 1차 자료조사

트랜잭션이란?트랜잭션(Transaction)은 데이터베이스에서 하나의 작업 단위를 의미하며, 다음의 4가지 특성(ACID)을 만족해야 합니다.Atomicity (원자성): 모두 성공하거나 모두 실패해야 함Consistency (일관성): 트랜잭션 전후 상태가 데이터베이스 규칙을 위배하지 않음Isolation (격리성): 동시에 수행되는 트랜잭션들이 서로 간섭하지 않음Durability (지속성): 트랜잭션이 성공하면 그 결과는 영구히 저장됨단일 DB vs 분산 트랜잭션 비교구분단일 DB 트랜잭션분산 트랜잭션구조하나의 DB에 의존여러 DB, 여러 마이크로서비스장점ACID 쉽게 보장 가능MSA 구조에 적합단점서비스 분리 어려움성능 저하, 복잡성 증가트랜잭션 방식DB 자체 트랜잭션2PC, SAGA, 이벤트 기..

CHAP.02 : MSA Project Day06 - SCRUM

어제 작업, 금일 작업, 내일 작업장소 : ZEP 참여자 : 정민수, 이수연, 정아현, 박준혁 어제 작업✅ 각자 맡은 모듈 개발 진행 금일 작업 ✅ 금일 작업 내용 ✅ JIRA 사용법 숙지이슈 클릭 후 시작 기간, 작업 기간 체크이슈 막대를 링크 연결하여 진행 상황 시각화하위 이슈로 작업 시 보드 라인에 표시되지 않음 참고✅ COMMON 공통 모듈 역할 정리API 응답 표준화 → CommonResponse를 통해 일관된 성공/실패 응답 반환Spring Security 기반 사용자 인증 → CustomUserDetails 사용 (UUID 기반 사용자 식별)JPA 감사 기능 → JpaAuditingConfig 및 UserAuditorAware 활용하여 @CreatedBy, @LastModifiedBy 자동 ..

CHAP.02 : MSA Project Day05 - SCRUM

어제 작업, 금일 작업, 내일 작업장소 : ZEP 참여자 : 정민수, 이수연, 정아현, 박준혁 어제 작업✅ 각자 맡은 모듈 개발 진행 금일 작업✅ 본인 상황 공유 진행 현황🔹 수연📌 담당 도메인: Order, Delivery, Shipper도메인별 필요한 파일 구성 완료 (아주 기본적인 구조만 잡아둠)모든 로직을 디테일하게 수정해야 함예) QueryDSL(검색), FeignClient(타 도메인 요청/응답) 등의 구현 필요필요하면 각 도메인별 브랜치(feat/order, feat/delivery, feat/shipper)에 push 예정 (현재는 commit만 진행)📌 FeignClient 활용 - 타 도메인 요청사용자 정보 필요shipper → hub, userorder → company, pro..

CHAP.02 : MSA Project Day04 - SCRUM

어제 작업, 금일 작업, 내일 작업장소 : ZEP 참여자 : 정민수, 이수연, 정아현, 박준혁 어제 작업✅ 초기 개발 셋팅 금일 작업✅ 본인 상황 공유✅ 각자 맡은 부분 (FeignClient 제외하고) 개발 진행 📦 application ├── 📂 dtos │ ├── 📂 request │ ├── 📂 response ├── 📂 exception📦 domain ├── 📂 entity ├── 📂 repository │ ├── JpaRepository📦 infrastructure📦 presentation ├── 📂 controller 전체 조회 및 검색 기능전체 조회: 기존 API URL 사용 → /api/v1/shippers검색 기능 추가: 파라미터 방식 적용 → /api..