좋은 개발자가 되기위한 방법들/일기

공부 계획( 좋은 개발자가 되기위한 방법)과 나의 다짐

chief_sac 2021. 9. 14.
반응형

 

 

올해가 끝나기전에 공부를 하고싶은게 너무많다.

 

비전공자 전문대 출신으로서 개발 공부를 시작한지는 어느덧 1년이 다되었고 운이 좋게 취업을 하게되어서 당장은 실무에서 사용되는 Angular와 Spring 공부에 많은 머리를 쓰고있다.

 

하지만 공부를 하면서도 여러번 의문이들때가 주로 왜 Angular는 이렇게 만들게되었을까 왜 Spring은 이렇게 만들었을까 수십번을 생각하게 되었는데.

 

구글선생님의 도움을 받으면 어느 정도는 이해 할 수 있지만 그럼에도 뭔가 항상 부족한 공부이다.

내가 직접 코딩하면서 느끼며 배우기에는 머리에 들어있는 기본적인 지식이 모자라다는것을 크게 느끼고 있다.

이점을 어떻게 해결하며 효율적이게 공부를 할 수 있을까 고민을 하다가 우연한 계기로 SW개발의 방법론들이 정리되어있는 파일을 얻게되어 하나하나 짚어가며 공부를 해보려고합니다.

틀을 나누자

 


 

  • 객체지향
  • UML
  • 개발방법론과 아키텍처
  • 어플리케이션통합
  • User Interface
  • 분석패턴
  • 도메인 주도 설계(DDD)
  • GoF
  • CQRS관련 패턴
  • 안티패턴
  • POSA(Pattern-Oriented Software Architecture)

 

 

등으로 나눈 후 구체적으로 쪼개어서 공부를 해보려고한다.

큰틀로 분류하였음에도 많은 방향성을 가지고있고 이걸 올해안에 전부 이해하게 된다면 좋겠지만 그런 것은 소화불량만 생길것같아서 목표를 가지고 하나하나 공부한 내용을 정리하며 기록하려고 마음을 먹었다.

처음 집중적으로 공부하고 싶은것은 객체지향을 나눠서 공부 할 예정이다.

그 계획표는 아래와 같다.

 

 


  • 객체지향의 4대특성
    • 추상화
    • 캡슐화
    • 상속
    • 다향성
  • 5대설계원칙(SOLID)
    • SRP (Single responsibility principle, 단일책임원칙)
    • OCP (Open closed principle,개방폐쇄원칙)
    • LSP (Liskov substitution principle,리스코프치환원칙)
    • ISP (Interface Segregation principle,인테페이스 분리원칙)
    • DIP (Dependency inversion principle,의존역전원칙)
  • 다른 설계원칙
    • DRY(Don't Repeat Yourself,반복하지마라)
    • YAGNI - You Ain't Gonna Need it
    • POLA - the Principle of Least Surprise(최소 놀람의원칙)
    • 할리우드원칙- 먼저 연락하지마세요, 저희가 먼저 연락드리겠습니다.
    • 데메테르원칙(최소지식원칙) - 정말 친한 친구하고만 이야기하라.
    • Losely Coupled를 활용하라 - 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용하라.
    • 구현이 아닌 인터페이스에 맞춰서프로그래밍한다.
    • 바뀌는 부분은 캡슐화한다. - 애플리케이션에서 달라지는 부분을 찾고 달라지지 않는 부분으로부터 분리시킨다.
  • 객체지향 관계
    • 연관관계(asociation)
    • 일반관계
    • 특수연관(has-a)
      • 집합연관(aggregation)
      • 합성연관(composition, owns)
    • 의존관계(dependency,Use - a )
    • 상속관계(상속이 아니라 is-a 관계를 이해)

 


 

위에 있는 공부를 하면서 객체지향이 지금까지 어떤길을 걸어왔는지 객체지향을 추구하는 선배 개발자들은 어떤 생각을 하며 이러한 원칙과 방법들을 찾아왔는지에 대해서 알아가고

그렇게 끝내는것이 아닌 앞으로 하게될 개발에서 적용해보며 선배들이 닦아놓은 길을 걷는 좋은 개발자로서 성장해보려고한다.

 

 

 

시작 2021년 09월 14일 ~ 진행중

 

반응형

댓글2