[WebDev] Things You Should Never Do As A Software Engineer
Things You Should Never Do As A Software Engineer
Here are some of the things that software developers should avoid when coding to improve their work performance and mental health.
favtutor.com
Being Perfectionist
λͺ¨λ κ²μ μλ²½νμ§ μλ€. κ·Έλμ λλ “μλ²½ν μ½λ”λ μ‘΄μ¬νμ§ μλλ€κ³ νμ νλ€.
μννΈμ¨μ΄ κ°λ°μ λ°λ³΅μ μΈ νλ‘μΈμ€μ΄λ€. μ½λλ₯Ό μ§κ³ , ν μ€νΈνκ³ , νΌλλ°±μ λ°κ³ , 리ν©ν λ§ νκ³ , μ΄λ₯Ό λ°λ³΅νλ€. μ€λ μ λμνλ κ²μ΄ λ΄μΌ λμνμ§ μμ μ μλ€. λ°λΌμ μννΈμ¨μ΄λ μ μ°νκ³ λ³κ²½νκΈ° μ©μ΄ν΄μΌνλ€. (μ΄κ²μ΄ soft-ware λΌκ³ λΆλ¦¬λ μ΄μ μ΄λ€!)
μλ²½μ μΆκ΅¬νμ§ λ§λΌλ κ²μ μλλ€. λ¨μ§ λ무 κ²½μ§λκ³ λ³΅μ‘ν μ½λλ₯Ό μμ±νμ§ μλλ‘ μ£Όμν΄μΌ νλ€λ κ²μ΄λ€.
μ λ¬Έκ°κ° λλκ²μ μλ²½μ£Όμμκ° λλ κ²κ³Όλ λ€λ₯΄λ€. νμ μ΅μ μ λ€νλ, νμ€μ μΌλ‘ κ°λ₯ν μ΅μ μ μνλ₯Ό μ μ§νλ κ²μ μλ―Ένλ€.
“Please, give me some time to refactor!”
리ν©ν λ§μ μ΄λ―Έ λμνκ³ μλ μ½λλ₯Ό μΈλΆ λμμ λ³κ²½ μμ΄ μ¬μ€κ³νλ κ³Όμ μ΄λ€. 리ν©ν λ§ μλ μ½λλ “μ½λ μ μ·¨”λ₯Ό μ λ°νκΈ° μμνλ€. μ΄κ²μ λ€λ₯Έ κ°λ°μλ€μ΄ μ΄ν΄νκ±°λ νμ©νκΈ° μ΄λ €μ΄ μ½λλ₯Ό μλ―Ένλ€.
μ°λ¦¬ κ°λ°μλ€ λͺ¨λλ νλμ κΈ°λ₯μ ꡬνν νμ 리ν©ν λ§μ μ§νν΄μΌνλ€λ κ²μ λͺ¨λ μκ³ μλ€. λ¬Έμ λ λΉκ°λ°μλ€μ μ΄λ° μν©μ μ κ²½μ°μ§ μλλ€λ κ²μ΄λ€. “μ°λ¦¬λ λΉ λ₯΄κ² μ±μ₯νκ³ μλ νμ¬μ λλ€, κ·Έλ¬λ κΈ°λ₯ κ°λ°μ λ¨Όμ μ΄μ μ λκΈ°λ₯Ό λ°λλλ€” λΌλ μμ²μ λ°κΈ°λ νλ€. κ·Έλ¬λ κ³§ κ·Έ μ½λλ μ μ§λ³΄μ λμ§ μμ κ²μ΄κ³ , “μ λ° λ¦¬ν©ν λ§ν μκ°μ μ£ΌμΈμ!”λΌκ³ κ°μ ν μμ²νκ² λ κ²μ΄λ€.
리ν©ν λ§μ μν΄μ μΆκ°μ μΈ μκ°μ μꡬνμ§ λ§μλΌ. 리ν©ν λ§μ λμ κΈ°λ₯ ꡬνμ ν κ³Όμ μΌλ‘ λ§λ€μ΄λΌ!
Misunderstanding what “legacy code” means
μΉ κ°λ° μνκ³λ λΉ λ₯΄κ² λ³ννκΈ°λ‘ μ λͺ νλ€. Next.js λ²μ 10μΌλ‘ λ§λ€μλ μΉ νλ‘μ νΈκ° μ 무λ₯Ό νκΈ° μμνμ λλ μλ‘μ΄ κΈ°λ₯κ³Ό μ±λ₯ ν₯μμ΄ ν¬ν¨λ λ²μ 11μ΄ μΆμλμκ³ , λ°λ‘ λ²μ 10 νλ‘μ νΈλ legacy νλ‘μ νΈκ° λμλ€.
λ§μ μ¬λλ€μ “λ κ±°μ μ½λ”κ° “λ‘μ μ½λ”λ₯Ό μλ―Ένλ€κ³ μ€ν΄νμ§λ§, κ·Έλ μ§ μλ€. “Working Effectively with Legacy Code”μ μ μ Michael Feathersμ λ°λ₯΄λ©΄, λ κ±°μ μ½λλ ν μ€νΈκ° μλ μ½λμ΄λ€. λ§μ½ ν μ€νΈν μ μλ μ½λκ° μμΌλ©΄, μ΄ μ½λλ 리ν©ν λ§λ λΆκ°νλ€. 리ν©ν λ§μ΄ λΆκ°νλ€λ©΄, λμ΄μ μ μ§ν μ μλ€.
“old” Next.js νλ‘μ νΈλ μ¬μ€ κ½€ μ’μ ν μ€νΈ 컀λ²λ¦¬μ§λ₯Ό κ°μ§κ³ μμκ³ , λͺ¨λ κ²μ΄ μ λμνκ³ μμλ€. μ΄λ “μ μ§ λ³΄μκ° μ λ μ½λ”μ΄μ§ “λ κ±°μ μ½λ”κ° μλλ€. μ λ°, μλ‘κ³ λ©μ Έλ³΄μΈλ€λ μ΄μ λ‘ μ κ· ν΄μ μ«λλ°μ μκ°μ λλΉνμ§ λ§λΌ. 17λ λμ μ μ§λκ³ μλ Githubκ° μ¬μ ν Ruby on RailsλΌλ μ¬μ€μ κΈ°μ΅ν΄λΌ.
“Functional programming is the best!”
ν¨μν νλ‘κ·Έλλ°μ μμ¦ μλ‘κ² λ μ€λ₯΄λ νΈλ λμ΄κ³ , λ§μ κ°λ°μλ€μ΄ μ΄λ₯Ό μ¬μ©νκ³ μλ κ²μ λ§λ€. νμ§λ§ κ·Έλ λ€κ³ ν΄μ λͺ¨λ κ³³μμ μ΄κ²μ μ¬μ©ν΄μΌνλ€λ μλ―Έλ μλλ€.
μλ₯Όλ€μ΄, λ§μ½ Flutter νλ‘μ νΈλ₯Ό μμ ν λ, UI λ μ΄μ΄μμ ν¨μν νλ‘κ·Έλλ°μ μ¬μ©νλ κ²μ μ’μ μκ°μ΄ μλλ€. UI λ μ΄μ΄μμ κ³Όλν “μμ ν¨μν” μ½λλ λΆνμν μ¬λ λλ§μΌλ‘ μ±λ₯ λ¬Έμ λ₯Ό μΌκΈ°ν μ μλ€. Flutterλ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μ€νμΌμ μ¬μ©νλλ‘ μ€κ³λμ΄ μκΈ° λλ¬Έμ, κ·Έ λ°©μμ λ§μΆ°μ μ¬μ©ν΄μΌ νλ€.
ν¨μν νλ‘κ·Έλλ°μ΄λ λ€λ₯Έ λ©μ§ κΈ°λ²μ μμ ν νΌν΄μΌ νλ€λ μλ―Έλ μλλ€. κ°μ μμλ‘, ν¨μν νλ‘κ·Έλλ°μ΄ μ ν©ν λΉμ§λμ€ λ‘μ§μμλ μ΄λ₯Ό μ¬μ©ν μ μλ€. μ€μν κ²μ μμ μ΄ μμ νλ 컨νμ€νΈλ₯Ό μ μΈμ§νκ³ , μν©μ λ§λ μ μ ν λꡬλ₯Ό μ νν΄λΌ.
Following the “best practices” blindly
ν΄λ¦° μν€ν μ³, SOLID μμΉ, DRY, KISS, YAGNI, TDD, BDD, CI/CD λ±λ±, μννΈμ¨μ΄ κ°λ°μλ μλ§μ best practicesκ° μ‘΄μ¬νλ€. μ΄λ° μμΉλ€μ μ’μ μλλ‘ λ§λ€μ΄μ‘μ§λ§ μ΄κ²λ€μ λ§Ήλͺ©μ μΌλ‘ λ°λ₯Ό νμλ μλ€.
μλ₯Όλ€μ΄, TDD(Test-Driven Development)λ μμ±ν μ½λκ° μ¬λ°λ₯΄κ²(μμλλ‘) λμνλμ§λ₯Ό νμ ν μ μλ νλ₯ν λ°©λ²μ΄λ€. κ·Έλ¬λ Clojure λ Pythonκ°μ REFL μΉνμ μΈ μΈμ΄λ₯Ό μ¬μ©ν λμλ λͺ¨λ κ²μ λν΄ TDDλ₯Ό μ μ©ν νμκ° μμ μλ μλ€.
TDDμ μ μΌν λͺ©μ μ κ°λ₯ν 빨리 νΌλλ°±μ λ°λ κ²μ΄λ€. λ§μ½ ν μ€νΈ μμ± μμ΄ νΌλλ°±μ λ°μ μ μλ€λ©΄, TDDλ₯Ό μ¬μ©ν νμκ° μλ€. (κ·ΈλΌμλ, ν μ€νΈλ μμ±ν΄μΌνλ€!)
Struggling alone
λ§μ μ£Όλμ΄ κ°λ°μλ€μ΄ μμ μ “λ¬Έμ ν΄κ²° λ₯λ ₯”μ μλνλ €λ κ²μ λ§μ΄ 보μλ€. κ·Έλ€μ μ΄λ―Έ λ€λ₯Έ μ¬λλ€μ μν΄ ν΄κ²°λ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ κ³ κ΅° λΆν¬ νλ€. μ λ° κ·Έλ κ² λμ§ λ§λΌ. λ°ν΄λ₯Ό λ€μ λ°λͺ νμ§ λ§λΌ.
μΈμμμ κ°μ₯ μλν λ§μΈλλ κ±°μΈμ μ΄κΉ¨ μμ μμλ μ¬λλ€μ΄λ€.
νμμ μΌνκΈ° μμνλ©΄, κ²½νμ΄ λ λ§μ λλ£λ€λ‘λΆν° λ§μ κ²μ λ°°μΈ μ μλ€λ κ²μ κΉ¨λ«κ² λ κ²μ΄λ€. κ·Έλ€μ λμ “κ±°μΈ”μ΄λ€. κ·Έλ€μ μ΄κΉ¨ μμ μ¬λΌνμ, λ€μ λ μΌλ‘ λ΄λ €κ°λλ°μ μκ°μ λλΉνμ§ λ§λΌ. μ΄μ λμ λͺ©νλ λ λμ κ±°μΈμ ν₯ν΄ μ¬λΌκ°λ κ²μ΄λ€.
Falling into the “flow”, without self-awareness
“flow”λ₯Ό κ²½νν΄ λ³Έ μ μλκ°? μ΄κ²μ μ 무μ μμ ν λͺ°μ νκ³ , μλμ§κ° λμΉλ©° μ§μ€λ μνλ₯Ό λ§νλ€. νλ‘κ·Έλλ¨Έλ‘μ “flow”μ λΉ μ§λ©΄ λλ λ¨μν λ§€κ°μ²΄μΌ λΏ μ½λκ° μ€μ€λ‘ μμ±λλ κ² μ²λΌ λκ»΄μ§λ€. λλ λ¨μν κ·Έ μμ μμ μλ€κ³ ν μ μλ€.
νμ§λ§ μ‘°μ¬ν΄λΌ. “λ무 λ§μ” μ½λλ₯Ό μμ±ν μ μλ€. μ’ μ’ “flow”μ λΉ μ Έμμ λ μ€λ² μμ§λμ΄λ§μ νκ³ μλ λλ₯Ό λ°κ²¬νλ€. λ λΏλ§μ΄ μλλ€, “ν΄λ¦° μ½λ”μ μ μ Robert C.Martin λ νλ‘μ° μ€μ μμ°μ±μ΄ λ°λλ‘ λμ€λ κ²½νμ νλ€.
νλ‘μ°λ₯Ό μλμ μΌλ‘ κΉ¨κΈ° μν΄, “λ½λͺ¨λλ‘ κΈ°λ²”μ μ¬μ©νλ κ²μ μΆμ²νλ€. μ΄κ²μ 25λΆλμ μΌνκ³ 5λΆμ ν΄μμ κ°λ λ°©λ²μ΄λ€. μ΄κ²μ μ§μ€λ ₯μ μ μ§νκ³ λ²μμμ νΌν μ μλλ‘ λμμ€ κ²μ΄λ€.
Not moving your body
μννΈμ¨μ΄ μμ§λμ΄λ‘ μΌνλ κ²μ μ½μ§ μλ€. λͺ μκ°λμ μ»΄ν¨ν° μμ μμμ, ν€λ³΄λλ₯Ό λλ€κΈ°κ³ , νλ©΄μ μμν΄μΌνλ€. “λͺ°μ ” μνμ μμ λ, 건κ°μ μκΈ° μ½λ€. νμ§λ§ κΈ°μ΅ν΄λΌ! λμ 건κ°μ μ΄λ€ κ² λ³΄λ€λ μ€μνλ€. λ§μ½ λͺΈμ΄ λ§μ λ£μ§ μλλ€λ©΄ λλ μΈλͺ¨κ° μμ΄μ§λ€.
30λΆ λ§λ€ λͺΈμ μμ§μ¬λΌ(λ§μ½ λ½λͺ¨λλ‘ κΈ°λ²μ μ¬μ©νκ³ μλ€λ©΄ 25λΆλ μ’λ€). μΌμ΄λμ, μ€νΈλ μΉνκ³ , μ°μ± μ νκ³ , λ¬Όμ λ§μ λΌ. μ΄κ² λν μ§μ€λ ₯μ μ μ§νκ³ λ²μμμ νΌν μ μλλ‘ λμμ€ κ²μ΄λ€.
Forgetting how fun it is to be a programmer
μ²μ μ½λ©μ μμν λ, ν₯λ―Έκ° κ°λνλ€. 무μΈκ°λ₯Ό λ§λ€κ³ , λ¬Έμ λ₯Ό ν΄κ²°νκ³ , μλ‘μ΄ κ²μ λ§€μΌ λ°°μλκ°λ€.
κ·Έλ¬λ μκ°μ΄ μ§λλ©΄μ, μ½λ©νλ μ¦κ±°μμ μμ΄λ²λ¦¬κΈ° μμνλ€. “ν΄λ¦° μ½λ”λ₯Ό μ§κ³ , “best practices”λ₯Ό λ°λ₯΄κ³ , “μ΄λ €μ΄ λ¬Έμ ”λ₯Ό ν΄κ²°νλ κ²μλ§ λ무 μ§μ€νκ³ μμλ€. μ μ λ μμ£Ό, λ€λ₯Έ μ¬λμ΄λ λ€λ₯Έ νμ¬μ μ½λλ₯Ό λ°λΌκ°λλΌ λ무 λ°μ λλ¨Έμ§ λλ§μ μ½λλ₯Ό μ§€ μ μμλ€. λ΄ μ°½μμ±μ μ΄λλ‘ κ°λκ°!
νμ νλ‘κ·Έλλ¨Έλ‘μ μ¦κ±°μμ κΈ°μ΅ν΄μΌνλ€. μ΄λ ΅λ€λ κ²μ μμ§λ§, λλ§μ νλ‘μ νΈλ₯Ό λ§λ€κ³ , μλ‘μ΄ κ²μ λ°°μ°κ³ , λ©μ§ κ²λ€μ κ³μ λ§λ€λ©΄μ μκ°μ 보λ΄μΌνλ€. μ§μ₯μμλ λμ λλ£λ€κ³Ό ν₯λ―Έλ‘μ΄ μλ‘μ΄ κΈ°μ μ λν΄ μ΄μΌκΈ°νλ € λ Έλ ₯ν΄λΌ. μ΄κ²μ λκΈ° λΆμ¬λ λλ©° μ΄μ μ μ μ§νλλ‘ λμμ€ κ²μ΄λ€.
Being a “coder”, not a software engineer
“μ½λ”μ “μννΈμ¨μ΄ μμ§λμ΄”λ λ€λ₯΄λ€. “μ½λ”λ μ½λλ₯Ό μ§λ μ¬λμ΄κ³ , “μννΈμ¨μ΄ μμ§λμ΄”λ μ½λλ₯Ό μ¬μ©ν΄μ λ¬Έμ λ₯Ό ν΄κ²°νλ μ¬λμ΄λ€. “μ½λ”κ° λλ©΄ μλλ λκ°μ§ ν΅μ¬ μ΄μ κ° μλ€.
- “μ½λ”λ λ―Έλμ AIλ‘ λ체λ κ²μ΄λ€.(μ¬μ€ μ΄λ―Έ κ΅μ²΄λκ³ μλ€!). λ Όλμ΄ λ§λ€λ κ²μ μμ§λ§, μ¬νκ²λ μ¬μ€μ΄λ€.
- μ¬λλ€μ λμ μ½λλ₯Ό μ κ²½μ°μ§ μλλ€. κ·Έλ€μ λκ° κ·Έλ€μ λ¬Έμ λ₯Ό μ΄λ»κ² μ νΈλμ§μλ§ κ΄μ¬μ΄ μλ€.
μ½λλ₯Ό λκ΅¬λ‘ μ¬μ©νλ “λ¬Έμ ν΄κ²°μ¬”κ° λμ΄λΌ. λ¬Έμ λ₯Ό μ΄ν΄νκ³ , μ΅μ μ ν΄κ²°λ²μ μ°Ύκ³ , λμ μ½λλ₯Ό μ¬μ©ν΄μ ꡬνν΄λΌ. κ·Έκ²μ΄ μννΈμ¨μ΄ μμ§λμ΄μ΄λ€.
π©π» Opinion
μ μ μ£Όλμ΄λ₯Ό λ²μ΄λμΌνλ μκΈ°μ μ μ ν κΈμ λ§μ£Όμ³€λ€.
λΉμ°ν κ²λ€μ΄κ³ μ€λ¬΄νλ©΄μ λ§μ΄ λλΌλ λμ μκ°λ€μ μ 리ν΄λμ κΈμ΄ μλκ° μΆμ μ λλ‘ λμ μκ°κ³Ό μ μ¬νλ€.
νΉν 리ν©ν λ§ μκ°μ λν΄μ κ·Έλ λ€ :) 리ν©ν λ§μ μν΄ μκ°μ ν¬μνκΈ°λ³΄λ€ κ΅¬νμ κ³Όμ μΌλ‘μμ 리ν©ν λ§μ κ°μ Έκ°μΌνλ€λ κΈμ 100% λμνλ€.
κ·Έλ¦¬κ³ λ¬΄μλ³΄λ€ λ§μ§λ§ λ§μ΄ μΈμκΉλ€. "μ½λ"κ° λμ§ λ§μλ λ€μ§μ νκ³ μμ§λ§, "μ½λ"κ° λμ§ μκ³ "λ¬Έμ λ₯Ό ν΄κ²°νλ μ¬λ"μ΄ λμ΄μΌ νλ€λ κ²μ λ΄κ° λͺ¨νΈνκ² λλΌκ³ μμλ λΆλΆμ μλ§κ² μ μν΄μ€ λ§ κ°λ€.
μ€λλ μ¦κ±°μ΄ κ°λ°μμ λλͺ©μ λ°°μ°λ λ μ΄μλ€:)