|
| 1 | +# 10. 웹 서비스 구축시 알았으면 좋았을 것들 |
| 2 | + |
| 3 | +이번 시간은 이 시리즈의 마지막 시간으로 웹 서비스 구축시에 미리 알았으면 좋았을 것들을 정리하였습니다. |
| 4 | +(모든 코드는 [Github](https://github.com/jojoldu/springboot-webservice/tree/feature/10)에 있습니다.) |
| 5 | + |
| 6 | +회사나 팀 단위의 서비스가 아닌, **1인 개발로 서비스 구축시 다음과 같이하면 좋았었던 경험**을 나열하였습니다. |
| 7 | +회사나 팀 단위의 서비스라면 전혀 다를수 있습니다. |
| 8 | +1인 개발이라 하더라도 개인마다 느낀 점이 전혀 다를수 있기 때문에 **저 개인의 경험**을 토대로 했다는점을 먼저 말씀드립니다. |
| 9 | + |
| 10 | +## 회원 서비스 |
| 11 | + |
| 12 | +* 회원 서비스는 웬만하면 **OAuth로 구축하는 것을 추천** |
| 13 | + * 직접 구현할 경우 배보다 배꼽이 커지는 경우가 자주 발생 |
| 14 | + * 직접 구현시 다음을 전부 구현해야함 (OAuth에도 구현해야하는 것 제외) |
| 15 | + * 로그인 보안 |
| 16 | + * 회원가입시 이메일, 전화번호 인증 |
| 17 | + * 비밀번호 찾기 |
| 18 | + * 비밀번호 변경 |
| 19 | + * 회원정보 수정 |
| 20 | + * 개인정보 보안 |
| 21 | + * 회원 관련 CS 대응 |
| 22 | + * OAuth 로그인 구현시 위 부분을 모두 **구글/네이버/페이스북 등에 맡기면** 되서 심플해짐 |
| 23 | + * 서비스 개발에 집중할수 있음 |
| 24 | +* 서비스 초기에는 세션 저장소로 꼭 Nosql(Memcache, Redis) 등을 쓰지 않아도 됨 |
| 25 | + * **서비스 초기에는 RDS를 세션 저장소**로 써도 좋음 ([이전 포스트](http://jojoldu.tistory.com/170) 참고) |
| 26 | + * 기본 세션(톰캣 세션)을 쓰게 되면 톰캣이 재시작하는 순간 (배포나 스위치) 모든 로그인이 풀려버리게 됨 |
| 27 | + |
| 28 | +## 캐시 전략 |
| 29 | + |
| 30 | +* API 결과 데이터 혹은 HTML 렌더링 결과는 클라이언트에서도 캐시할 수 있음 |
| 31 | +* 웹 서비스라면 **브라우저 변수를 적극 활용하면 서버 자원을 아낄수 있음** |
| 32 | + * 예를 들어 화면의 탭을 누를때마다 화면이 변경된다면, 탭의 결과와 탭 클릭시간을 **브라우저 변수**로 저장 |
| 33 | + * 이전에 동일 탭 클릭시간에서 5초 이내로 다시 탭을 클릭하면 변수에 저장된 랜더링 결과를 그대로 다시 반환하고, 5초 이상 지났다면 다시 Ajax로 데이터를 반환해서 저장하고 랜더링하면 됨 |
| 34 | + * 5초이내로 잦은 탭 클릭에 대한 서버 자원 요청을 아낄수 있음 |
| 35 | + |
| 36 | +* [kingbbode님의 Cache](https://docs.google.com/presentation/d/1tlSTzVxukHlsi_nXbTkVzk_QkOXNBDRfGcYXjggEAek/edit#slide=id.g2c02ac6770_0_221) 설명 참고 |
| 37 | + |
| 38 | +## 써드파티 |
| 39 | + |
| 40 | +* 메인이 되는 기능 외에 나머지는 전부 써드파티 라이브러리에 의존하는걸 추천 |
| 41 | +* 1인 개발은 무엇보다 개발 시간이 부족함 |
| 42 | +* 메인 기능 개발도 하기전에 무산될수 있기 때문에 최대한 외부 서비스를 이용할것 |
| 43 | + * 댓글 : [DISQUS](https://disqus.com/) |
| 44 | + * 웹로그 : [Google Analytics](https://www.google.com/analytics/) |
| 45 | + * CDN : [Cloud Flare](https://www.cloudflare.com/plans/) |
| 46 | + * 외부 API 연동 : [Zapier](https://zapier.com/) |
| 47 | + * 페북 API와 Slack & 본인 API 연동 등 |
| 48 | + |
| 49 | +## 중요 |
| 50 | + |
| 51 | +가장 중요한 팁은, **웹 서비스를 하는 회사에서 몇년간 일해보는 것**입니다. |
| 52 | +SI, SM이 아니라 자사 서비스를 하는 곳에 가서 |
| 53 | +즉, 목표로 해야하는 곳은 S?S, C?S, C?C 등 보다는 네이버/라인/카카오/쿠팡/우아한형제들/푸드테크/야놀자/토스 등을 추천합니다. |
| 54 | +연봉이 대기업 3사보다 낮을수도 있지만, 대규모 트래픽의 서비스를 개발/운영 한 경험을 얻게 됩니다. |
| 55 | + |
| 56 | + |
| 57 | +## 후기 |
| 58 | + |
| 59 | + |
| 60 | + |
0 commit comments