본문 바로가기
부트캠프/코드스테이츠 백엔드부트캠프 43기

코드스테이츠 백엔드 부트캠프 43기 (13일차-버거퀸 프로젝트 회고)

by 고구마는호박고구마 2023. 1. 2.
버거퀸 프로젝트

버거퀸 프로젝트를 진행하면서 패키지를 나누고 그 안에 적절한 class를 넣으면서 모든 기능을 분리하는 역할을 프로젝트를 하면서 배우게 되었다. 하나의 클래스를 만들면서도 그 클래스는 자신의 역할만 수행해야하는 개념을 배우게 되었고 그렇게 되기 위해서는 추상화와 다형성은 필수였다. 추상화를 통하여 클래스간 인터페이스 역할을 해주었고 다형성을 통하여 추상화된 객체들을 하나의 변수에 받을 수 있게되므로 외부에서 객체를 주입할 수 있게되었다.  

 

-생성자를 통하여 객체를 외부로부터 주입받아 사용하자.

 어떤 클래스를 자신의 역할만 수행해야 한다. 자신의 역할안에서 다른 인스턴스를 생성하고 그의 기능을 수행하는 거는 객체지향 역할에서 벗어나는 행위이다. 그렇기에 다른 객체를 받을때는 생성자를 통해 외부에서 인스턴스를 받아서 내부에서는 어떤 인스턴스가 들어오는지는 모르고  받은 인스턴스를 통해 기능을 수행하면 된다.

 

-객체지향 5원칙(SOLID)

https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%9B%90%EC%B9%99

 

객체 지향 프로그래밍/원칙 - 나무위키

객체지향 5원칙(SOLID). 객체지향에서 꼭 지켜야 할 5개의 원칙을 통틀어 객체지향 5원칙이라 칭한다. 일단 한번 보면 개념은 알아 듣긴 하지만 막상 실현하려면 생각보다 어려움이 따른다. 이 5개

namu.wiki

 

S Single Responsibility Principle(SRP) = 객체는 오직 하나의 책임을 가져야 한다.

 

O Open-Closed Principle(OCP) = 객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다는 원칙이다. 즉, 객체 기능의 확장을 허용하고 스스로의 변경은 피해야 한다.

 

L  Liskov Substitution Principle(LSP) = 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙이다.

 

I  Interface Segregation Principle = 클라이언트에서 사용하지 않는 메서드는 사용해선 안 된다.

 

D Dependency Inversion Principle(DIP) = 추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안 된다는 원칙으로서, 일반적으로 객체지향의 인터페이스를 통해서 이 원칙을 준수할 수 있게 된다.

 


객체지향심화를 배우고 프로젝트를 진행하면서 절차 지향 코드가 아닌 객체 지향 프로그래밍이 무엇이고, 어떻게 이루어지는지 알 수 있게되었다. 확실히 코드스테이츠를 수강하면서 특히 커리큘럼이 괜찮고 나무를 보는 수업이아닌 숲을 볼 줄아는 수업을 가르치고 있어 많은 것을 배우고 깨닫고 있다. 하지만 나 같은 전공자 입장에서 배운 내용을 다시한번 복습하는 느낌이라 습득력이 빠르고 빨리 배울수 있지만 비전공자였으면 많이 힘들었을것 같다. (진짜 많이...) 

자바에 대한 개념과 객체지향을 지금 2주정도에 끝내고있다. 대학이었으면 한 학기의 수업분량이다. 그렇기에 코드스테이츠의 아쉬운 점은 비전공자에대한 케어가 많이 부족하다는 것이다... 단순히 '열심히만 하면 따라올수 있습니다'가 아닌 적절한 시스템도입이 있어야할 것 같다. 이 부분은 진도를 맞춰야되기 때문에 어려운 부분이긴 하지만 '비전공자도 할 수 있다'라는 문구를 내세우고 하는 프로그램이니 꼭 해결해야 되는 부분이지 않을까 싶다.

 

 

댓글