프리온보딩 1차시 후기
[백엔드] 객체지향 1차시 - 소프트웨어 가치에서 시작하는 객체지향
사전과제 : 의존, 객체, 전략패턴... https://tiny-immj.tistory.com/51 [백엔드]원티드 - 프로젝트 유연함을 높이는 객체지향 첫걸음_사전미션 참가 링크 https://www.wanted.co.kr/events/pre_challenge_be_15 프로젝트
tiny-immj.tistory.com
2차시의 초반엔 지난 1차시 리뷰와 추가 질문에 대한 답변을 해주셨다.
절차지향과 객체지향에서 변경 영향 전파의 차이에 대한 질문이었는데
절차지향 프로그래밍 -> 데이터와 함수(메서드)가 분리되어 하나의 함수를 변경하면 연결된 다른 부분들도 검토하고 수정해야 함
객체지향 프로그래밍 -> 데이터와 함수(메서드)가 객체 내 캡슐화 되어있어 의존도가 낮다
객체지향에 대해선 계속해서 공부가 필요할 것 같다. 조영호님 객체지향 영상이 설명이 잘 되어있다고 해서 공부하기 위해 첨부하였다.
절차지향과 객체지향의 차이는 함수와 메서드의 차이에서 알 수 있다.
말이 너무 헷갈린다. 함수와 메서드의 차이에 대해 설명해주신 부분을 다시 읽어보며 정리해보자면 아래와 같다.
함수와 메서드를 같은 의미에서 사용하는 경우가 많은데 이렇게 보니 확실히 차이가 있어보였다.
1. 정의 :
1) 함수 : 독립적인 코드 블록으로 특정 작업을 수행하거나 값을 계산하기 위해 사용됨. 일반적으로는 입력(매개변수)을 받아 출력(결과)을 반환한다.
2) 메서드 : 객체에 속한 함수로, 객체의 데이터(속성)에 접근하거나 상태를 변경하는데 사용됨. 메서드는 항상 어떤 객체의 일부로 정의되며 객체의 맥락에서 호출된다.
2. 소속 :
1) 함수 : 클래스나 객체와 독립적으로 존재할 수 있다. (ex. C언어(절차지향언어)에서 주로 함수 사용)
2) 메서드 : 클래스나 객체에 속한다. 객체지향 프로그래밍 언어에서 클래스의 인스턴스(객체)에 속한 함수를 메서드라 한다.
3. 호출 방식 :
1) 함수 : 일반적으로 이름을 통해 직접 호출된다.
2) 메서드 : 객체를 통해 호출된다. (ex. 객체.메서드( ) 형식)
4. 접근 방식 :
1) 함수 : 전역 변수나 전달된 매개변수를 통해 데이터에 접근한다.
2) 메서드 : 클래스의 인스턴스 변수(속성)에 접근할 수 있으며, 객체의 상태를 변경할 수 있다.
* 추천해 주신 책 중에 읽을 책 정리
객체지향의 사실과 오해 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
위 객체지향 영상의 조영호님이 쓰신 책이다.
함께 자라기 - 애자일로 가는 길 : 알라딘
[알라딘] 알라딘 인터넷서점
smartstore.naver.com
지속적인 학습을 위해 시도를 하고, 피드백한다. 피드백 방법을 모르는 경우 뛰어난 사람들을 따라해보는 방법이 있다.
[백엔드] 원티드 프리온보딩 챌린지 객체지향 과제 - 설계
마트 계산 시스템을 구성하는 협력을 설계해보세요. 마트 계산 시스템 마트 계산 프로세스 - 고객이 상품을 카트에 담는다. - 마트오너는 계산하기 전 지불 정보를 만든다. - 고객은 지불 정보를
tiny-immj.tistory.com
그리고 해당 설계에 대한 부분을 코틀린 라이브코딩으로 보여주셨다. 아직 자바에 대한 문법도 익숙하지 못한 부분이 있어 따라가다가 놓친 부분도 있었다ㅠ
먼저 설계대로 만들어보고 UML을 그려본 다음 의존도가 높은 코드에 대해 리팩토링을 하고 추가 요구 사항이 생긴 경우 다시 코드를 수정하는 과정이었다. 검토를 할 때 UML로 보니 어떤 객체가 결합도가 높은지, 수정이 필요한지 잘 보여서 재미있었다.
검토 과정이 중요하다는 점을 다시 한 번 느낄 수 있었다.
멘토님이 해당 코틀린 코드를 업로드해주시면 자바로 바꿔 학습해볼 예정이다. 잘할 자신은 없지만 공부가 많이 될 것 같다.
'개발 기록 > backend' 카테고리의 다른 글
[백엔드] 프리온보딩 객체지향 3차시 - 객체지향 설계를 돕는 디자인패턴 (0) | 2024.01.17 |
---|---|
[review] <함께 자라기 - 애자일로 가는 길> (1) | 2024.01.12 |
[백엔드] 원티드 프리온보딩 챌린지 객체지향 과제 - 설계 (0) | 2024.01.08 |
[백엔드] 프리온보딩 객체지향 1차시 - 소프트웨어 가치에서 시작하는 객체지향 (2) | 2024.01.07 |
[백엔드]대규모 설계 시스템 기초_사전미션 (1) | 2023.12.29 |