일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Spring
- 인턴생활
- wooza
- 스프링
- 미디어서버
- AWS
- 멀티쓰레드
- 실검
- REST API
- 자바
- 이커머스 api
- 스트리밍서버
- @async
- 서버구축
- async
- SpringBoot
- db 스키마
- 라이브커머스
- mariaDB
- API
- api설계
- restful
- 네이버
- 이커머스
- cmi
- autowired
- DB 설계
- RDB
- JPA
- Gradle
- Today
- Total
Polymor!
[e-commerce] 개발 동기와 그 여정들 본문
이커머스를 만들다.
어쩌면 웹을 관심갖고 있는 개발자에게 첫번째 도전과제가 아닐까싶다.
사실은, 이커머스를 만들고싶었던 것은 아니다. 나는 영상에 관심이 많고 전통적인 사진과 텍스트 데이터들은 머지않은 미래엔 영상의 프레임으로 그 흐름이 바뀔 것으로 전망하기 때문에. 아마존, 쿠팡, 마켓컬리, 네이버쇼핑, 11번가, 하다못해 당근마켓.. 모두 여러장의 사진들과 글로서 시장이란 플랫폼이 활성화 되있는게 현재 이커머스의 패러다임이다.
그러다 틱톡을 알게되었고, 소셜 앱은 거의 사용하지않는 나는 엄청난 락인효과를 경험했고 짧은 영상 1분에 담긴 메세지들의 강력함을 느꼈다. 아, 그럼 영상 기반의 이커머스 플랫폼을 구축하면, 기존의 넘치는 이커머스들과 차별점을 두면서 유저들에게 재미의 요소까지 줄 수 있겠구나 라는 생각을 하게되었다.
'소프트웨어 아키텍처 설계 가이드 (저자 강승준) ' 라는 책을 읽어보면, 사용자 관점의 품질 특성 중 고려해야하는 사항 중 하나는 '만족성'이고 그 내엔 재미라는 요소가 크게 자리잡는다. 소프트웨어의 기술력 발전이 사용자 기대에 미치지 못하고 있다는게 충격이면서도 사실이다.
유저는 더 강력하고 편리한 걸 원한다. 많은 이들이 인공지능에 열광하듯, 단순한 로직처리는 (물론 단순한건아니지만..사용자기준) 큰 매력이없다.
서두가 길어졌지만, 영상 기반의 이커머스를 개발하고싶어서, 우선은 보편적인 이커머스 웹서버를 개발하게 되었다.
프레임웤으로는 Java 기반의 Spring Framework를 고심끝에 택하게 되었는데, 여기엔 두가지 큰 이유가있다.
첫번째로는 JPA를 경험해보고싶었다. 기존의 JDBC나 하이버네이트 보다 더 강력한 ORM 기술인 JPA에 대해 엄청 관심이 생겼다. JPA에 대해 관심이 많은 독자라면 인프런 김영한님의 강의를 강추한다. 나는 패키지로 전 강의 수강을 했고 정말 많은 실무적인 도움을 받았다.
www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1#
이 강의에선 MVC이외의 '도메인 주도 설계'에 많은 예제들과 설명들을 함께 해주시는데, 새로운 시각에 대한 고민과 기존의 MVC를 더 잘 이해할 수있었어서 개인적으론 정말 추천한다. 물론 이미 너무나 유명해서.. 다들 잘 알 것이라고 생각한다!!
두번째로는 국내에서 스프링을 많은 기업에서 채택했기때문이다. 내가 아는 바로는 스프링은 견고하고 안정된 프레임워크이기 때문에 첫 진입장벽은 어려울 수 있으나 이 산을 넘으면 상상 이상의 새로운 경험을 해볼 수 있을 것 같다는 생각이들었다. 파이썬 Flask를 경험해보긴 했으나, 많은 레퍼런스가 없었고 빠른 개발의 장점 반면에 큰 프로젝트를 만들기엔 부족했던 기억이있다.
몇명으로 꾸려진 팀으로는 경험하기 힘든 큰 프로젝트에 참여해보고싶기도 하고 그런 기회를 부여 받기 위해선 스프링을 기반으로 경험을 쌓아두면 좋을 것 같다는 생각이 들었다.
우리가 현재 진행하고 있는 프로젝트의 기술 스택은 아래와 같다.
- Spring Boot (Java 11)
- Gradle , JUnit
- AWS E2C(deploy)
- AWS RDB & Maria DB
- H2 Database (for test)
- JPA, Mybatis
- Jenkins, Github
- Docker
- Vue.js
- HLS
- Redis
이번 프로젝트를 통한 개인적으로 몇가지 성장점을 희망하는데, 가장 큰건 스프링 생태계를 몸소 이해하고 체득하고싶고, 또 Jenkins, MicroServiceArchitecture, Azure 등과 같은 인프라와 클라우딩 컴퓨팅 등에 대한 경험을 많이 해보고싶다.
팀원분 중 한분이 보안쪽에서 일을하시고 도커 쿠버네틱스 자격증도 보유하고 계셔서 개인적으로 많이 멘토링도 해주시고해서.. 그저 감사히 배우고 있다. 프로젝트를 하게 되면 사실 제일 어렵고 힘든건 '협업'을 어떻게 효과적으로 할 것이냐인데, 이부분에 대해 항상 회의하고 고심하면서 더 좋은 방향성을 찾고 있다. 때로는 필요에 의해 수동으로 머지작업을 밤새 할때도 있지만.. 이것도 다 경험이 될거라고 생각하며.
사실 프로젝트를 시작한지는 꽤 되었고, RestAPI까지 설계를 완료한 상태이며 구현에 중점을 두고 진행하는 시기이다. 늘 자주 포스팅을 하면서 리마인드하고싶었으나 막상 프로젝트에 매료되면 이런 작업을 해나갈 마음의 여유가 없어 늦게올렸지만, 꼭 끝맺음을 잘해서 하나의 완성된 프로젝트로 많은 나와같은 개발자들과 공유하고싶다. 2021년의 큰 목표중하나이다 :)
'Web' 카테고리의 다른 글
[e-commerce] Rest API 설계 디자인 (0) | 2021.02.07 |
---|---|
[e-commerce] ORM & DB 스키마 설계 (1) | 2021.02.06 |
wowza 스트리밍 서버 구축하기 (0) | 2020.11.30 |
[네트워크] 비동기와 동기 그리고 멀티 쓰레드에 관한 이야기. (0) | 2020.07.28 |
Tiktok 스트리밍 서비스 앱 (0) | 2020.06.07 |