λ‘œμΌ“πŸΎ
article thumbnail

https://web.obsidianscheduler.com/why-developers-keep-making-bad-technology-choices/

개발 μ΄μŠˆκ°€ λŒ€λΆ€λΆ„ κ·Έλ ‡μ§€λ§Œ, 기술적인 츑면보닀 μ˜μ™Έλ‘œ μ˜μ‚¬μ†Œν†΅ 문제 같은 인적 μš”μ†Œκ°€ 원인이 될 λ•Œκ°€ λ§ŽμŠ΅λ‹ˆλ‹€. 캐리 ν”Œλ¦¬μ²Όμ€ "μ™œ κ°œλ°œμžλŠ” 잘λͺ»λœ 기술 선택을 λ°₯ 먹듯이 ν•˜λ‚˜?"λΌλŠ” 제λͺ©μ˜ λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€μ—μ„œ κ·Έ 원인을 λ‹€μ„― κ°€μ§€λ‘œ λΆ„λ₯˜ν–ˆμŠ΅λ‹ˆλ‹€. ν•˜λ‚˜μ”© μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

이 글은 μ™œ κ°œλ°œμžλŠ” 잘λͺ»λœ 기술 선택을 λ°₯ 먹듯이 ν•˜λ‚˜? 와 Optimizing Java λΌλŠ” μ„œμ μ„ μ°Έκ³ ν•˜μ—¬ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 

지루함

 

κ°œλ°œμžλŠ” λŒ€λΆ€λΆ„ 자기 역할에 지루함을 느끼고 λ­”κ°€ μƒˆλ‘­κ³  도전적인 일을 μ°Ύμ•„ 같은 νšŒμ‚¬ λ˜λŠ” μ•„μ˜ˆ λ‹€λ₯Έ 곳으둜 λ– λ‚  ꢁ리λ₯Ό ν•˜λŠ” μ‚¬λžŒλ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 사내에 λ”±νžˆ λ§ˆλ•…ν•œ κΈ°νšŒκ°€ μ—†κ±°λ‚˜ λ‹€λ₯Έ νšŒμ‚¬λ‘œ μ΄μ§ν•˜λŠ” 게 μ—¬μ˜μΉ˜ μ•Šμ„ λ•Œλ„ 있겠죠.

 

λ¬Όλ‘ , μ§€λ£¨ν•œ 일상을 잘 μ°Έκ³  κ²¬λ”œ 뿐만 μ•„λ‹ˆλΌ μ™Έλ € 더 쉽고 νŽΈν•œ 삢을 μΆ”κ΅¬ν•˜λŠ” κ°œλ°œμžλ„ μžˆμŠ΅λ‹ˆλ‹€. μ–΄μ¨Œλ“ , 개발자의 지루함을 ν”„λ‘œμ νŠΈμ— μ—¬λŸ¬ κ°€μ§€λ‘œ 해약을 끼칠 수 μžˆμŠ΅λ‹ˆλ‹€. μΌλ‘€λ‘œ, Collections.sort() ν•œ 쀄이면 될 것을 직접 ν€΅μ†ŒνŠΈ 같은 μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ„ κ΅¬ν˜„ν•΄ ν•„μš” μ΄μƒμœΌλ‘œ λ³΅μž‘ν•˜κ²Œ μ½”λ”©ν•˜λŠ” κ°œλ°œμžκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆκ» μ•Œλ €μ§€μ§€ μ•Šμ€ 기술둜 μ»΄ν¬λ„ŒνŠΈλ₯Ό μ œμž‘ν•˜κ±°λ‚˜, λ§žμ§€λ„ μ•Šμ€ μœ μŠ€μΌ€μ΄μŠ€μ— μ–΅μ§€λ‘œ κΈ°μˆ μ„ μš±μ—¬λ„£λŠ” λ“± μ—¬λŸ¬ 가지 λ°©λ²•μœΌλ‘œ 지루함을 ν‘œμΆœν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

 

μ‹€μ œλ‘œ 저도 파이썬 κ΄€λ ¨ κ°œλ°œμ„ ν–ˆμ„ λ•Œ sort() ν•¨μˆ˜λ₯Ό μ“°λ©΄ 될 κ±Έ 괜히 뽐내고 μ‹Άμ–΄μ„œ ν€΅μ •λ ¬μ΄λ‚˜ κ³„μˆ˜μ •λ ¬μ„ μ‚¬μš©ν•œμ μ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λΉ…μ˜€ ν‘œκΈ°λ²• κΈ°μ€€μœΌλ‘œ 퀡정렬보닀 파이썬 λ‚΄μž₯ ν•¨μˆ˜μΈ sort()κ°€ 더 λΉ λ₯΄λ‹€λŠ” κ±Έ μ•Œλ©΄μ„œλ„μš”.. λ°˜μ„±ν•©λ‹ˆλ‹€

 

이λ ₯μ„œ 뢀풀리기

 

지루함 λ•Œλ¬Έμ— κΈ°μˆ μ„ κ³Όμš©ν•˜λŠ” κ°œλ°œμžκ°€ μžˆλŠ” 반면, 본인의 이λ ₯μ„œλ₯Ό κ³ΌλŒ€ 포μž₯ν•  ꡬ싀을 μ°ΎλŠ” κ°œλ°œμžλ„ μžˆμŠ΅λ‹ˆλ‹€. ꡬ직 μ‹œμž₯에 λ‹€μ‹œ λ›°μ–΄λ“€ 즈음, μ–΄λ–»κ²Œ ν•˜λ©΄ 자기 연봉과 λͺΈκ°’을 높일 수 μžˆμ„κΉŒ 골λͺ°ν•˜λŠ” κ±°μ£ . 잘 κ΅΄λŸ¬κ°€λŠ” νŒ€μΉ˜κ³  이런 생각을 ν•˜λŠ” νŒ€μ›μ΄ ν•œ μ‚¬λžŒλ„ μ—†λŠ” κ²½μš°λŠ” λ“œλ¬Όκ² μ§€λ§Œ, μ–΄μ¨Œλ“  ν”„λ‘œμ νŠΈλ₯Ό λΆˆν•„μš”ν•œ λ°©ν–₯으둜 끌고 κ°€λŠ” μ„ νƒμ˜ λ°œλ‹¨μ΄ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

 

개발자의 지루함, 이λ ₯μ„œ 뢀풀리기 탓에 λΆˆν•„μš”ν•œ κΈ°μˆ μ„ 자꾸 λ§λŒ„ κ²°κ³ΌλŠ”, 기쑴에 κ°œλ°œμžκ°€ 더 쒋은 νšŒμ‚¬λ‘œ μ΄μ§ν•œ ν›„ μ•„μ£Ό μ˜€λž«λ™μ•ˆ μ‹œμŠ€ν…œμ— μ§€λŒ€ν•œ 영ν–₯을 미치게 될 κ²λ‹ˆλ‹€.

 

또래 μ••λ°•

 

νŒ€μ›λ“€μ΄ κΈ°μˆ μ„ κ²°μ •ν•  λ•Œ 관심사λ₯Ό λΆ„λͺ…νžˆ λ°νžˆμ§€ μ•Šκ³ , μ„œλ‘œ μΆ©λΆ„ν•œ λ…Όμ˜ 없이 μ§„ν–‰ν•˜λ©΄ μ“°λ””μ“΄ κ²°κ³Όλ₯Ό 맛보기 μ‰½μŠ΅λ‹ˆλ‹€. κ°€λ Ή, μ„ λ°° μ•žμ—μ„œ 가급적 μ‹€μˆ˜ μ•ˆ ν•˜λ €λŠ”(κ°€λ©΄ 증후ꡰ) μ‹ μž… 개발자, νŠΉμ • 주제λ₯Ό μžκΈ°κ°€ 잘 λͺ¨λ₯Έλ‹€λŠ” 사싀을 λ‘λ €μ›Œν•˜λŠ” κ°œλ°œμžκ°€ μžˆμŠ΅λ‹ˆλ‹€. κ²½μŸμ‹¬μ΄ λΆˆνƒ€μ˜€λ₯΄λŠ” νŒ€ λΆ„μœ„κΈ° μ†μ—μ„œ 개발이 κ΄‘μ†μœΌλ‘œ μ§„ν–‰λ˜λŠ” λ“― 보이고자 μ œλŒ€λ‘œ 사정을 따져보지도 μ•Šκ³  μ„£λΆˆλ¦¬ μ€‘μš”ν•œ 결정을 λ‚΄λ¦¬λŠ” 것도 또래 μ••λ°•μ˜ μ•„μ£Ό κ³ μ•½ν•œ ν˜•νƒœμž…λ‹ˆλ‹€.

 

 

이해 λΆ€μ‘±

 

μ§€κΈˆ μ‚¬μš©ν•˜λŠ” 툴의 κΈ°λŠ₯도 μ˜¨μ „νžˆ μ•Œμ§€ λͺ»ν•˜λŠ”데 λ¬΄ν„±λŒ€κ³  μƒˆλ‘œμš΄ 툴둜 문제λ₯Ό ν•΄κ²°ν•˜λ €λŠ” κ°œλ°œμžκ°€ μžˆμŠ΅λ‹ˆλ‹€. μƒˆλ‘œ λ‚˜μ˜¨ 멋진 기술이 μ–΄λ–€ νƒœμŠ€ν¬λ₯Ό μˆ˜ν–‰ν•  λ•Œ μ•„μ£Ό μ’‹λ‹€λŠ” μ†Œλ¬Έμ΄ 퍼지면 μ‚¬λžŒ λ§ˆμŒμ΄λž€ 게 κΈ°μšΈμ–΄μ§€κ²Œ 마련이죠. ν•˜μ§€λ§Œ 기술 λ³΅μž‘λ„λ₯Ό λ†’μ΄λŠ” 것과 ν˜„μž¬ νˆ΄λ‘œλ„ ν•  수 μžˆλŠ” 것 μ‚¬μ΄μ˜ κ· ν˜•μ„ 잘 λ§žμΆ”μ–΄μ•Ό ν•©λ‹ˆλ‹€.

 

예λ₯Ό λ“€μ–΄ ν•˜μ΄λ²„λ„€μ΄νŠΈλŠ” 도메인 객체와 DB 객체 κ°„ λ³€ν™˜μ„ λ‹¨μˆœν™”ν•˜λŠ” 절호의 λ°©λ²•μ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. ν•˜μ΄λ²„λ„€μ΄νŠΈλ₯Ό μˆ˜λ°• 겉ν•₯κΈ° μ‹μœΌλ‘œ μ•„λŠ” κ°œλ°œμžλŠ” λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ—μ„œλ„ ν•˜μ΄λ²„λ„€μ΄νŠΈλ₯Ό 쓰더라, ν•˜λŠ” κ²½ν—˜λ‹΄μ„ λ“€λ €μ£Όλ©° 이 기술이 μ ν•©ν•˜λ‹€κ³  μ‰½κ²Œ λ‹¨μ •ν•©λ‹ˆλ‹€. 이처럼 이해가 λΆ€μ‘±ν•œ μƒνƒœμ—μ„œλŠ” ν•˜μ΄λ²„λ„€μ΄νŠΈλ₯Ό λ„ˆλ¬΄ λ³΅μž‘ν•˜κ²Œ μ‚¬μš©ν•˜κ²Œ 되고 κ²°κ΅­ 운영 λ‹¨κ³„μ—μ„œ 회볡 λΆˆκ°€ν•œ 쀑단 μ‚¬νƒœλ₯Ό λ§žμ΄ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 데이터 계측을 μ „λΆ€ κ°„λ‹¨ν•œ JDBC 호좜둜 λ°”κΎΈλ©΄ κ°œλ°œμžλŠ” μžμ‹ μ΄ μ΅μˆ™ν•œ λΆ„μ•ΌλΌμ„œ μœ μ—°ν•˜κ²Œ λŒ€μ²˜ν•  수 있겠죠. ν•„μžλŠ” ν•˜μ΄λ²„λ„€μ΄νŠΈλ₯Ό κ°•μ˜ν•˜λ©΄μ„œ λ”± 이런 사둀λ₯Ό κ²½ν—˜ν•œ μˆ˜κ°•μƒμ„ λ§Œλ‚¬μŠ΅λ‹ˆλ‹€. κ·ΈλŠ” ν•˜μ΄λ²„λ„€μ΄νŠΈ λ•Œλ¬Έμ— κ²°λ”΄λ‚œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ³΅κ΅¬ν•˜λ €κ³  ν•„μžμ˜ κ°•μ˜λ₯Ό λ“€μœΌλ©΄μ„œ μ—΄μ‹¬νžˆ ν•˜μ΄λ²„λ„€μ΄νŠΈλ₯Ό μ—°κ΅¬ν–ˆμ§€λ§Œ, κ²°κ΅­ ν•˜μ΄λ²„λ„€μ΄νŠΈλ₯Ό κ±·μ–΄λ‚΄λŠλ‚˜ κ³ μŠ€λž€νžˆ 주말을 λ°”μ³μ•Όλ§Œ ν–ˆμŠ΅λ‹ˆλ‹€. 정말 μ²˜λŸ‰ν•˜κΈ° 그지없죠.

 

 

μ˜€ν•΄μ™€ μžˆμ§€λ„ μ•Šμ€ 문제

 

문제 μžμ²΄κ°€ 무엇인지 μ œλŒ€λ‘œ μ΄ν•΄ν•˜μ§€ λͺ»ν•œ 채 μ˜€λ‘œμ§€ κΈ°μˆ μ„ μ΄μš©ν•΄μ„œ 문제λ₯Ό ν•΄κ²°ν•˜λ €λŠ” κ°œλ°œμžλ„ μžˆμŠ΅λ‹ˆλ‹€. μ„€λ Ή κ·Έλ ‡κ²Œ ν•΄μ„œ μ„±κ³΅ν•œλ“€, μ„±λŠ₯ 수치λ₯Ό 츑정도 μ•ˆ 해보고 μ–΄λ–»κ²Œ 성곡을 μž₯λ‹΄ν•  수 μžˆμ„κΉŒμš”? μ„±λŠ₯ μ§€ν‘œλ₯Ό μˆ˜μ§‘/λΆ„μ„ν•΄μ•Όλ§Œ λΉ„λ‘œμ†Œ 문제의 λ³Έμ§ˆμ„ μ •ν™•νžˆ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ•ˆν‹°νŒ¨ν„΄μ„ μ˜ˆλ°©ν•˜λ €λ©΄ νŒ€μ› λͺ¨λ‘ μ°Έμ—¬ν•΄μ„œ 기술 이슈λ₯Ό ν™œλ°œνžˆ κ³΅μœ ν•˜λŠ” λΆ„μœ„κΈ°λ₯Ό 적극 μž₯λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 아직도 λ­”κ°€ λΆˆλΆ„λͺ…ν•˜λ‹€ μ‹ΆμœΌλ©΄ λ¨Όμ € 사싀에 κ·Όκ±°ν•œ 증거λ₯Ό μˆ˜μ§‘ν•˜κ³  ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“€μ–΄ μ‘°μ‚¬ν•©λ‹ˆλ‹€. κ·Έλž˜μ•Ό νŒ€μ΄ μ˜¬λ°”λ₯Έ λ°©ν–₯으둜 λ‚˜μ•„κ°ˆ 수 있겠죠. μ΅œμ‹  기술이 아무리 μ’‹μ•„ 보여도 ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“€μ–΄ λ³΄λ‹ˆ κΈ°λŒ€μ— 미치치 λͺ»ν•˜λ©΄ 보닀 μ •ν™•ν•œ 정보λ₯Ό 근거둜 νŒ€μ΄ 결정을 λ‚΄λ¦¬λŠ” 데 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

 

 

맺으며

 

λ„ˆλ¬΄ 제 이야기인것 κ°™μ•„μ„œ 읽닀가도 μ§„μ§œ λœ¨λ”λœ¨λ” 많이 ν–ˆλ„€μš”. 5개 쀑에 5개 λ‹€ ν•΄λ‹Ήλ©λ‹ˆλ‹€... λ°˜μ„±ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ κ°œλ°œμžλΆ„λ“€μ€ μ–΄λ– μ‹ κ°€μš”? :) 

 

μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

 

 

Conference

μ™œ κ°œλ°œμžλŠ” 잘λͺ»λœ 기술 선택을 λ°₯ 먹듯이 ν•˜λ‚˜?

Optimizing Java(O'REILLY, ν•œλΉ›λ―Έλ””μ–΄)

profile on loading

Loading...