안녕하세요 여러분! 오늘은 제가 NestJS 백엔드 배포 중 겪었던 문제와 그 해결 과정에 대해 이야기하려 합니다. 아마 여러분 중에서도 Prisma Migrate를 사용하면서 문제에 부딪히신 분들이 계실 것 같아, 제 경험을 공유하고자 합니다.
1. 배경 및 문제점
NestJS 프로젝트를 개발 중, Prisma를 사용하여 데이터베이스 관리를 하고 있었습니다. 개발을 마무리하고 AWS에 배포하는 과정에서 Prisma Migrate를 실행했으나 예상치 못한 오류가 발생했습니다.
npx prisma migrate dev --name init --schema=./prisma/schema.prisma
Error: P1001: Can't reach database server at `ouxxxxxxxxxxxxxxx.ap-northeast-2.rds.amazonaws.com`:`5432`
간단히 말하면, 이 명령어는 ./prisma/schema.prisma 파일에 정의된 데이터베이스 스키마 변경사항을 "init"이라는 이름의 마이그레이션으로 생성하고, 개발 환경의 데이터베이스에 적용하는 작업을 수행하는데
RDS(데이터베이스)에서 EC2에 대한 접근 규칙 (인바운드 규칙)이 허용되지 않아 접근할 수 없는 문제가 발생했습니다.
그러나 로컬 환경에서는 잘 작동하였기 때문에, AWS EC2, RDS 설정에 문제가 있을 것이라 판단했습니다. 퍼블릭 IPv4 주소, 프라이빗 IPv4 주소 또는 프라이빗 IP DNS 이름(IPv4만 해당) 중 무엇을 써서 인바운드 규칙에 추가할 지 고민하고 있었습니다.
3. VPC의 개념 탐구
문제의 원인을 찾아보던 중, AWS의 VPC(Virtual Private Cloud)를 활용하면 더 개념에 대해 깊게 알게 되었습니다. 간단히 말하면, VPC는 AWS에서 제공하는 가상 네트워크 환경입니다. 이 VPC 내에서 EC2, RDS 등의 리소스를 운영하면 보안 및 관리가 편리합니다.
EC2에서 RDS에 접근할 때 퍼블릭 IP를 사용하는 방식과 VPC를 활용하는 방식은 각각 다른 장단점을 가지고 있습니다. 이 두 방식의 장단점과 추천하는 접근 방법을 아래에 정리하였습니다.
3.1. 퍼블릭 IP를 통한 접근:
장점
간단한 설정: 외부에서 바로 접근할 수 있으므로 초기 설정이 간단합니다. 다양한 위치에서의 접근 가능: 어디에서든 인터넷이 연결되면 접근이 가능합니다.
단점:
보안 위험: 퍼블릭 IP는 인터넷상에서 어디서든 접근이 가능하므로, 보안 그룹 설정, 네트워크 ACL, 방화벽 등의 추가적인 보안 조치가 필요합니다.
비용: 트래픽 비용이 발생할 수 있습니다. AWS 내부에서의 데이터 전송은 보통 무료이나, 퍼블릭 IP를 통한 데이터 전송은 비용이 발생합니다.
변동성: EC2 인스턴스가 재시작될 때마다 퍼블릭 IP가 변경될 수 있습니다. (Elastic IP를 사용하지 않는 한)
3.2. VPC를 통한 접근:
장점: 보안: VPC 내에서의 통신은 private IP를 통해 이루어지므로 외부에서의 불필요한 접근을 차단할 수 있습니다.
성능: AWS 내부 네트워크를 통한 통신이므로 일반적으로 더 빠른 속도와 낮은 지연 시간을 가집니다.
비용 절감: VPC 내부에서의 데이터 전송은 일반적으로 비용이 발생하지 않습니다.
고정된 IP: VPC 내에서는 private IP가 변경되지 않습니다.
단점: 설정 복잡성: VPC, 서브넷, 라우팅 테이블, 보안 그룹 등 여러 AWS 서비스의 설정이 필요합니다.
3.3. 추천 방법 및 이유:
VPC를 통한 접근을 추천합니다. 주요 이유는 다음과 같습니다:
보안: 데이터베이스는 중요한 정보를 저장하므로 최상의 보안이 필요합니다. VPC를 사용하면 외부의 불필요한 접근을 제한할 수 있습니다.
성능 및 비용: AWS 내부 통신은 빠르며 대부분의 경우 추가 비용이 발생하지 않습니다.
유연성: VPC를 사용하면 보안 그룹, 네트워크 ACL 등을 통해 네트워크 트래픽을 세밀하게 제어할 수 있습니다.
결론적으로, 보안과 비용, 성능 측면에서 VPC 내에서의 접근 방식이 더 우수하다고 판단됩니다.
4. 해결 과정
VPC 설정 확인:
먼저, EC2와 RDS가 동일한 VPC 내에 있는지 확인했습니다. 동일한 VPC 내에 있었기 때문에 내부 IP로 통신이 가능하다는 것을 알게 되었습니다.
보안 그룹 설정:
EC2와 RDS 간의 통신을 허용하기 위해, 보안 그룹에서 해당 IP와 포트(Prisma의 경우 기본적으로 5432)를 열어주었습니다.
Prisma 설정 변경:
마지막으로, Prisma 설정에서 데이터베이스의 연결 주소를 RDS의 private IP로 변경해주었습니다.
5. 결과
위의 변경 후, 다시 Prisma Migrate를 실행하니 이전에 발생했던 문제 없이 성공적으로 마이그레이션을 완료할 수 있었습니다.
An error occurred (ApplicationDoesNotExistException) when calling the CreateDeployment operation: Applications not found for ***
Error: Process completed with exit code 254.
GitHub action, EC2, S3, CodeDeploy 모든 권한을 설정했음에도 codedeploy 애플리케이션을 찾을 수 없다는 위의 오류가 계속 나타났습니다. 원인을 찾던 중, EC2 지역이 ap-southeast-2 (Sydney)로 잘못 설정된 것을 발견했습니다.
2. 해결 방법: AMI(EC2의 복제본) 이미지 생성 및 이동
AWS EC2에서 특정 인스턴스의 지역을 직접 변경할 수는 없습니다. 대신 EC2의 복제본인 AMI을 생성하여 이를 다른 지역으로 옮겨 실행해야 합니다.
이미지 생성
첫 번째 단계는 기존 시드니에서 실행되는 EC2 서버를 그대로 이미지화하는 것입니다.
인스턴스를 오른쪽 클릭한 후 [이미지] - [이미지 생성]을 클릭하여 이미지를 생성하십시오.
약 10분 후 [AMI] 탭으로 이동하면 이미지가 성공적으로 생성된 것을 볼 수 있습니다. 그러나 이런 방식으로 생성된 이미지도 지역별로 저장됩니다. [시드니]에서 AMI로 생성되었다는 메시지가 뜨지만 놀라지 않아도 됩니다. AMI는 데이터이므로 다른 지역(서울)로 복사할 수 있습니다.
AMI(Amazon Machine Image) 복사
오른쪽 클릭하여 [AMI 복사] 버튼을 누르십시오. 이후 서울 지역으로 AMI를 복사할 수 있습니다.
새 EC2 인스턴스 생성
복사된 이미지로 새 EC2 인스턴스 생성을 해보도록 하겠습니다
이제 이렇게 생성된 이미지를 사용하여 서울 지역에 인스턴스를 생성하겠습니다. 복사된 이미지로 인스턴스를 생성하면 기존 서버를 그대로 복사하여 사용할 수 있으므로 서버를 재배치하는 것과 거의 동일합니다.
남은 데이터 삭제
서버 이전이 완료되면 기존 지역(시드니)의 인스턴스와 AMI(시드니 지역) 같은 모든 데이터를 삭제하고 정리해야 합니다. 사용하지 않는 서버를 계속 가지고 있으면 불필요한 요금이 발생할 수 있습니다.
먼저 인스턴스를 [종료]하여 삭제하십시오. 그런 다음 [AMI] 탭에서 이미지 파일을 삭제하십시오. 그런 다음 모든 스냅샷과 기타 데이터를 제거할 수 있습니다. 결과적으로 완전히 지울 수 있습니다.
이 포스트를 통해 AWS EC2 인스턴스를 다른 지역으로 이동하는 방법을 알게 되셨길 바랍니다. 문제가 발생할 때 포기하지 말고 해결책을 찾는 것이 중요합니다.
재부팅 시에도 스왑 메모리가 활성화되도록 /etc/fstab 파일에 다음 줄을 추가합니다.
/swapfile swap swap defaults 0 0
이렇게 설정 후, free -h 명령어로 스왑 메모리가 제대로 활성화되었는지 확인할 수 있습니다.
4. 마치며
메모리 부족 문제는 성능 최적화, 적절한 자원 할당, 코드 최적화 등 다양한 방법으로 해결할 수 있습니다. 여기서 제시한 방법은 임시적인 해결책 중 하나일 뿐, 장기적으로는 어플리케이션의 메모리 사용 패턴을 분석하고, 필요한 최적화 작업을 통해 근본적인 해결을 추구해야 합니다.
먼저, 필요한 도메인을 가비아에서 구매해줍니다. 원하는 도메인 이름을 검색 후 사용 가능하면 구매를 진행합니다.
2. AWS EC2에서 NestJS 서비스 구동
본인의 AWS 계정에서 EC2 인스턴스를 생성 후, NestJS 서비스를 배포 및 구동시킵니다. 이때, EC2 인스턴스의 고정 IP(Elastic IP)를 할당받아 기록해둡니다.
3. AWS Route 53 설정
AWS Management Console에 로그인 후 Route 53 서비스로 이동합니다. Hosted zones에서 새로운 Hosted Zone을 생성합니다. 여기에 가비아에서 구매한 도메인 이름을 입력합니다. 생성된 Hosted Zone 내에 A 레코드를 추가합니다. 값은 EC2의 Elastic IP로 설정합니다. 이후, Route 53에서 제공하는 네임서버(NS) 레코드들을 확인합니다.
4. 가비아에서 네임서버 설정 변경
가비아 웹사이트에서 로그인 후 내 도메인 관리 페이지로 이동합니다. 도메인의 네임서버 설정을 변경하는 옵션으로 들어갑니다. AWS Route 53에서 제공받은 네임서버(NS) 레코드들로 변경해줍니다.
5. SSL 인증서 적용
CSR 생성: 원하시는 방법으로 CSR을 생성합니다. CSR이 없다면 신규로 생성해야 합니다. 인증 방식 선택: 웹인증(HTTP) 또는 DNS 레코드 인증을 선택하여 진행합니다. 도메인 명 설정: www 포함 여부에 따라 선택합니다. 발급받은 인증서와 개인 키는 EC2 인스턴스 안에 안전하게 보관합니다.
이상으로 AWS EC2, Route 53, 그리고 가비아 도메인을 활용하여 NestJS 서비스에 SSL 인증서를 적용하는 방법을 소개했습니다. 문제가 발생하거나 추가적인 궁금증이 생기면 언제든 댓글로 질문해주세요!
안녕하세요! 이번 포스트에서는 ShoppingMall 서비스의 Prisma 데이터베이스 스키마를 다루며, 각 테이블 간의 관계와 그에 따른 중요한 제약조건을 살펴볼 예정입니다. 데이터베이스의 설계는 서비스의 핵심적인 기능과 성능에 큰 영향을 미치므로, 잘 이해하고 설계하는 것이 중요합니다.
1. 주요 테이블 및 관계
1.1. User
User 테이블은 서비스의 사용자에 관한 정보를 담당합니다. 각 사용자는 여러 주문을 가질 수 있으며, 일부 사용자는 가게(Store) 정보와 일대일 관계를 형성합니다.
model User {
id Int @id @default(autoincrement())
storeId Int? @unique
...
Store Store?
ordersAsSeller Order[]
ordersAsBuyer Order[]
...
}
1.2. Store
Store 테이블은 개별 가게 정보를 담당합니다. 가게는 한 명의 사용자에게 속하며, 여러 상품(Product)을 소유할 수 있습니다.
model Store {
id Int @id @default(autoincrement())
userId Int @unique
...
user User @relation(fields: [userId], references: [id])
product Product[]
...
}
1.3. Product
Product 테이블은 상품에 관한 정보를 담당합니다. 각 상품은 한 개의 가게에 속하며, 여러 주문(Order)에 연결될 수 있습니다.
model Product {
id Int @id @default(autoincrement())
storeId Int
...
store Store @relation(fields: [storeId], references: [id])
Order Order[]
...
}
1.4. Order
Order 테이블은 주문 정보를 관리합니다. 주문은 한 명의 판매자와 한 명의 구매자, 그리고 한 개의 상품과 다대다 관계를 형성합니다.
model Order {
id Int @id @default(autoincrement())
userSellerId Int
userBuyerId Int
productId Int?
...
seller User @relation("OrderToSeller", fields: [userSellerId], references: [id])
buyer User @relation("OrderToBuyer", fields: [userBuyerId], references: [id])
product Product? @relation(fields: [productId], references: [id])
...
}
2. 데이터베이스 관계와 그 의미
2.1. 일대일 관계 (1:1)
User와 Store 사이의 관계는 일대일입니다. 한 사용자는 하나의 가게만을 소유할 수 있으며, 그 반대도 성립합니다.
2.2. 일대다 관계 (1:N)
Store와 Product 사이에는 일대다 관계가 있습니다. 한 가게는 여러 상품을 소유할 수 있지만, 각 상품은 하나의 가게에만 속합니다.
2.3. 다대다 관계 (N:N)
User와 Order 사이에는 다대다 관계가 있습니다. 여기서 사용자는 여러 주문을 할 수 있으며, 각 주문은 한 명의 판매자와 한 명의 구매자를 갖게 됩니다.
3. User와 Order의 다대다 관계 이해하기
우선, 기본적으로 한 사용자는 여러 주문을 생성할 수 있습니다. 예를 들면, 온라인 쇼핑몰에서 쇼핑을 할 때마다 새로운 주문이 생성되는 것과 같습니다. 따라서 User와 Order 사이에는 일대다 관계가 성립합니다.
그렇다면 왜 다대다 관계라고 표현했을까요? Order의 관점에서 보면, 하나의 주문은 한 명의 구매자와 한 명의 판매자를 갖습니다. 즉, 두 명의 사용자가 관련되어 있습니다. 이를 표현하기 위해 Order는 두 개의 사용자 ID를 참조합니다: userBuyerId와 userSellerId. 이 두 관계 모두 일대다 관계이지만, 각각의 관계가 Order를 중심으로 User 테이블을 두 번 참조하므로, 전반적으로 다대다의 관계 특성을 갖게 됩니다.
3.1. 예시로 이해하기
User A는 판매자로서 여러 상품을 판매하고 있습니다.
User B는 A의 상품 중 하나를 구매하려고 주문을 생성합니다.
이 주문은 A를 판매자로, B를 구매자로 갖게 됩니다.
Order 테이블에 새로운 레코드가 생성되며, userSellerId는 A의 ID를, userBuyerId는 B의 ID를 참조하게 됩니다.
User와 Order 사이의 관계는 사용자의 역할(구매자 또는 판매자)에 따라 일대다 관계가 두 번 성립하므로, 전체적으로는 다대다 관계의 특성을 갖습니다. 이러한 복잡한 관계는 데이터베이스 설계 시 정확한 이해와 적절한 구조로 표현해야 합니다.
4. 다대다 관계 이해하기 (학생과 수업의 관계)
다대다 관계는 많은 데이터베이스 설계 상황에서 흔히 나타납니다. 학교나 대학교의 수업과 학생 관계를 예로 들어보겠습니다.
4.1. 시나리오
대학교에서 학생들은 여러 수업을 수강할 수 있습니다. 반대로 한 수업은 여러 학생들에게 강의될 수 있습니다.
학생 테이블 (Student): 각 학생은 고유의 학번, 이름 등의 정보를 가집니다.
수업 테이블 (Class): 각 수업은 고유의 코드, 수업 이름, 강사 정보 등을 가집니다.
이렇게 단순하게 두 테이블로 구성된다면 학생과 수업 사이는 다대다 관계를 형성합니다. 학생 A는 수업 X, Y, Z를 수강할 수 있고, 수업 X는 학생 A, B, C에게 강의될 수 있기 때문입니다.
다대다 관계를 표현하는 방법
대부분의 RDBMS는 다대다 관계를 직접 표현할 수 없기 때문에, 중간에 연결 테이블 (junction table 또는 bridge table)이 필요합니다.
4.2. 수강 테이블 (Enrollment, 학생과 수업 연결)
학생과 수업의 관계를 나타내기 위한 테이블입니다. 이 테이블에는 studentId와 classId라는 두 개의 외래 키가 포함됩니다. 각 레코드는 특정 학생이 특정 수업을 수강한다는 것을 나타냅니다. 이렇게 Enrollment 테이블을 통해 학생과 수업 사이의 다대다 관계가 명확하게 표현됩니다.
4.3. 결론
다대다 관계는 두 엔터티 간에 양방향의 1:N 관계가 성립할 때 발생합니다. 이 관계를 RDBMS에서 효율적으로 표현하려면 연결 테이블이 필요합니다. 이 연결 테이블은 두 엔터티 간의 연관성을 저장하며, 실제 응용 프로그램에서는 다양한 쿼리나 조인 연산을 통해 데이터를 검색하게 됩니다.
5. 테이블의 주요 제약조건
5.1. Unique 제약조건
User 테이블의 email과 phoneNumber는 서비스 내에서 중복될 수 없으므로 @unique 제약조건이 설정되어 있습니다. 이는 사용자의 고유한 식별 정보로 사용되기 때문입니다.
5.2. Optional vs Required
Prisma 스키마에서 ?는 해당 필드가 선택적(optional)임을 나타냅니다. 예를 들어, User의 storeId는 ?가 붙어있어, 모든 사용자가 가게 정보를 갖지 않아도 됩니다.
6. 종합 및 제약 조건의 중요성
데이터베이스의 관계 설정은 데이터의 일관성과 무결성을 유지하기 위한 핵심 요소입니다. 잘못된 관계나 제약 조건 설정은 추후 데이터 충돌이나 중복 등의 문제를 일으킬 수 있습니다.
Docker를 사용하여 애플리케이션을 컨테이너화하면서 exec format error라는 오류에 직면한 적이 있나요? 이 오류는 스크립트나 바이너리 파일의 형식이 컨테이너 내에서 실행되기에 적합하지 않을 때 발생합니다. 여기에서는 이 문제의 원인과 해결 방법에 대해 간략하게 알아보겠습니다.
문제 상황
Dockerfile 내에서 다음과 같은 명령어를 사용하여 AWS 자격 증명을 설정하는 스크립트를 실행하려고 했습니다:
서버 배포에 Dockerfile을 사용하고 있기 때문에, Dockerfile도 아래와 같이 설정하여 자격 증명을 설정하도록 했습니다.
# 기본 이미지 설정
FROM node:14
# 작업 디렉토리 설정
WORKDIR /app
# 필요한 파일들을 복사합니다
COPY .env .env
COPY set_aws_credentials.sh set_aws_credentials.sh
# AWS credentials 설정
RUN chmod +x set_aws_credentials.sh && ./set_aws_credentials.sh
# 나머지 설정...
그런데 docker 환경은 제 M1 맥미니 환경과 달라서 이 과정에서 다음과 같은 오류가 발생했습니다
NestJS + Prisma :: 예외를 두려워 마라! NestJS AllExceptionFilter의 활용 전략, 공통 응답 구조, Exception 생성해서 사용하기
서론
현대 응용 프로그램에서는 사용자에게 관련성 있는 명확한 에러 메시지를 전달하기 위해 구조화된 에러 처리가 중요한 역할을 합니다. NestJS와 Prisma 같은 프레임워크를 사용하면 이를 원활하게 효율적으로 구현할 수 있습니다. 사용자 정의 예외, 응답 DTO, 그리고 NestJS와 Prisma의 강력한 기능을 어떻게 활용하는지 자세히 알아봅시다.
1. ExceptionCode 구조
사용자 정의 예외에 들어가기 전에 우리의 에러 코드에 대한 구조화된 형식을 만드는 것이 중요합니다. 코드에서 제공하는 내용은 다음과 같습니다:
NestJS의 AllExceptionFilter를 사용하면 애플리케이션에서 던진 모든 에러, 사용자 정의 예외를 포함하여 포착할 수 있습니다. 이는 일관된 에러 응답 구조를 보장하고, 중복 코드를 줄이며, 에러 처리 메커니즘을 강화합니다.
AllExceptionFilter를 활용하면 NestJS 애플리케이션 내에서 발생하는 모든 예외를 효과적으로 포착하고 관리할 수 있다. 이를 통해 사용자에게 일관된 에러 응답을 제공하며, 개발자는 디버깅을 쉽게 할 수 있다. 모든 애플리케이션에서 이러한 중앙 집중식의 에러 처리 방식을 도입하는 것은 좋은 방법이다.
이 AllExceptionFilter에서는 여러 가지 예외 유형, 예를 들면 사용자 정의 예외, HTTP 예외, Prisma 에러 등을 분기처리하여 각각의 상황에 맞는 응답을 반환한다.
BaseException: 사용자 정의 예외로서, 해당 예외에 할당된 상태 코드, 내부 코드 및 메시지를 반환한다.
HttpException: NestJS에서 제공하는 기본 HTTP 예외. 상태 코드와 응답 내용을 반환한다.
PrismaClientKnownRequestError & PrismaClientUnknownRequestError: Prisma ORM에서 발생하는 알려진 및 알려지지 않은 에러. 각각에 맞는 코드와 메시지를 반환한다.
Error: 기타 일반적인 JavaScript 에러. 기본적인 정보를 반환한다.
import {
ExceptionFilter,
Catch,
ArgumentsHost,
HttpException,
} from '@nestjs/common';
import { BaseException } from './base_exception';
import {
PrismaClientKnownRequestError,
PrismaClientUnknownRequestError,
} from '@prisma/client/runtime/library';
import { ExceptionCodeEnum } from 'src/exception/exception_code_enum';
/*
@Catch(HttpException)은
http 통신의 예외를 캐치하겠다는 뜻입니다.
만약 모든 예외를 캐치하고 싶다면
@Catch()로 적용하시면 됩니다.
*/
@Catch()
export class AllExceptionFilter implements ExceptionFilter {
async catch(
exception: BaseException | HttpException | Error,
host: ArgumentsHost,
) {
const ctx = host.switchToHttp();
const response = ctx.getResponse();
// const request = ctx.getRequest();
let status: number = ExceptionCodeEnum.Unknown.status;
let code: string = ExceptionCodeEnum.Unknown.code;
let message: string = ExceptionCodeEnum.Unknown.message;
if (exception instanceof BaseException) {
status = exception.getStatus();
code = exception.code;
message = exception.message;
} else if (exception instanceof HttpException) {
status = exception.getStatus();
code = exception.getStatus().toString();
message = exception.getResponse().toString();
} else if (exception instanceof PrismaClientKnownRequestError) {
status = ExceptionCodeEnum.PrismaClientKnownRequestError.status;
code = exception.code;
message = exception.message;
} else if (exception instanceof PrismaClientUnknownRequestError) {
status = ExceptionCodeEnum.PrismaClientUnknownRequestError.status;
code = ExceptionCodeEnum.PrismaClientUnknownRequestError.code;
message = ExceptionCodeEnum.PrismaClientUnknownRequestError.message;
} else if (exception instanceof Error) {
status = ExceptionCodeEnum.Unknown.status;
code = exception.name;
message = exception.message;
}
response.status(status).json({
code: code,
message: message,
data: null,
});
}
}
7. NestJS와 Prisma의 장점:
NestJS: 데코레이터, 가드, 인터셉터를 제공하는 다양한 프레임워크로 개발이 간편하고 유지 관리가 쉽습니다. Prisma: 차세대 ORM으로, 타입 안전한 데이터베이스 쿼리를 제공하여 런타임 에러를 줄이고 개발자의 생산성을 향상시킵니다. 두 도구를 결합하면, 강력하고 유지 관리가 쉽며 효율적인 애플리케이션 구조를 만들 수 있습니다.
8. 결론
위에 제시된 도구와 방법론을 사용함으로써 효과적인 에러 처리는 더 이상 어려운 작업이 아닙니다. 사용자 정의 예외, 통일된 응답 DTO, 그리고 NestJS와 Prisma의 힘을 활용하여 개발자는 유연하고 사용자 친화적인 응용 프로그램을 만들 수 있습니다.
1. 무조건적인 헌신을 하지 말라 2. 예의를 지켜라 3. 관계가 끝날 것을 두려워 말고 불편한 것이 있다면 말하라 4. 상대를 존중하고 존중받는 연애를 목표로 하라 5. 행복하기 위해 연애하는 것임을 잊지 말라
헌신하고 싶다면 관계가 정립된 이후, 사귀고 1년 이상이 지난 후에 하는 것이 좋습니다. 상대방에게 헌신하지 않으려면 자신의 감정을 표현해야 합니다. 많은 연인들이 관계가 틀어지거나, 상대방 기분을 상하게 하진 않을까 걱정하며 자신의 감정을 숨기고 표현하지 않습니다. 하지만 그럴수록 상대방은 참고 있는 당신을 너무 당연하게 생각합니다. 때문에 연애를 하는 중에 관계에 대한 의문이나 상대에 대한 나쁜 감정이 생긴다면, 참지 말고 표현하세요. 관계에서 '이기적이다', '매번 약속을 어긴다' '무례하다'와 같은 상황이 반복되고 불편해지면, 주저하지 않고 그 어떤 것이라도 표현해야 합니다. 그 표현으로 인해 싸우게 될 것을 걱정하지 마세요. 차라리 싸우는 것이 낫습니다. 그래야 상대방도 여러분의 감정을 알고 존중해줄 수 있습니다. 서로가 서로를 존중해주는 연애여야 오래갈 수 있습니다. 연애 초반에 헌신이 안 좋은 또 다른 이유가 있습니다. 헌신은 '이 헌신이 내게 다시 돌아오길 바라는 마음'을 기반으로 합니다. 너무나 사랑해서 상대방과 싸우고 싶지 않고, 사이가 유지되길 바라고, 헤어지지 않기를 바랍니다. 연애 초반의 헌신은 집착을 낳는 경우가 많습니다. 연애를 시작하게 되면, 처음에는 상대방이 하는 만큼만 표현하는 것이 좋습니다. 헌신을 하려거든 스스로를 위한 후에, 상대에 대한 헌신을 해야 합니다. 사람과 사람의 관계는 가치 전쟁입니다. 그리고 그 가치는 매력을 의미합니다. 타인보다 더 큰 매력을 보유할수록 유리합니다. 외모, 키, 재력 등,상대를 대할 때 나오는 말투, 표정, 행동, 태도에도 묻어 나옵니다. 매력적이지 않은 대표적인 행동은 헌신, 아부, 부정적인 태도, 눈치 보기, 애원 등이 있습니다. 매력적인 행동에는 긍정, 자신감, 위트, 유머, 관찰 등을 들 수 있습니다. 상대방이 당신에게 매력이 없다고 느낀다면, 아마도 함께 있는 시간을 지루해하고 재미없어 할 것입니다. 당신을 아쉬워하지도, 궁금해하지도 않죠. 반대로 당신에게 매력이 있다고 느끼면 궁금해하고 함께 있는 시간을 기다릴 겁니다. 단발적 이미지 : 춤, 노래, 좋은 몸, 잘생긴 얼굴, 큰 키 지속적 이미지 :
한쪽은 우정을 원하지만, 한쪽은 이성 관계를 원하는 사이를 프렌드 존이라고 합니다. 프렌드 존은 호감이 올라갔다 떨어졌을 때 발생합니다. 처음에는 상대방도 나름의 호감을 표현했을 것입니다. 그럼에도 불안했겠죠. 좋아하는 것 같으면서 확신은 없고, 고백을 해볼까도 했지만 거절이 두렵습니다. 망설이다가 결국 타이밍을 놓쳤습니다. 상대방의 입장에서 보면, 호감 표현에 반응이 없으니 호감은 사라지고 마음을 접었을 겁니다.
이성적 매력이 아닌 인간적인 모습만을 어필했을 때도 프렌드 존에 빠집니다. 일단 친해진 다음에 관계를 발전시킨다는 생각으로, 좋은 사람, 착한 사람, 편한 친구로 이성에게 다가갔을 때 발생합니다. 당신이 상대의 프렌드 존에 들어 있을 때 고백하면, 대부분 이런 대답이 돌아옵니다. "우리 좋은 친구로 지내자" "네가 이성으로 느껴지지 않아" "너랑 사귀고 헤어지는 관계가 되기 싫어"
지금 상대와의 관계가 프렌드 존인지 아닌지 알 수 있는 방법이 있습니다. 손을 잡아보는 겁니다. 자연스럽게 잡아야 합니다. 상대방의 손톱 모양이나 손에 한 악세사리를 이야기하며 손을 달라고 해봅니다. 중요한 건 어떤 이유를 대느냐가 아닌 손을 잡는 것입니다. 손을 잡았다면 최소 1분 이상 잡은 상태를 유지합니다. 이때, 상대방이 손을 거부한다거나, 어색해한다거나, 부담스러워 한다면 프렌드 존일 가능성이 높습니다.
프렌드 존을 연인 관계로 발전시키는 것은 사실 힘든 일입니다. 프렌드 존이 확실하다면 먼저 연락을 끊습니다. 최소 한 달 정도 연락과 만남을 끊음으로써 친구라는 감정선을 끊어내는 겁니다. 먼저 연락이 온다고 해도 바쁘다는 식으로 피하는 것이 좋습니다.
그 기간 동안 우리는 한 달 후의 만남을 준비합니다. 가장 먼저 해야 할 일은 스스로를 가꾸는 것입니다. 변화의 포인트는 한 달 후 상대에게 예전 내 모습과는 전혀 다른 느낌을 주는 것입니다.
공백기 이후에 만난 상대가 반가워하고 놀란다면 일단 절반은 성공입니다. 그리고 우리는 이때부터 본격적으로 만날 때마다 매력을 보여주고, 스킨십을 합니다. 이 만남이 친구 사이의 만남이 아닌, 남자와 여자의 만남이라는 것을 계속 인지시킵니다. 손도 잡고, 팔짱도 끼고, 어깨에 손도 올리고 등등. 친구라는 감정은 옅어지고 그 위에 연인, 썸의 감정을 덮어씌우는 것입니다.
우유부단한 남자는 매력이 없다 좋아하는 사람 앞에서 생각만큼 괜찮은 모습을 보여주지 못하는 것도, 자신의 선택으로 상대의 기분을 상하게 하고 싶지 않은 마음도 이해합니다. 상대를 배려하고 신중하게 선택하는 것은 관계에 있어 중요합니다. 신중함과 우유부단은 다릅니다. 신중함은 최적의 결과를 위한 하나의 방법이고, 우유부단은 자신의 결정에 대한 확신이 없는 것이죠. 혼자 있을 때나 친구들과 있을 때는 우유부단함이 큰 문제가 되지 않습니다. 하지만 마음에 드는 사람 앞에서도 우유부단하다면, 상대는 당신을 '자신감없고' '신뢰감없는' 사람이라고 판단합니다.
여자는 남자의 자신감에 매력을 느낍니다. 아무 일에나 자신감 넘치게 행동하라는 것이 아니라, 자신의 의견을 피력할 때 주저함이 없어야 한다는 것입니다. 이랬다저랬다 갈팡질팡하지 않고 명확히 의견을 말할 수 있는 것. 그것이 가장 기본적인 자신감 표현입니다. 고민 상담이나 강연을 들으로 오시는 분 중 소개팅에선 분위기가 좋았는데 애프터를 신청했을 때, 거절당하기 일쑤고, 상대가 자신을 남자로 보지 않는 것 같다는 이야기를 하는 경우가 많습니다. 대부분 문제의 원인은 '리드의 부재'입니다. 당신이 대화나 상황을 이끌지 못하는 경우, 상대는 부담을 느낍니다. 따라서 상대의 주도하에 분위기가 좋았다고 해도, 당신이 매력적이지 않았음은 분명합니다. 그럼 어떻게 해야 자신감 있게, 자연스럽게 리드할 수 있을까요? '리드한다'의 의미는 무조건 자기 의견만을 고수하거나, 고집을 부리는 것이 아닙니다. 작은 것이라도 제안하고, 상대와 타협점을 찾고, 충분히 대화를 나눈 후 최종 결정을 당신이 마무리 하는 것입니다. 분위기도 리드할 수 있습니다. 상대가 기분이 나쁘거나 속상한 일에 대해서 이야기한다면, 그 문제를 해결하거나, 답을 찾아주기보다는 분위기를 가볍게 만드는 쪽으로 대화를 이끄는 것이 좋습니다.
리드 평소에 '할까?'라거나 '갈래?'와 같이 상대방에게 결정을 넘겨주는 말투를 사용하고 있었다면, 이제부터는 부드러우면서도 원하는 바를 명확하게 제안하는 말투를 연습하세요. 리드를 연습할 때는 언제나 당당해야 합니다. 리드는 자신감을 표현하는 방법입니다. 우리가 아무리 많은 것을 준비한다고 해도, 모든 것이 완벽할 수는 없습니다. 미리 알아본 가게 문이 닫혔을지도, 하필 상대가 먹지 못하는 음식일수도 있습니다. 취향이나 대화방식이 예상과 다를 수도 있습니다. 중요한 것은 우리가 상황을 대처하는 방식입니다. 여자에게 매력 없게 느껴지는 것은 순탄치 못하게 흘러가는 상황이 아니라, 자신감을 잃어 우유부단하게 행동하는 태도입니다.
자신감 있는 태도와 리드는 단순히 메뉴 결정이나, 분위기뿐만 아니라 연애 전반에 걸쳐 문제가 발생했을 때, 상황을 해결할 수 있는 밑받침이 됩니다. 때문에 가장 중요하고, 당신을 평가할 때 매력적인 부분으로 여겨집니다. 자신감 있는 태도를 장착하는 것만큼 효과적인 매력 어필은 없습니다. 우유부단함을 멈추고 리드를 꼭 연습하길 바랍니다.
유머 여유를 가장 잘 표현하는 방법은 유머입니다. 약간의 위트로 상대를 편안하게 만들어주라는 의미에요. 1. 과장하기 머리 어때? -> 잘 어울려. 사자 같다 이 옷 어때? 줄무늬가 예쁘지? -> 완전 초원의 얼룩말이야 이렇게 유머를 구사하면 상대방은 일반적으로 듣는 이야기도 아니고, 자신이 기대했던 이야기도 아니기 때문에 당황합니다. 기분이 조금 상하기도 합니다. 이 부분이 중요합니다. 순간적으로 당황한 사람은 어떻게 대처해야 할지 모릅니다. 화를 내기엔 과한 것 같고, 무시하기에도 어색해집니다. 그래서 대부분 웃음으로 넘기거나 도발에 넘어와 적극적으로 자신을 해명합니다.
이렇게 감정적으로 상대를 움직이면, 비교적 당신은 편안하고, 상대방은 불편합니다. 편안하고 조용한 상태는 겉으로 보기엔 문제없어 보이지만, 대화는 재미없습니다. 곧 지루해지고, 상대가 당신을 만나야 할 이유 하나가 사라지게 되는 것이죠. 하지만 불편하고 시끄러운 상태는 겉으로 보기엔 불안해 보이지만, 대화 자체는 흥미롭고 재미있습니다. 그래서 더 많은 대화를 나누고 싶어집니다. 대화의 주제를 바꾸어 상대방과의 대화를 리드하고, 여유의 예시나 방법들을 활용합니다. 너무 진지하거나 지루하게 흘러갈 수 있는 대화에 잠깐의 쉼을 주어 대화나 상황을 유쾌하게 만드는 것이 여유를 보여주는 가장 좋은 모습이고, 유머의 올바른 사용법입니다.
2. 단정짓기 자, 지금 네가 만지고 있는 걸 컴퓨터라고 불러. 다른 말로는 PC. 그리고 그 옆에 있는 쥐처럼 생긴 거 있지? 그건 마우스라고 하는 거야. 상대방을 어리거나 모른다고 단정짓습니다.
3. 반전주기 반전은 모두가 예상하고 있는 패턴을 깨는 것을 의미합니다. 무표정으로 웃긴 이야기를 한다거나, 진지한 상황에서 엉뚱한 이야기를 하는 것이죠. 앞뒤가 다른 이야기를 하는 것도 반전에 포함됩니다.
관찰 - 유머(과장, 단정, 반전) - 반복 여자가 유머에 웃었다면 대화 중간중간 반복합니다. 만약 웃지 않았다면 아무 일도 없던 것처럼 화제를 돌려서 대화를 이어나가면 됩니다. 예를 들어, 여자를 관찰했을 때, 그가 보라색 옷을 입었다면, '옷이 너무 잘 어울려요. 꼭 보라돌이 같아요. 뚜비와 나나랑은 요즘도 친한가요?' 라고 말합니다. 유머 중 '단정짓기'를 사용했습니다. 여자가 웃었을 경우에는 대화를 하다 좋은 포인트에서 다시 보라돌이라는 주제를 꺼내 반복합니다. '주말은 어떻게 보내세요? 뚜비는요?' 혹은 '식사는 하셨어요? 나나는 요즘도 다이어트 중인가요?'와 같은 대화면 충분합니다. 만약 상대가 웃지 않았을 경우에는 어색한 분위기에 고정되지 않도록 화제를 돌립니다.
유머는 단지 여유를 보여주는 하나의 장치입니다. 따라서 웃겨야 한다는 강박관념을 버려야 합니다. 여유를 보여준다면 상대는 당신과의 대화를 즐겁게 생각하고, 함께 있는 시간을 편안하게 느낍니다. 유머가 여자에게 지적인 느낌을준다는 결과를 발표하기도 했습니다. 유머를 그저 농담 따먹기 정도로 생각하지 말고, 당신의 여유를 어필하는 도구로 활용하세요.
5년 내 스타트업 생존확률은 14%다. 수익을 내지 못하거나 전망이 어둡거나 정부의 지원금을 받는 좀비스타트업도 포함된 수치이다.
하지만 14%에 불과하다. 한 정부 보고서에서 밝힌 창업 후 5년 이상 운영된 스타트업의 비율이다. 헷갈리면 안 된다. 14%는 '성공 확률'이 아닌 '생존 확률'이다. 큰 수익을 내지 못하거나 사업 전망이 밝지 못하지만 정부의 지원금을 받으며 5년 이상 유지되는 일명 '좀비 스타트업'들도 이 14%에 포함된다.
창업 시 정부 규제가 큰 장벽이다. 허가를 받아야 할 관련 부처가 넘쳐났다. 건강 정보를 상업적으로 이용하는 것은 아닌가 라는 정부의 의심에 맞서서 증명하는 과정이 필요했다.
시장이 준비되지 않은 상태에서 출시되어 외면받는 경우도 있다.
가장 많이 겪는 실패는 팀 내 분열이다.
변화를 외면하다 사장되는 사업도 있다. 처음에 개발한 기술에만 의존하여 새로운 기술 개발은 도외시하다 실패하는 것이다.
14%의 낮은 생존 확률을 뚫고 성장하는 기업은 우리가 자주 이용하고 소비하는 브랜드들이다.
0 이 작은 기업들은 어떻게 시장을 장악했나
창업 5년차, 지속 가능한 성장의 힘을 말하다
그들의 성공에는 이유가 있다
이것은 갈비인가 통닭인가
시장이 비어 있는 이유를 파악할 것
아무도 차지하지 않은 시장은 매력적일 수 밖에 없다. 시장에 최초로 진입함으로써 인프라 구축 등의 우위를 먼저 확보하는 선점 우위 효과를 누릴 수 있기 때문이다.
성공한 스타트업은 창업 전 시장 분석과 관련 규제 파악을 철저히 했다는 공통점이 있다. 단순히 경제적 요소뿐만 아니라 정치적, 사회적, 기술적 요인도 사업에 있어서 중요하기 때문에 이를 복합적으로 살펴보고 냉정하게 분석해야 한다.
감성을 건드려라
힘내라, 응원한다, 옷에 얽힌 이야기와 대여자의 긍정적인 메시지
기술 투자는 생존 전략이다
진입장벽이 낮은 시장은 선두 주자와 비슷한 서비스를 내세운 카피캣(모방 서비스) 업체들이 쉽게 진출이 가능하다. 이들이 기존 업체들을 위협하면, 결국 한정된 파이를 나누어야 한다. 이 과정에서 시장을 선점했던 업체가 몰락하는 경우도 왕왕 생긴다. 치열한 경쟁에서 승리하기 위해선 경쟁업체와 차별화된 서비스를 제공해야 한다. 서비스의 차별화를 일으키는 것은 결국 기술 개발이다.
1 숙박? 놀이! 서비스를 명확하게 정의하라
휴가 트렌드 바꾼 스테이케이션의 선두 주자 >> 야놀자
숫자로 보는 브랜드
모바일과 가장 먼 곳이 O2O의 블루오션
2015 투자유치 설명회 이수진 대표, 가장 큰 경쟁자는 부정적인 대중의 인식이다. 국내 숙박 예약 시장은 모바일 혁명이라는 메가트렌드에 가장 느리게 반응한 분야 중 하나다. 2005년 모텔 소개 및 예약 온라인 커뮤니티로 사업을 시작한 '야놀자'가 모바일 커머스 시장에서 소비자에게 받아들여진 것은 2014년으로 무려 10년 가까운 시간이 필요했다. 이용자들은 오늘 묵을 모텔을 미리 예약해야 할 필요성을 느끼지 못했다. 국내 숙박의 경우 일정이 변동될 가능성도 높고 예약 사이트를 통해서도 내부 청결도나 시설 등에 대한 정보를 얻기 어렵다는 인식이 있었다. 예약을 할 때 본인의 정보를 노출시키는 것도 꺼려했다.
게다가 공급자인 모텔 업주들도 미리 예약하는 고객보다 직접 찾아와서 현장 결제하는 워크인 고객을 선호했다. 그래야 예약이 없는 방을 낮에도 틈틈이 대여해 현금을 확보할 수 있기 때문이다.
모바일 체제로 변화하는 시대의 흐름을 빠르게 알아차리고, 그 영향력에서 뒤쳐져 있던 시장을 찾아내 모바일 체제로 합류시킨 덕분이었다. 2009년부터 온라인 예약을 도입했으나 번번이 실패했어요. 2014년의 마지막 시도가 성공했던 이유는 모바일 예약을 도입했기 때문이었습니다. 모바일의 즉시성이 모텔 콘텐츠와 맞아떨어졌던 거죠.
국내 전자상거래 규모는 44조원, 오프라인 상거래는 320조원으로 7배나 차이가 난다.
온라인과 오프라인을 연결하는 온라인-오프라인 연계 서비스가 해답으로 주목받는 이유다.
전자상거래 187조
모바일 130조
청년 창업의 경우 기술 기반의 제조업보다 아이디어 기반의 서비스업 비중이 높다. 특히 기존에 있는 사업을 소비자와 이어주는 O2O 플랫폼은 진입장벽이 비교적 낮다.
이미 시장이 형성되어 있는 곳은 경쟁이 심하고, 아직 O2O 시스템이 활발하지 않은 분야에서는 새로운 시장을 개척한다는 것 자체에서 오는 리스크가 클 수밖에 없다.
오픈 노하우로 시장을 선점하다
야놀자가 모텔 운영 프로그램을 개발한 이유는 사업의 기준이 됨으로써 시장 장악력을 높이기 위함이다. 이처럼 야놀자가 노하우를 공유하고 모텔 시장을 키우기 위해 다양한 노력을 하는 이유는 이것이 실질적인 수익성을 높이는 방법임을 알고 있기 때문이다. 심지어 야놀자 아카데미는 경쟁사 직원이나 타 숙박 앱의 제휴 업주들도 교육을 받으러 온다. 질적으로 성숙한 서비스는 더 많은 고객을 끌어들여 시장을 성장시키는 밑거름이 되는 것이다.
노하우를 공개하면 여러 사람의 아이디어가 합쳐져 새로운 것을 개발할 수 있고, 노하우를 공개해야 시장이 확대되고 성숙해져서 실질적인 생산성이 유발된다고 생각해요. 한 사람이 힘차게 목소리를 내는 것보다 여러 사람이 목소리를 내는 게 시장은 더 빠르게 확장되고 성장할 수 있는 구조가 만들어지니까요. 다만 그 안에서 선두는 뺏기지 말아야죠.
브랜딩에 무게를 덜어내자
친근한 단어, 야놀자
수익 모델의 연결고리를 만들어라
고객과 서비스의 본질을 파악하는 데 집중해요. 주변 놀이 공간 입장권 및 이용권 연계하여 판매
해외시장 진출 전략, 투자와 제휴
야놀자는 3년간 해외 진출 전략을 짰다.
플랫폼은 진화해야 한다
트립어드바이저
2 소비 패턴을 바꾸려면 혁신적으로 좋아야 한다
새벽 배송으로 신선식품 이커머스의 기준을 세우다 >> 마켓컬리
배송 전쟁의 서막을 열다
식품의 경우 신선도가 중요하고, 당장 오늘 저녁에 먹을 것이기 때문에 온라인으로 사는 것보다 오프라인에서 바로 구매하는 경향이 컸다. 또한 수량을 자유롭게 선택하기 힘들고, 배송비에 대한 부담도 무시할 수 없다. 특히 신선도의 경우 직접 눈으로 확인하지 못하는 이상 마켓에 대한 신뢰도가 선택에 큰 영향을 끼칠 수 밖에 없는데, 이 불편함들을 감수하면서도 믿고 살 수 있을 만큼의 상품을 제시한 업체가 나오지 않았던 것이다.
우리 기업의 히트텍은 무엇일까
모든 종류의 '처음'에는 저항이 굉장히 심해요. 그래서 혁신적으로 좋아야 하는 거에요. 너무 좋아서 쓰지 않고는 견딜 수 없는 정도가 되어야 새로운 것을 받아들일 수 있어요.
인터넷에서 가장 많이 판매되는 품목은 바로 의류다. 셀 수도 없이 많은 의류 쇼핑몰이 생겨나고 사라지지만 그 중 오랜 기간 동안 소비자의 선택을 받는 쇼핑몰은 그들만의 특징이 있다. 바로 고객이 불필요한 결정장애에 빠지지 않게 쇼핑몰이 추구하는 스타일의 옷만 큐레이션해 제공한다는 점이었다. 쇼핑몰이 타깃으로 삼은 고객층에 어울릴 만한 옷을 잘 골라주니, 고객은 취향만 맞는다면 그 쇼핑몰의 선택을 신뢰하고 재구매하는 선순환이 일어나는 것이다. 이 전략은 큐레이션이 제대로 이루어진다면, 재고 리스크를 줄인다는 점에서 기업에게 이득이 크다.
마켓컬리는 인기 상품과 제철음식을 큐레이션해 보여줄 뿐 아니라, 국내에서 구하기 힘든 외국의 식재료를 소개해 젊은 여성 소비자들에게 큰 호응을 얻었다.
잘되는 쇼핑몰에는 각 품목별로 주력 상품이 있다. 유니클로의 대표 상품인 '히트텍'. -> 트래픽 드라이버, 자연스럽게 다른 상품도 구경한다. 자신만의 분명한 히트텍이 있어야 지속적으로 고객을 끌어들일 수 있다.
우유 한 병에 지켜야 할 가치
마켓컬리가 우유 PB 상품을 론칭하기까지의 과정을 들여다보면, 그들의 상품 기획과 공급 업체 선정 기준, 기업 철학을 엿볼 수 있다. 상품 기획 단계에서 사전 공부 기간이 상대적으로 길다. 큐레이션 서비스를 전면에 내세운 만큼 꼼꼼하게 고른 상품이라는 믿음을 줄 수 있어야 했다. MD 들이 모여 여러 업체와 목장의 우유를 놓고 블라인드 테스팅을 진행하기도 한다.
마켓컬리에서는 대표와 담당 MD가 참석하는 상품위원회가 열린다. 원재료, 성분, 제조시설, 인증서류 등 70여 가지 기준과 MD들이 직접 먹어본 후의 냉정한 평가를 거쳐야 한다. 통과율은 10%다.
마켓컬리는 품질을 지키기 위해 당일 생산된 상품의 당일 배송을 원칙으로 하며, 식품 전용 냉장, 냉동 창고 구축을 통해 식품에 따라 최적의 보관 온도에 맞추어 패키징과 배송이 이루어진다.
생산과 유통, 서로 잘하는 것을 한다
마켓컬리가 생산자에게 제시한 조건은 두 가지였다. 하나는 반품 없이 매입한 상품은 마켓컬리가 전적으로 떠안겠다는 것이다. 생산자는 재고에 대한 부담을 지지 않는 대신, 상품 기획이나 품질에 대한 의견을 반영해주기로 했다. 마켓컬리가 리뷰를 통해 듣는 소비자의 의견을 적극적으로 생산자에게 전달해 소비자의 입맛에 맞는 상품을 생산하도록 하는 것이다.
우리가 먹고 싶은 것만 판다
김슬아 대표는 부정적인 리뷰는 꼭 읽는다고 한다. "제가 실망시키는 모든 고객이 저희의 실패에요. 그래서 저희의 실패는 매일 반복되고 있고, 위기는 매일매일 있죠." 고객의 후기는 마켓컬리에게 큰 도움이 된다. 상품에 대한 고객의 반응을 확인하는 건 물론이고, 신상품을 내놓을 때, 매출이 일정 수준 이상으로 올라가거나 떨어질 때, 주기적으로 사업의 방향이 맞는지를 확인할 때도 후기는 답을 준다. 그리고 이것이 고객의 만족도를 떨어뜨리지 않고 성장할 수 있었던 비결이라고 믿는다.
폐기율 1%의 비결
"당일 수확한 해산물이나 신선한 채소를 어떻게 다음 날 아침, 고객의 밥상에 올려놓지? 이 질문이 바로 샛별배송 서비스의 본질이에요"
마켓컬리는 수요를 미리 예측하고 예측한 수요만큼 팔아야 하고, 동시에 생산자는 예측한 수요만큼 정확히 수확을 해야 한다. 마켓컬리가 중점을 두는 부분은 바로 빅데이터를 이용한 수요 예측이다. 여기서 어긋나면 엄청난 재고를 버려야 하거나, 반대로 물건이 빠르게 품절되어 판매를 못한 만큼 손해를 입는 것은 물론 고객의 불만이 쌓여 재구매율이 떨어질 수 있다. 이를 위해 마켓컬리는 자체 개발한 수요 예측 프로그램을 이용한다. 날짜나 날씨, 판매량 변화, 시장가 등의 빅데이터를 분석 반영해 오늘 판매할 상품의 양을 정하는 것이다.
수요예측 기술이 아무리 정교하다고 해도 변수는 많다. 새로운 고객들이 많은 유입되는 겨웅에는 원하는 상품군이 크게 달라진다. 기존의 고객의 경우도 프로필이 계속 바뀌기 때문에 항상 같은 상품을 구매하지는 않는다. 특히 명절 직후에는 수요가 굉장히 드라마틱하게 바뀌는 경향을 보인다고 한다. 평상시에 잘 팔리던 상품들의 판매량이 뚝 떨어지고, 갑자기 냉동식품이 많이 팔린다든가 하는 것처럼 잘 안팔리던 제품의 판매량이 급상승하는 모습을 보이기도 한다.
반면, 수요 예측을 잘했더라도 신선식품의 특성상 입고량을 맞추기도 쉽지 않다. 특히 해산물을 나가보지 않는 이상 그날의 어획량을 정확히 파악하기가 힘들다. 기상이 악화돼 출항을 못하는 등의 변수도 많다. 이럴 때는 해당 제품의 사이트 내 노출 순위를 낮추거나, 대체 생산자들을 통해 물량 확보에 나서는 등 각 팀들이 유기적으로 소통하며 문제를 해결한다.
마켓컬리가 강점으로 내세우는 부분이 바로 여기에 있다. 생산과 판매에 대한 유동적인 상황에 대해 생산자, 상품MD, 마케팅팀, CS팀, 내부 물류팀 등이 서로 긴밀하게 커뮤니케이션하면서 빠르게 대응할 수 있는 시스템이 갖춰져 있다는 것이다. 마켓컬리는 이를 위해 각각의 팀들이 어떻게 일해야 하는지를 명확하게 정해놓고 있으며, 축적된 경험을 바탕으로 시스템을 더욱 정교하게 만들고 있다.
메시지가 하루에도 수천통씩 오간다.
마케팅 원칙, 빙산의 일각
첫 번째 원칙은 빙산의 일각이다. 마켓컬리가 실제로 가지고 있는 장점이 100이라면 그중에서 1만 보여준다는 것이다. 마케팅이 과장됐거나 거짓말을 했다는 걸 알게 되는 순간 고객은 기업에게 등을 돌린다. 마케팅이 진정성을 잃으면 마케터도 자신감을 잃고 결국 마케팅을 힘이 빠진다. 하지만 마케팅에서 보여주는 것이 실제로 고객이 경험할 수 있는 것 중에 아주 일부분이라는 것을 알게 되면, 고객은 이후 마켓컬리의 말에 무한한 신뢰를 보낼 것이다. 이것이 마켓컬리가 세운 장기적인 브랜딩 전략이다.
두 번째 원칙은, 마케팅이 서비스가 구조적으로 좋아질 수 있는 방향과 맞아야 한다는 것이다. 서비스 개선이라 냉장 물류 체인에 대한 투자를 하는 것, 더 많은 생산자를 포용하는 것 모두 규모가 커져야 할 수 있는 일들이다. 그러니 TV 광고 덕에 대중화를 얻고 많은 고객이 유입되면, 규모의 경제가 생성돼 기존의 이용자에게도 혜택이 돌아갈 수 있다고 보았다.
하지만 마켓컬리는 급속한 고객의 유입으로 서비스에 차질이 생기는 것을 경계했다. 그래서 마케팅을 하기 전에 냉장 체인에 투자하고, 공급사들에게 더 좋은 조건으로 물량을 늘릴 수 있도록 사전에 협의하는 등의 선투자를 진행했다. 회원 수가 늘었을 때 더 좋은 서비스를 할 수 있는 구조를 미리 만들어둔 것이다. 결과는 상상 이상이었다.
아는 경쟁자는 무섭지 않다
마켓컬리의 샛별배송이 성공한 이후 쿠팡, 헬로네이처 등 온라인 커머스 뿐만 아니라 롯데마트, 홈플러스 등 대형 유통 채널에서도 새벽 배송 서비스를 시작했다. 이들은 전국 유통망을 무기로 전국으로 새벽 배송을 할 수 있기 때문에 수도권 지역에 한정되어 있는 마켓컬리의 성장세가 둔화될 것이라는 전망이 나오기도 했다. 하지만 김슬아 대표의 생각은 달랐다. 현재 단순히 새벽에 배송한다는 것만을 내세운 업체들은 마켓컬리의 샛별배송 서비스의 본질을 이해하지 못했다고 생각한다.
김슬아 대표가 두려워하는 건, 지금 어디에 있을지 모르는 신생 업체들이다. 실패와 학습, 또 실패를 반복하면서 이제까지와 완전히 다른 혁신적인 가치를 만들어낸다면 마켓컬리 역시 잠식될지 모른다는 공포다. 그들이 빠르게 실패하고 거기서 혁신적인 어떤 깨달음을 얻는 동안 마켓컬리는 불어난 몸집으로 인해 그 속도와 가벼움을 잃어버릴까 두려운 것이다.
스피커를 선택하는 것은 단순히 '크고 강한 소리'만을 원하는 것이 아닙니다. 음질, 디자인, 브랜드 가치, 그리고 가격까지 모든 것을 고려해야 합니다. 최근에 마샬 스텐모어 2 스피커를 사용해본 경험을 토대로, 어떤 것이 좋은 스피커인지에 대한 나만의 기준을 공유하려 합니다.
1. 음질: 먼저, 음질의 깊이와 풍부함을 체험했습니다. 스텐모어 2에서 나오는 소리는 균형 잡힌 베이스와 선명한 미드, 트레블이 어우러져 완벽한 하모니를 이룹니다. 특히 저음 부분이 강조되지 않으면서도 충분히 깊은 느낌을 줍니다.
2. 전력 출력: 이 스피커의 출력은 그 크기에 비해 상당히 강력합니다. 큰 공간에서도 충분히 큰 소리를 낼 수 있으며, 작은 파티나 모임에서도 중심 역할을 해줍니다.
3. 액티브 vs. 패시브: 스텐모어 2는 내장 앰프를 가진 액티브 스피커입니다. 별도의 장비 없이도 간편하게 연결하여 사용할 수 있어 매우 편리했습니다.
4. 연결성: Bluetooth 기능을 통해 손쉽게 모바일 기기나 컴퓨터와 연결할 수 있었습니다. 또한, AUX 입력을 통해 다양한 기기와 호환됩니다.
5. 내구성 및 디자인: 마샬은 전통적인 빈티지 디자인으로 유명합니다. 스텐모어 2 또한 그 특징인 클래식한 디자인을 잃지 않으면서도 모던한 느낌을 가지고 있습니다. 이런 디자인은 인테리어와도 잘 어우러져 보기 좋았습니다.
6. 가격: 품질과 디자인, 브랜드 가치를 고려하면 충분히 합리적인 가격대라고 생각합니다.
7. 브랜드 및 리뷰: 마샬은 오랜 역사와 전통을 가진 브랜드입니다. 이런 브랜드의 제품을 사용하면서 그 믿음과 신뢰를 느낄 수 있었습니다.
결론적으로, 스피커 선택은 개인의 취향과 필요에 따라 다르겠지만, 스텐모어 2는 그 어떤 기준에서도 탁월한 성능을 보여준다고 생각합니다. 특히 음악을 사랑하는 사람이라면 한 번쯤은 경험해보았으면 좋겠습니다.
아래와 같이 자주 쓰는 색을 변수로 저장하여, 재사용성이 높아져 코드의 유지보수성이 증가한다.
import 'package:flutter/material.dart';
// Basic Color
const Color kWhiteColor = Color(0xFFFFFFFF);
const Color kBlackColor = Color(0xFF000000);
// System Color
const Color kSystemErrorColor = Color(0xFFFC444F);
const Color kSystemSuccessColor = Color(0xFF30E181);
const Color kSystemWarningColor = Color(0xFFFFD362);
// Color Pallette
const Color kPrimaryColor = Color(0xFF4880EE);
Color kPrimaryColorOp = const Color(0xFF4880EE).withOpacity(0.35);
const Color kIconBackgroundColor = Color(0xFFFAFAFC);
const Color kKakaoBackgroundColor = Color(0xFFFEE500);
const Color kFacebookBackgroundColor = Color(0xFF1E70E9);
// 텍스트 폼
const Color kTextLeftBarColor = Color(0xFF4B6AEA);
const Color kTextBottomBarColor = Color(0xFF5991F4);
const Color kGrayF2 = Color(0xFFF2F3F5);
const Color kGrayF5 = Color(0xFFF5F5F5);
const Color kGrayF8 = Color(0xFFF8F8FA);
const Color kGrayAF = Color(0xFFAFB7BF);
const Color kGray87 = Color(0xFF878B95);
const Color kBlue37 = Color(0xFF3767D3);
// nav
const Color kNavBackground = Color(0xFF1F1F1F);
const Color kPapsText = Color(0xFF3F4656);
안녕하세요, 여러분. 오늘은 저의 생활에 많은 변화를 가져온, 대전 서구에서 겪은 자전거 교통사고에 대해 이야기하려 합니다. 이 경험을 통해 많은 것을 배웠고, 이 사고를 둘러싼 GPT-4 변호사의 주장도 함께 공유하려 합니다. 제 이야기가 비슷한 상황을 겪는 분들에게 작은 도움이라도 될 수 있기를 바랍니다.
사고
사고는 대전 서구 탄방동의 금성백조 앞에 위치한 건물 주변에서 발생했습니다. 저는 신호등이 없는 횡단보도를 자전거로 횡단 중이었는데, 바로 그때 우회전을 시도하는 택시와 충돌하게 되었습니다. 사고로 인해 제 오른쪽 무릎에 경미한 타박상이 생기게 되었고, 그 결과 7일간 한방병원에서 치료를 받게 되었습니다.
GPT-4를 활용한 무과실 근거
사고 이후 저의 GPT-4 변호사는 다음과 같은 주장을 펼쳤습니다: "이 사건에서 자전거 운전자에게 어떠한 과실도 없었다." 이 주장은 다음과 같은 사실들에 기반합니다:
첫째, 교통사고가 발생한 횡단보도에는 신호등이 없었으며, 자전거 횡단도가 설치되어 있었습니다. 저는 자전거 횡단도 근처를 따라 이동하고 있었는데, 자전거 횡단도를 지나갈 수 없게 한 택시 때문에 이를 따라갈 수 없었습니다.
둘째, 차량 운전자는 우회전을 하면서 횡단보도의 정지선에서 일시정지 의무를 위반했습니다. 이로 인해 충돌이 발생했는데, 이는 명백한 차량 운전자의 교통법규 위반입니다.
셋째, 차량의 전면이 저의 오른쪽과 충돌했습니다. 이는 저가 횡단보도에 먼저 진입했다는 것을 나타냅니다. 차량 운전자는 저를 미리 인지하고, 횡단보도를 통과하는 저에게 길을 양보해야 했습니다.
넷째, 저는 사고 당시 지그재그 운전이나 음주 운전 등과 같은 중과실을 저지르지 않았습니다. 사고 장소 주변에 차량 운전자의 시야를 방해하는 장애물도 없었기 때문에, 차량 운전자는 저를 충분히 인식할 수 있었어야 합니다.
이렇게 보면, 사고는 명백하게 차량 운전자의 교통법규 위반으로 발생한 것입니다. 따라서 저희는 저에게 과실이 없다는 것을 주장합니다.
배운 점
첫 번째로, 이 사고를 통해 느낀 점은 횡단보도에서 자전거를 타고 가는 것이 생각보다 위험할 수 있다는 것이었습니다. 이번 사고를 통해 그 위험성을 실감하게 되었는데, 이런 점은 자전거를 이용하는 분들에게 반드시 인지하고 있어야 하는 중요한 사항이라고 생각합니다.
셋째로, 택시 보험사와의 합의 과정에 대한 이야기입니다. 사고 당시 택시는 택시공제조합에 속해있었는데, 일반 보험사와는 다르게 합의 과정이 더 어려워 보였습니다. 일반적으로 일반 보험사는 보험사에서 먼저 연락을 주어 합의에 대한 이야기를 진행하지만, 택시공제조합은 내가 전화를 해서 합의를 진행해야 했습니다. 이는 제 주변인들이나 인터넷 정보를 통해 알아본 결과였습니다. 이런 경험을 통해 택시 보험에 대한 이해도가 높아진 것 같습니다.
두 번째로, 입원 치료 과정에서 한방병원의 침치료, 도수치료, 추나치료를 받게 되었습니다. 처음 받아보는 치료였는데, 생각보다 효과가 뛰어나서 신기하였습니다. 특히 도수치료는 아프지만 동시에 시원하게 느껴져서 인상 깊었습니다.
세 번째로, 저는 이번 사고로 인해 택시공제조합이라는 보험사와 처음으로 접하게 되었습니다. 택시공제조합은 일반 보험사와 달리 천천히 합의를 보는 편이라는 것을 알게 되었습니다. 주변인들의 경험과 인터넷 정보를 참고하면서, 오히려 저 자신이 전화를 걸어 합의를 하는 상황이었습니다.
네 번째로, 이 사고를 통해 MRI 검사를 받게 되었는데, 20분 동안 시끄러운 소음을 견디는 것이 매우 힘들었습니다. 그럼에도 불구하고 이런 과정을 통해 제 상태를 정확히 알 수 있어서 다행이라고 생각했습니다.
마지막으로, 이번 사고를 통해 교통법규에 대한 관심이 더욱 커졌습니다. 교통법규를 찾아보면서 운전에 대한 이해가 깊어졌고, 앞으로는 좀 더 안전한 운전을 해야겠다는 생각이 들었습니다. 운전면허는 2년 전에 취득하였지만, 아직은 대중교통을 이용하고 있지만, 이번 경험을 통해 안전 운전의 중요성을 깨달았습니다. 앞으로 가까운 거리를 조심스럽게 운전해보며, 대전 동학사나 대청호 드라이브를 가보는 것도 계획에 넣어야겠다고 생각했습니다.GPT-4 변호사의 주장을 통해 새로운 관점을 얻게 되었습니다. 저는 이제 자전거를 타는 것은 생각보다 위험할 수 있다는 것을 깨달았습니다. 또한 한방 치료가 얼마나 효과적인지, 그리고 보험사와의 합의 과정이 어떻게 진행되는지 등도 배웠습니다. 마지막으로, 이 사고로 인해 운전과 교통법규에 대한 관심이 많아졌습니다.
계획
이를 바탕으로, 제가 2년 전에 취득한 운전면허를 다시 활용하려고 합니다. 안전한 운전 방법을 더 학습하고, 가까운 거리를 자주 운전하며 실력을 향상시키는 것이 목표입니다. 또한 대전 동학사나 대청호 드라이브를 계획에 추가하려고 합니다.
이 사고는 저에게 많은 교훈을 준 중요한 경험 중 하나였습니다. 여러분들도 교통법규를 준수하고 안전 운전에 유의해주시기를 바랍니다. 감사합니다.
프리드리히 니체(Friedrich Nietzsche)는 19세기 독일 철학자로 서구 철학과 현대 지적 역사에 지대한 영향을 미쳤습니다. Nietzsche의 철학은 복잡하고 다면적이지만 몇 가지 핵심 주제는 다음과 같이 요약할 수 있습니다.
전통적 도덕에 대한 비판: Nietzsche는 전통적인 도덕 가치, 특히 기독교에 뿌리를 둔 가치를 거부했으며, 이를 생명을 부정하고 인간의 잠재력을 제한하는 것으로 보았습니다. 그는 개인이 자신의 욕망과 본능에 따라 자신의 가치를 창조하고 진정으로 살아야 한다고 믿었다.
권력에의 의지: 니체는 모든 생명체의 근본적인 원동력으로 "권력에의 의지"라는 개념을 제안했습니다. 그는 권력, 숙달, 자기 극복에 대한 욕구가 인간 행동의 주된 동기라고 주장했습니다.
Übermensch(슈퍼맨): Nietzsche는 기존의 도덕성을 초월하고 자신이 창조한 가치에 따라 살아가는 더 높은 유형의 인간인 Übermensch의 출현을 구상했습니다. Übermensch는 삶을 긍정하는 가치를 포용하고 자제력을 추구하기 때문에 인류가 추구해야 할 이상입니다.
영원회귀: 니체는 우주와 그 안의 모든 사건이 끝없는 주기로 무한히 반복된다는 개념인 영원회귀의 개념을 도입했습니다. 이 개념은 개인이 영원히 반복하고자 하는 방식으로 삶을 살도록 도전합니다.
강점:
Nietzsche의 전통 도덕 비판은 실존주의의 발전에 영향을 미쳤으며 개인이 사회적 규범에 의문을 제기하고 진정성을 포용하도록 장려했습니다.
개인주의와 자제력에 대한 그의 강조는 많은 사람들이 개인의 성장과 자기 계발을 추구하도록 영감을 주었습니다.
Nietzsche의 작품은 심리학, 문학, 예술 등 다양한 분야에서 영향을 미쳤으며 포스트 모던 사상의 발전에 기여했습니다.
약점:
Nietzsche의 사상은 대다수의 사람들을 열등하거나 평범한 것으로 무시하면서 초인적 발전을 촉진한다는 점에서 엘리트주의로 해석될 수 있습니다.
비판론자들은 그의 전통적인 도덕에 대한 거부가 도덕적 상대주의나 허무주의로 이어질 수 있으며, 이는 사회에 부정적인 결과를 가져올 수 있다고 주장합니다.
Nietzsche 자신이 반유대주의자나 민족주의자가 아니었음에도 불구하고 Nietzsche의 작업의 일부 측면은 나치가 그의 아이디어를 전유하는 것과 같이 잘못 해석되거나 오용되었습니다.
Nietzsche의 글쓰기 스타일은 종종 격언적이고 모호하여 그의 아이디어를 해석하고 이해하기 어렵게 만들 수 있습니다.
Nietzsche의 철학이 발전한 역사적, 지적 맥락을 고려하면서 강점과 약점을 모두 인식하면서 뉘앙스로 Nietzsche 철학에 접근하는 것이 중요합니다.
Friedrich Nietzsche의 저서 "Thus Spoke Zarathustra"에서 그는 정신의 세 가지 변형(낙타, 사자, 아이)을 포함하는 은유를 제시합니다. 이러한 변화는 권력에 대한 개인의 의지 발달과 자기 극복 및 개인적 성장을 향한 경로의 여러 단계를 나타냅니다.
낙타: 낙타는 개인이 기꺼이 사회의 가치, 전통 및 규범의 무게를 짊어지는 단계를 나타냅니다. 낙타는 예속, 인내, 무거운 짐을 짊어지는 능력의 상징입니다. 이 단계에서 사람은 사회적 기대에 복종하고 순응하며 외부 권위에 의해 부과된 책임을 떠맡는다. 낙타는 충실한 생물로, 질문하거나 도전하지 않고 배운 가치를 내면화합니다.
사자: 사자는 자신에게 부과된 가치와 기대에 도전하고 거부할 수 있는 힘과 용기를 개발하는 개인의 영적 변화의 다음 단계를 상징합니다. 사자의 주요 임무는 전통, 도덕, 외적 권위의 요구를 나타내는 "네가 하라"는 "큰 용"에게 "아니오"라고 말하는 것입니다. 권력에 대한 강한 의지를 가진 사자는 자유와 자신의 가치를 창조할 권리를 위해 싸운다. 그러나 사자는 여전히 낡은 가치에 대한 반발에 묶여 있고, 그 정체성은 낡은 가치에 대한 저항으로 규정된다.
아이(The Child): 최종 변신은 아이로, 순수함과 창의성, 새로운 시작의 정신을 구현한다. 어린아이는 전통의 제약과 외적 권위로부터 자유로워져 사자단계에서 이를 극복한다. 이 단계에서 개인은 기존의 도덕 체계와 독립적으로 자신의 가치를 창출할 수 있습니다. 아이는 자발성, 장난기, 외부 검증 없이 삶을 긍정할 수 있는 능력을 나타냅니다. 아이가 됨으로써 개인은 영원회귀의 개념을 받아들일 수 있고, 세상을 있는 그대로 받아들이고, 무한히 반복하고 싶은 방식으로 삶을 살 수 있습니다.
낙타, 사자, 아이에 대한 니체의 은유는 자기 극복과 개인의 가치 개발 과정을 생생하게 보여줍니다. 그것은 개인이 사회가 그들에게 부과한 가치와 기대에 의문을 제기하고 궁극적으로 자신의 가치를 창조하고 자신의 조건에 따라 삶을 포용하도록 격려합니다.
Nietzsche의 아동 은유는 "Thus Spoke Zarathustra"의 정신의 세 가지 변형 중 하나로서 개인의 변화와 자기 극복의 마지막 단계를 나타냅니다. 아이는 다음과 같은 몇 가지 주요 특성으로 특징지어지는 삶의 태도를 구현합니다.
순진함: 아이의 삶의 태도는 순진함, 사회가 부과한 가치와 도덕과 관련된 죄책감과 수치심이 없는 것입니다. 이전 단계에서 전통과 외적 권위의 제약을 극복한 아이는 과거의 부담 없이 새로운 관점으로 삶에 접근할 수 있습니다.
창의성: 아이는 창의성과 독창성의 상징입니다. 사회적 기대와 기존의 도덕 체계에 얽매이지 않는 이 단계의 개인은 자신의 가치를 창조하고 세상을 살아가고 경험하는 새로운 방식을 찾을 수 있습니다. 아이의 삶의 태도는 개인의 성장과 변화의 잠재력을 포용하면서 혁신과 자기 표현을 장려합니다.
자발성: 아이는 자발성과 장난기를 나타내며 호기심과 경이로움을 가지고 삶에 접근합니다. 엄격한 규칙이나 원칙에 따르기보다는 아동의 삶의 태도는 유연성, 적응성, 새로운 경험과 아이디어를 탐구하려는 의지를 허용합니다.
삶의 긍정: 아이의 삶의 태도는 삶에 대한 강한 긍정과 세상을 있는 그대로 받아들이는 것이 특징입니다. 아이는 자신의 삶을 무한히 반복할 수 있는 방식으로 살아야 한다는 생각인 영원회귀의 개념을 받아들일 수 있습니다. 이러한 삶의 긍정은 자신의 가치를 창조하고 자신의 용어에서 의미와 목적을 찾는 어린이의 능력에 뿌리를 두고 있습니다.
자제력: 아동의 삶의 태도는 개인이 사회의 외부적 제약과 자신의 내부적 한계를 모두 극복한 자제심을 구현합니다. 이 단계에서 개인은 더 이상 사회적 가치에 대한 반대에 의해 정의되지 않고(사자 단계에서처럼) 대신 자신의 의미와 목적을 창조할 수 있는 능력에서 힘과 자유를 찾습니다.
요컨대 니체의 어린 시절의 삶의 태도는 자기극복과 개인적 변혁의 궁극적인 단계를 나타낸다. 그것은 순수함, 창조성, 자발성, 삶의 긍정, 자제력이 특징입니다. 아이의 삶의 태도를 포용함으로써 개인은 사회가 부과한 한계를 초월하고 자신의 가치와 의미, 삶의 목적을 창조할 수 있습니다.
서비스 제공 가격 설정에 대해 많은 고민을 했다. 유사 서비스의 단가와 비교하면서 적절한 가격을 찾는 노력도 해보았다. 소비자는 같은 성분과 스펙의 두 상품이라 하더라도 가격이 비싼 것이 메리트가 있다고 느끼는 경우도 있었다. 그래서 마케팅 관련 서적을 찾아보던 중 가격 인상의 기술이라는 책이 눈에 들어왔고 목차를 보고 구입을 했다.
요약
가격을 올리는 행위는
가격을 올리는 순간 구매 고객층, 수준이 바뀐다.
가격을 올리고, 서비스에 정보를 더하는 순간 서비스의 가치가 더해진다.
가격을 올리는 순간, 경영의 범위가 확대된다.
상품, 서비스를 높은 가격에 팔기 위한 일반적인 가치
서비스 제공 시
1. 시간과 정성을 쏟는다.
2. 희소하다, 흔치 않다, 제작자가 한정되어 있다, 자라는 데 많은 시간이 든다.
3. 전문가가 있다, 전문가가 선정했다.
4. 역사가 길다, 대대로 이어져 내려 왔다, 이를 뒷받침하는 역사적 근거가 있다.
5. 높으신 분들, 역사적 인물, 저명인사가 애용한다.
6. 온라인으로 유통되지 않는다.
7. 실제로 다녀왔다, 보고 왔다, 멀리 지구 반대편에서 들여 왔다, 갖고 왔다.
8. 특허를 갖고 있다.
9. 개발과정에 놀라운 뒷이야기가 숨겨져 있다.
10. ㅇㅇ가 보장한다. 세계적인 연구기관 ㅁㅁ에서 인정받았다.
11. 장기간 사용해도 성능이 떨어지지 않는다.
12. 수만 번의 테스트를 거쳤다.
13. 보증수리 시스템이 잘 갖춰져 있다.
14. 긴급 상황에 대한 대처가 뛰어나다. 타 업체에서 흉내내지 못한다.
'타 업체와의 비교'와 함께 이런 '일반적인 가치'가 상품 설명에 추가된다면 더욱 큰 효과를 거둘 수 있다.
상품, 서비스의 가격은 일반적인 가치와 고객 특유의 가치로 결정된다.
일반적인 가치는 보편적으로 통용되는 가치로 위의 14가지 요소로 설명된다.
고객 특유의 가치는 고객마다 다르게 느끼는 고유의 가치다. 고객을 선별하고 고를수록 높은 가격에 판매할 수 있다.
제아무리 좋은 상품을 만들었지만 아무도 그 가치를 모른다면 무가치한 것이나 마찬가지다. 설명이라는 형태로 정보가 부가되어야만 비로소 상품에 가격이 붙는다.
가격 인상으로 인해 고객층이 완전히 바뀌면서 이 레스토랑은 관광코스에 들어갈 정도로 큰 인기를 얻었다. 지역민들 중에서 별장 소유주나 부유층 등이 단골로 찾아오면서 비수기 매출도 몇 배씩 늘었다.
가치를 전혀 모르는 고객을 대상으로 가치를 바르게 전달할 수 있다면, 여러분이 제공하는 상품 및 서비스의 가치는 무궁무진하게 올라갈 수 있다.
상품 및 서비스에 원래부터 형태가 없다면 얼마든지 자유롭게 붙일 수 있다.
타 업체가 하나같이 낮은 가격을 고수하고 있다면 이는 가격을 인상시킬 수 있는 최적의 환경이다. '비싼 것에는 나름의 이유가 있다'라고 생각하는 소비자의 심리가 가격 인상을 성공으로 이끌어 줄 것이다.
고객 특유의 가치에 대해 충분히 이야기한 후, 요금 제시와 구매 결정 단계에 이르렀다면 반드시 질문형 문장과 표현을 사용해서 마무리해야 한다. 마지막에는 반드시 질문형 표현을 사용하는 것이 중요하다 (가격은 ㅇㅇㅇ엔입니다만, 어떠십니까?, 괜찮으시겠습니까?, 문제없으십니까?)
느낀점
저가 전략이 많은 고객을 모을 수 있고, 다양한 경험을 쌓을 수 있는 장점이 있지만, 가격 인상을 통해 시간을 확보할 수 있고, 고객층을 달리할 수 있다는 점에서 좋은 방법이라고 생각했다. 책에서 이야기하는 일반적인 가치과 개인 마다의 고객 특유의 가치를 충분히 설명했는지 되돌아보아야겠다.