본문 바로가기

전체 글7

1인 커머스 플랫폼 개발기 #02 - 기술스택 선정 MVP 범위와 확장을 위한 설계 원칙을 정했으니, 이번 글에서는 실제로 어떤 기술 스택으로 개발할지 정리해 보겠습니다.프론트엔드1. 언어 - TypeScript프론트엔드 언어 후보는 JavaScript와 TypeScript 두 가지였고, TypeScript를 선택했습니다. TypeScript의 장점은 다음과 같습니다.null safety, 타입 강제 변환에 의한 에러 등을 런타임이 아닌 컴파일 타임에 감지할 수 있습니다.타입 정보가 코드의 문서 역할을 해서 코드 가독성이 올라갑니다.함수 시그니처나 객체 타입의 구조를 변경했을때 관계된 다른 코드에 문제가 생기지 않는지 컴파일러가 자동으로 검사해 주므로, 수정 비용이 낮아집니다.커머스 플랫폼은 코드베이스가 매우 커질 가능성이 높고 실제 사용자에게 배포될 애.. 2026. 5. 3.
1인 커머스 플랫폼 개발기 #01 - MVP 기획 플랫폼 특징 정하기커머스 플랫폼을 개발하기로 결정한 후, 한국에서 성공적으로 운영 중인 커머스 플랫폼들을 살펴보니 크게 두 갈래로 나눌 수 있었습니다.범용 커머스 플랫폼: 쿠팡, 네이버 쇼핑, 11번가특화 커머스 플랫폼: 무신사(의류), 당근마켓(중고), 오늘의 집(셀프 인테리어), 아이디어스(핸드메이드)평소 잘 아는 분야가 있었다면 그쪽 분야 특화 커머스 플랫폼(자전거 용품, 전자제품 등)으로 정했겠지만, 개발 외에는 딱히 익숙한 분야가 없었습니다. 마침 사는 곳 근처에 코스트코가 있어서, 초기 판매자 확보 전 직접 테스트 판매자로서 활동해 보기에 좋겠다는 생각이 들었고 추후 좋은 아이디어가 생기면 해당 제품군 특화 서비스로 개편할 수도 있다는 점에서 일단은 범용 커머스 플랫폼으로 방향을 정하게 되었습.. 2026. 5. 1.
1인 커머스 플랫폼 개발기 #00 - 시작하며 쿠팡, 11번가 같은 커머스 플랫폼을 개발해보려 합니다.온라인으로 물건을 판매하는 서비스를 커머스(e-commerce)라고 하고, 사이트 관리자 외에 다른 사용자들도 입점하여 판매할 수 있으면 커머스 플랫폼이라 부릅니다. 개발자로서 언젠가 사이드 프로젝트를 운영해보고 싶었는데, 마침 휴직 중인 지금이 좋은 시기라 생각되어 시작해 보기로 했습니다. 프로젝트의 도메인을 커머스 플랫폼으로 정한 이유는 다음과 같습니다.기술적 도전이 가장 많을 것 같다는 점 (결제, 정산, 검색, 상품 추천 알고리즘 등) 포트폴리오로서 가치가 있을 것 같다는 점 (한국에서 성공적으로 운영 중인 서비스들 중 커머스 플랫폼이 많음)수익화가 가장 수월할 것 같다는 점 (사용자가 이용료를 지불하는 게 아니라, 발생한 수익의 일부분을 나.. 2026. 5. 1.
JWT 토큰에 대해 JWT 토큰이란?JWT 토큰은 Json Web Token의 약자로, 웹 통신 시 클라이언트의 인증에 사용되는 JSON 형태의 토큰 값입니다.최근, 서버 측에서 토큰 인증 방식으로 요청을 보낸 클라이언트의 신원을 확인할 때 JWT토큰을 많이 사용합니다. Session 기반 인증과는 다르게JWT토큰을 사용한 인증 시, 서버측에서 별도의 DB 조회가 필요 없어 효율적이라는 장점이 있습니다.JWT 토큰의 구조eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwicm9sZXMiOlsiUk9MRV9BRE1JTiJdLCJleHAiOjE3NTA4MjYyODgsImlhdCI6MTc1MDczOTg4OH0.cSW65JDV0wTpSIfQV4KPE8k.. 2025. 6. 29.
관계형 DB를 설계할 때 알아두면 좋을 것들 오늘은 관계형 DB를 설계할 때 알아두면 좋을 것들에 대해 설명해 보겠습니다.기본키는 serial 타입을 사용테이블에는 id라는 이름으로 serial 타입의 인공키(surrogate key)를 기본키로 사용하는 것이 좋습니다. 인공키같은 기본키 용도의 별도의 속성을 두지 않고 기존 속성 중 하나를 골라 기본키로 사용할 수도 있겠지만 인공키를 사용하면모든 테이블이 동일한 형태의 기본키를 사용하므로 가독성이 향상됩니다. (모든 테이블의 기본키 속성 이름은 id라는 것이 보장됨)인공키를 사용하지 않는 경우, 기본키 속성 변경에 의해 기존 기본키를 참조하던 테이블들의 외래키 설정을 바꿔야 하는 경우를 예방할 수 있습니다.대부분의 RDBMS에서는 기본키에 자동으로 인덱스 설정이 적용됩니다. serial 타입의 인.. 2025. 3. 20.
Java의 equals와 hashcode메서드 이해하기 Java 프로그래밍을 하다 보면 Object 클래스의 equals()와 hashCode() 메서드를 종종 보게 됩니다.이 두 메서드는 단순해 보이지만, 올바르게 이해하고 사용하지 않으면 예상치 못한 버그를 유발할 수도 있습니다.오늘은, 이 두 메서드의 목적과 관계에 대해 한 번 알아보겠습니다. equals() 메서드 - 논리적 동등성의 기준Java에서 객체 비교를 이야기할 때 두 가지 관점이 있습니다:물리적 동등성(Reference Equality): 메모리 상에서 동일한 위치(동일한 참조)를 가리키는지. ('==' 연산자를 사용하여 비교 가능)논리적 동등성(Logical Equality): 두 객체가 같은 값을 가지고 있는지 확인. (서로 다른 메모리 위치에 존재하더라도 상관없음)equals() 메서드.. 2025. 3. 16.