Twitter ν”„λ‘œμ νŠΈλŠ” Web Front-end 의 κΈ°μˆ μ„ 읡히기 μœ„ν•΄ μ§„ν–‰ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
Twitter(νŠΈμœ„ν„°) μ™€μ˜ μ €μž‘κΆŒ λ¬Έμ œκ°€ 생길 μ‹œ μ‚­μ œ ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

각 ν΄λ”λ³„λ‘œ README.md 파일이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

Documentation

Preview

둜그인 νŽ˜μ΄μ§€

이미지

κ°€μž… νŽ˜μ΄μ§€

이미지

μ½˜ν…μΈ  νŽ˜μ΄μ§€

이미지

ν”„λ‘œν•„ νŽ˜μ΄μ§€

이미지

λ°˜μ‘ν˜•

이미지

폴더 ꡬ쑰

Twitter__source
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ build/
β”‚   β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ static/
β”‚   └── index.html
β”‚
└── server/
    β”œβ”€β”€ route/
    β”œβ”€β”€ secret/
    β”œβ”€β”€ service/
    └── app.js

κΈ°λŠ₯

  • νšŒμ›κ°€μž…
  • 둜그인
  • νŒ”λ‘œμš°, μ–ΈνŒ”λ‘œμš°
  • 이미지 μ—…λ‘œλ“œ
  • νŠΈμœ— μˆ˜μ • 및 μ‚­μ œ
  • μžκΈ°μ†Œκ°œ μž‘μ„± 및 μˆ˜μ •
  • νšŒμ› 검색
  • λ°˜μ‘ν˜• μ›Ή

κ°œλ°œν™˜κ²½

Vue.js

μ»΄ν¬λ„ŒνŠΈ 기반 μ›Ή ν”„λ ˆμž„μ›Œν¬

Vuex

Vue.js 의 μƒνƒœκ΄€λ¦¬λ₯Ό μœ„ν•œ 라이브러리

express.js

Node.js μƒμ—μ„œ λ™μž‘ν•˜λŠ” μ›Ή 개발 ν”„λ ˆμž„μ›Œν¬

axios.js

비동기 톡신을 μœ„ν•œ λͺ¨λ“ˆ

knex.js

Node.js SQL λΉŒλ” 및 질의 κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” 라이브러리

multer

파일 μ—…λ‘œλ“œλ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” multipart/form-data λ₯Ό 닀루기 μœ„ν•œ node.js 의 미듀웨어

AWS: EC2

μ•„λ§ˆμ‘΄ μ›Ήμ„œλΉ„μŠ€μ˜ EC2λ₯Ό μ΄μš©ν•΄ ν˜ΈμŠ€νŒ…

AWS: RDS

postgreSQL 을 μ‚¬μš©

CSS - BEM 방법둠

개발기

이 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•œ μ΄μœ λŠ” μ›λž˜ DB, μ„œλ²„μ™€μ˜ 톡신법과 Vue.js λ₯Ό 읡히기 μœ„ν•΄ μ‹œμž‘μ„ ν–ˆλ‹€.
사싀 μ–΄λŠ νšŒμ‚¬μ˜ μž…μ‚¬κ³Όμ œκ°€ μžˆμ—ˆλŠ”λ° 생각보닀 λ‚΄ μžμ‹ μ΄ 기본을 더 μ•Œμ§€ λͺ»ν•œλ‹€λŠ” 사싀에 좩격을 λ°›μ•„ μ§„ν–‰ν–ˆλ‹€λŠ”κ²ƒμ΄ λ§žλŠ” 것 κ°™λ‹€. κ²°κ΅­ 과제λ₯Ό μ™„μ„±ν•˜μ§€ λͺ»ν•˜μ˜€κ³  λ‹Ήμ—°νžˆ μž…μ‚¬λ₯Ό λͺ»ν•˜μ˜€λ‹€. κ·Έλž˜μ„œ 이 참에 λŒ€ν•™κ΅ 포트폴리였용으둜 λ§Œλ“€μ–΄λ³΄μž ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ λ§Œλ“€μ–΄λ³΄μ•˜λ‹€. 총 기간은 μ•½ 1달 λ°˜μ •λ„ 걸린것같닀. 쀑간쀑간 개인적인 λ§Žμ€ 일듀이 μžˆμ–΄μ„œ μ’€ 더 걸린것 κ°™μ•˜λ‹€. λ‹€ν–‰νžˆ λͺ©ν‘œμ˜€λ˜ 9μ›” μ™„μ„±μ΄λΌλŠ” 기간은 μ§€μΌœλƒˆλ‹€.

μ²˜μŒμ—λŠ” κ°„λ‹¨ν•œ λΉ„λ™κΈ°ν†΅μ‹ μœ„μ£Όλ‘œ κΈ€λ§Œ 올리게 ν•˜μ˜€λ‹€κ°€ 사진도 μ˜¬λ¦¬κ³ μ‹Άμ–΄μ‘Œκ³  μš•μ‹¬μ΄ 점점 컀져 μŠ€μΌ€μΌλ„ μƒλŒ€μ μœΌλ‘œ 덩달아 μ»€μ‘Œλ‹€. Atomic Design 을 λ°”νƒ•μœΌλ‘œ μ§„ν–‰ν•˜μ˜€λ‹€κ°€ 40% μ―€ 왔을 λ•Œ 잘 μ•ˆλ§žλŠ” 것 κ°™μ•„ Vallistaλ‹˜μ˜ spa ꡬ쑰λ₯Ό μ΄μš©ν–ˆλ‹€. 잘 μ•ˆλ§žλ‹€κ³  μƒκ°ν•œ μ΄μœ λŠ” λ‚΄κ°€ 아직 atomic design에 λŒ€ν•œ 이해가 λΆ€μ‘±ν–ˆμ„ μˆ˜λ„ μžˆμ§€λ§Œ μ»΄ν¬λ„ŒνŠΈκ°€ λŠ˜μ–΄λ‚¨μ— 따라 관리가 어렀웠을 λΏλ”λŸ¬ λΆ„λ¦¬λ˜λŠ” μ»΄ν¬λ„ŒνŠΈλ“€μ΄ λ„ˆλ¬΄ λ§Žμ•„ κ°ˆμ•„νƒ€κ²Œ λ˜μ—ˆλ‹€.

이 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° λŠλ‚€ λ°”λ‘œλŠ” μ‘°κ·Έλ§ˆν•œ μ›Ή μ‚¬μ΄νŠΈλ„ ꡉμž₯히 λ§Žμ€ λ…Έλ ₯이 λ“€μ–΄κ°„λ‹€λŠ”κ²ƒμ„ λŠκΌˆλ‹€. λ‚΄ 전곡이 μ•„λ‹ˆμ—ˆμ„ λ•ŒλŠ” μ‰½κ²Œ μƒκ°ν–ˆλ˜ 것듀이 κΈ°λŠ₯ ν•˜λ‚˜ν•˜λ‚˜ κ΅¬ν˜„ν•˜λ©΄μ„œ 'κ°„λ‹¨ν•œ κΈ°λŠ₯은 μ ˆλŒ€ μ—†λ‹€' λΌλŠ”κ²ƒμ΄μ—ˆλ‹€. μ•žμœΌλ‘œ 'κ°„λ‹¨ν•œ κΈ°λŠ₯' μ΄λΌλŠ” 말은 λΉΌμ•Όν•  λ“― μ‹Άλ‹€. λ˜ν•œ 섀계가 ꡉμž₯히 μ€‘μš”ν•˜λ‹€λŠ”κ²ƒμ΄ 손가락과 λ©˜νƒˆλ‘œμ¨ λŠκ»΄μ‘Œλ‹€. μ‹ μ€‘ν•œ μ„€κ³„λŠ” κ°œλ°œμ„ 즐겁게 ν•˜λŠ” 것 κ°™λ‹€. κ²½ν—˜μ΄ 많이 μ—†μ—ˆλ˜ 터라 섀계에 λŒ€ν•΄ μƒκ°ν•˜μ§€ λͺ»ν•˜κ³ μžˆμ—ˆλŠ”데 κ°œλ°œμ„ μ§„ν–‰ν•˜λ©° λ§Žμ€ λͺ¨μˆœ(?) 듀이 생겼닀. λ¬Όλ‘  λ§Žμ€ μ΄μœ κ°€ μžˆκ² μ§€λ§Œ, 그쀑 ν•˜λ‚˜λŠ” 잘λͺ»λœ μ„€κ³„λ‘œ μΈν•œ λͺ¨μˆœλ“€μ΄μ—ˆλ‹€. μ„€κ³„λ§Œ μ œλŒ€λ‘œ λ˜μ–΄λ„ λ“€μ–΄κ°€λŠ” λΉ„μš©μ΄ μ€„μ–΄λ“ λ‹€λŠ” κ²ƒμ΄μ—ˆλ‹€.

λ¦¬νŒ©ν† λ§λ„ ꡉμž₯히 μ€‘μš”ν–ˆλ‹€. κ°œλ°œμ„ 70% 정도 ν–ˆλ˜ μˆœκ°„μ— μ½”λ“œμ—λŒ€ν•œ μžμ‹ κ°μ΄ μ‚¬λΌμ‘Œλ‹€. μ•„λ§ˆλ„ κΉ”λ”ν•˜μ§€ λͺ»ν•œ μ½”λ“œκ°€ λ¬Έμ œμ˜€λ˜ 것 κ°™λ‹€. μΌμ’…μ˜ μ§€ν‘ΈλΌκΈ°λ§ˆλƒ₯ λ„μ„œκ΄€μ— Clean Code λΌλŠ” 책을 μ ‘ν•˜κ²Œ λ˜μ—ˆλ‹€. (κ΄‘κ³  μ•„λ‹™λ‹ˆλ‹€ γ…Ž) λ‚˜μ˜ λ¬Έμ œμ€‘ ν•˜λ‚˜λŠ” '일단 짜고 이따가 λ¦¬νŒ©ν† λ§ν•˜μž' μ˜€λŠ”λ° 이 μ±…μ—μ„œλŠ” 'λ₯΄λΈ”λž‘μ˜ 법칙(leblanc`s raw) : λ‚˜μ€‘μ€ μ˜€μ§€ μ•ŠλŠ”λ‹€' λ₯Ό κ°•μ‘°ν–ˆλ‹€. 또 μΈμƒκΉŠμ—ˆλ˜ ꡬ문이 'μžμ „κ±° νƒ€λŠ” λ²•μ˜ 물리적인 지식을 μ•Œλ €μ£Όκ³  λͺ¨λ“ κ²ƒμ„ μ•Œλ €μ£Όμ–΄λ„ μ²˜μŒνƒ€λ©΄ 100% λ„˜μ–΄μ§„λ‹€' μ˜€λ‹€. 이 ꡬ문을 λ³΄λ‹ˆ λ‚΄κ°€ μ‹€μ œλ‘œ ν”„λ‘œμ νŠΈλ₯Ό ν•΄λ³Έ κ²½ν—˜μ΄ μ—†μ–΄ 많이 λ„˜μ–΄μ‘Œλ˜κ²ƒ κ°™λ‹€. μ§€κΈˆλ„ 많이 λ„˜μ–΄μ§€κ³  μžˆμ§€λ§Œ 잘 μΌμ–΄μ„œμ„œ κ°„λ‹€. λ§Žμ€ μ—°μŠ΅μ„ 톡해 μ˜€λŠ˜λ³΄λ‹€ μ’€ 더 λ‚˜μ€ 내일이 λ˜μ–΄μ•Όκ² λ‹€.

λΆ€μ‘±ν•œμ 

섀계

κ°€μž₯ 크게 느꼈던 뢀뢄쀑 ν•˜λ‚˜λ‹€. μ•žμ„œ λ§ν–ˆλ“―μ΄ 잘 μ„€κ³„λœ ν”„λ‘œμ νŠΈλŠ” κ°œλ°œν•˜κΈ°κ°€ ν•œκ²° μ‰¬μ›Œμ§„λ‹€. μ•žμœΌλ‘œ ν”„λ‘œμ νŠΈλ₯Ό 진행할 λ•Œ λͺ¨λ“  경우λ₯Ό μ‚΄ν”Όκ³  μ‹œμž‘μ„ ν•΄μ•Όν•  λ“― ν•˜λ‹€.

λ¦¬νŒ©ν† λ§

λ³€μˆ˜μ˜ μ΄λ¦„μ΄λ‚˜ ν•¨μˆ˜μ˜ 이름 λ“± 넀이밍에 μ§‘μ€‘ν•˜κ³  ν•¨μˆ˜λŠ” κ·Έ κΈ°λŠ₯만 μˆ˜ν–‰μ„ 잘 ν•˜κ²Œλ” κ΅¬ν˜„ν•΄μ•Όκ² λ‹€. λ˜ν•œ λ°˜λ³΅λ˜λŠ” μ½”λ“œλŠ” λ‹€μ‹œν•œλ²ˆ 생각해본닀.

git

이 ν”„λ‘œμ νŠΈκ°€ λλ‚˜κ³  λ‚˜λ©΄ git μ—λŒ€ν•΄μ„œ 쑰금 더 κ³΅λΆ€ν•˜λ € ν•œλ‹€. μ§€κΈˆμ€ μ•„μ£Ό 기본적인 μž‘μ—…λ°–μ— ν•˜μ§€λͺ»ν•˜λŠ”데 λ‚˜μ€‘μ— ν˜‘μ—…μ„ μœ„ν•΄ μ΅ν˜€λ‘λ €ν•œλ‹€.

μ•Œκ³ λ¦¬μ¦˜

ν”„λ‘œμ νŠΈ 진행 도쀑에 κΈ°λŠ₯ ν•˜λ‚˜ν•˜λ‚˜λΆ€ν„° μ „λΆ€ μ•Œκ³ λ¦¬μ¦˜μ΄ λ“€μ–΄κ°€λŠ”λ° μƒκ°μ˜ νž˜μ„ κΈΈλŸ¬μ£ΌλŠ” 쒋은 곡뢀일 것 κ°™λ‹€

μ΄λ―Έμ§€νŒŒμΌ 관리

이미지 파일 관리λ₯Ό 잘 처리λ₯Ό ν•˜μ§€ λͺ»ν•œ 것 κ°™λ‹€. λ‹€μŒ ν”„λ‘œμ νŠΈμ—λŠ” 파일처리λ₯Ό μ’€ 더 μ€‘μ μ μœΌλ‘œ 두어 진행 ν•΄μ•Όκ² λ‹€.

λ§ˆλ¬΄λ¦¬μ§€μœΌλ©°

λ‚˜λ¦„ 혼자 ν•˜κΈ°μ—λŠ” μ€‘κ·œλͺ¨κΉŒμ§„ μ•„λ‹ˆκ³  μ†Œ ~ 쀑 사이인 ν”„λ‘œμ νŠΈμ˜€λ‹€. 쀑간쀑간 학업도 μžˆμ—ˆκ³  개인 사정도 μ‘΄μž¬ν•΄ μ§€μ—°λœ λŠλ‚Œμ΄ μžˆμ§€λ§Œ 잘 마무리 μ§“κ²Œ λ˜μ–΄ λΏŒλ“―ν•˜λ‹€. κΈ°λŒ€μ™€λŠ” λ‹€λ₯΄κ²Œ μΆ”κ°€ν•˜μ§€ λͺ»ν•œ κΈ°λŠ₯듀도 μžˆμ§€λ§Œ λ‹€μŒμ„ κΈ°μ•½ν•˜λ©° 마무리 μ§€μ—ˆλ‹€.
쒋은 κ²½ν—˜μ΄μ—ˆκ³  기술적인 λ©΄λ³΄λ‹€λŠ” λˆκΈ°μ™€ μ •μ‹ λ ₯의 싸움이 더 μ»Έλ‹€. μ–΄μ¨Œλ“  μ˜€λŠ˜λ³΄λ‹€ λ‚˜μ€ 내일을 μ€€λΉ„ν•˜λŠ” 첫번째 도약인 λ“― ν•˜λ‹€. λΆ€μ‘±ν•˜μ§€λ§Œ μ„±μž₯ν•˜λŠ” λͺ¨μŠ΅μ„ μ§€μΌœλ΄μ£Όλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. (κΎΈλ²…)