'객체 지향의 5대 원칙 SOLID - OCP(Open Closed Principle)' 강의 中
개발자에게 실무란 어떤 의미일까요? 🤔
혼자서 개발 공부를 하다가 IT 회사에 개발자 인턴으로 들어갔을 때가 생각납니다. 떨리는 마음으로 운영중인 웹 프로젝트에서 일부 기능을 추가하게 되었습니다. 혼자 개발했을 때 처럼 빠르게 개발하기 위해서 하나의 함수나 클래스에 코드를 모아두고 테스트 코드도 따로 작성하지 않았었죠. 그러나 나중에 많은 양의 코드 리뷰를 받고 나서 실무에서 코드를 짤 때 신경쓸 것들이 많다는 걸 뼈저리게 느끼게 되었습니다.
앗, 이렇게 많은 걸 놓치고 있었다니!
지금은 회사에서 프로젝트를 개발할 때, 요구사항에 맞게 컴포넌트의 책임을 잘 분리하고 주요 로직은 테스트 코드를 작성합니다. 그렇게 되면 소프트웨어를 더 안전하게 운영 & 유지보수할 수 있으며 다른 개발자들도 코드를 읽는 시간이 줄어들 수 있기 때문이죠. 때문에 회사에서는 여러 명의 개발자들이 함께 협업을 해야 하고, 서비스를 안정적으로 운영할 수 있는 지속 가능한 코드를 작성할 수 있는 기본기가 중요하게 여겨집니다.
그렇다면 실무에서 필요로 하는 개발자의 기본기는 무엇이 있을까요? 물론 개발 분야에 맞는 프레임워크, 라이브러리를 잘 다루는 스킬도 중요하겠지만, 테스트 코드 작성이나 객체 지향 프로그래밍처럼 지속가능한 소프트웨어를 함께 개발할 수 있도록 돕는 역량이 중요합니다.
실무에 꼭 필요한 기본기를 배울 수 있도록 💪
딱딱한 이론 중심이 아닌 코드와 실습이 중심이 되어 강의가 진행됩니다. 👨💻
'테스트 코드 작성을 위한 기본기 다지기 - 테스트 더블 종류 알아보기' 강의 자료 中
'회사에서 알고 있어야 할 기본 개발 지식들 - 멀티 스레드와 멀티 프로세스' 강의 자료 中
SOLID, 동시성, 테스트 Mock 등 구글링 해보면 이론 중심 + 어려운 용어로 작성된 글들이 많습니다. 본 강의에서는 본 개념을 쉽게 이해할 수 있도록 적절한 예시와 코드 중심으로 수업을 진행합니다.
✅ 개념을 쉽게 이해할 수 있도록 대부분의 수업 자료는 코드 중심으로 구성되어 있습니다.
✅ 객체지향 프로그래밍, 테스트 코드, 소프트웨어 아키텍처 패턴의 경우 3개의 프로젝트를 통해 실습을 진행할 수 있습니다.
강의를 듣고 나면 한 단계 앞서갈 수 있어요 🚩
Before & After를 확인해주세요!
이런 기본기들은 사실 회사에서 일을 한다고 자연스럽게 생기는 것은 아닙니다. 본인의 코드를 개선하기 위해 끊임없이 노력하고 학습할 시간이 필요합니다. 이 강의는 앞으로의 여러분의 성장을 위한 초석을 다지는 데 도움이 될 것이라 믿습니다. 😊
커리큘럼을 확인해보세요! 📚
#1. 바로 써먹는 클린코드 알아보기
클린코드 중 빠르게 적용해볼 수 있는 내용을 코드 예시와 함께 알아봅니다.
네이밍, 주석 & 포맷팅
함수 & 클래스
에러 핸들링
가독성 높이기
#2. 객체 지향 프로그래밍 핵심 다지기
객체 지향 프로그래밍의 4가지 특성과 핵심 개념(의존성, 응집도, 결합도 등)을 코드 예시와 함께 알아봅니다.
절차 지향, 객체 지향, 함수형 프로그래밍의 시대적 흐름 및 차이점
객체 지향 프로그래밍을 위한 핵심 개념들 익히기
객체 지향의 5대 원칙 SOLID를 Before&After로 알아보기
(실습) 레거시 코드를 리팩토링 하면서 객체 지향 코드를 작성하기
#3. 테스트 코드 작성을 위한 기본기 다지기
실무에서 꼭 알아야 할 테스트 코드 작성을 위한 기본적인 개념들을 코드와 함께 익혀봅니다.
테스트 기본 이해하기
테스트 종류(Unit, Integration, E2E)
외부 의존성을 대체하는 테스트 더블
(실습) 유닛 테스트, 통합 테스트를 직접 작성하고 외부 의존성 대체하기
#4. 더 나은 코드 설계를 위해, 소프트웨어 아키텍처 기초와 패턴 이해하기
더 나은 코드 설계를 위해 소프트웨어 아키텍처가 필요한 이유와 대표적인 아키텍처 패턴을 알아봅니다. 그리고 레이어를 분리하고 의존성 방향을 고려하여 함께 프로젝트를 설계해 봅니다.
소프트웨어 아키텍처가 필요한 이유
대표적인 소프트웨어 아키텍처 패턴 - 레이어드 아키텍처, 헥사고날 아키텍처, 클린 아키텍처
(실습) 클린 아키텍처와 테스트 코드를 적용한 프로젝트 구축하기
#5. 회사에서 알고 있어야 할 개발 지식들
회사에서 알고 있으면 좋을 개발 지식들을 알아봅니다.
효율적으로 프로그램 운영하기(병렬성과 동시성, 동기와 비동기 등)
쉽고 빠르게 프로그램 배포하기(가상화 기술, CI/CD 등)
서비스의 핵심 요소, 회원가입과 로그인 이해하기(쿠키와 세션, 인증 등)
#6. 협업의 필수 Git, 실전에서 자주 사용되는 명령어
Git의 기본적인 개념과 실전에서 자주 사용되는 커맨드들을 함께 알아봅니다.
Git의 작업공간과 브랜치 이해하기
실전에서 자주 사용되는 명령어 알아보기(rebase, squash merge, reflog 등)
merge conflict 다루기
이 강의만의 특별한 장점 ✔️
하나, 필요한 이유를 명확하게 알려주고, 쉽게 이해할 수 있도록 설명합니다.
배우는 개념들이 필요한 상황&이유를 명확하게 정의하고 시작합니다.
현업에서 어떻게 개념들이 사용되는지 함께 설명합니다.
대부분은 코드가 중심이 되어 개념을 설명하며 이해하기 쉽도록 풀어 설명합니다.
둘, 직관적이고 쉽게 이해할 수 있는 언어 파이썬(Python)으로 수업합니다.
파이썬을 모르더라도 쉽게 이해할 수 있도록 수업을 구성했습니다.
개념을 알려주기 위해서 알아야 할 최소한의 파이썬 문법만 활용합니다. 따라서 프로그래밍 언어 하나를 익숙하게 다룰 수만 있다면 수업을 듣는데 문제가 없습니다.
아쉽지만 본 강의의 수강 대상은 하나의 프로그래밍 언어를 익숙하게 사용할 수 있어야 합니다. 또한 클래스(class)를 활용하여 하나 이상의 토이 프로젝트를 진행해본 경험이 있는 분에게 추천합니다.
Q. 제가 파이썬은 잘 모르는데 괜찮을까요?
다른 프로그래밍 언어더라도 익숙하게 사용할 수 있다면 충분합니다. 본 강의를 촬영할 때 파이썬은 강의를 위한 하나의 도구라고 생각했습니다. 그래서 파이썬 문법은 최소한만 활용해서 개념을 설명하였습니다.. 또한 초반에 어떤 문법들을 익혀야 하는지 빠르게 가이드해드리고 있습니다.
이런 분들께 추천드려요
학습 대상은 누구일까요?
차별화된 개발 포트폴리오를 만들고 싶은 초보 개발자
회사에서 빠르게 실무 코드에 적응하고 싶은 신입 개발자
한 걸음 더 성장하고 싶은 주니어 개발자
선수 지식, 필요할까요?
하나 이상의 프로젝트 경험
성장하고 싶은 열정
안녕하세요 입니다.
9,480
명
수강생
543
개
수강평
936
개
답변
4.7
점
강의 평점
5
개
강의
학습과 성장에 관심이 많은 개발자&크리에이터 그랩입니다.
[이력]
現) Project Pluto Tech Lead 前) 쏘카 데이터 엔지니어 (다수 프로젝트 리드) 前) 그로스 컨설팅 팀 '해킹그로스' 엔지니어 前) 클래스 101 백엔드 엔지니어 前) Microsoft 개발자대회 Imagine Cup 한국 1등 선발 前) 지식공유 스타트업 '원더풀램프' 창업 前) 3D 디스플레이 스타트업 'Tomorrance' 창업
Why did such a great lecture come out now;; If I had known about it in advance, I think I would have been in a better company..ㅎㅎ
When I look at the developers around me who are good at it, it seems like they have the basic skills covered in the lecture.
I am still a junior developer, but I will grow further and become a capable developer. Thank you.
Thank you for your good feedback :)
Ultimately, I think that in order to grow, you need to be able to leave good questions. The better the question, the more you will gain in the process of solving it.
I am confident that after taking this course, you will be able to leave good questions for your own development learning at least more than before!
I hope you will take the course well until the end and don't miss the current book gift event :)
Happy New Year and cheering for you, Chuppo!
Hello
As a computer science graduate, I was able to solve all the areas I was lacking through this lecture.
Please continue to give me good lectures in the future.
This is really, really, really helpfulㅠㅠ I was so moved by the lecture I was listening to on my way to work that I came to leave a review. I've only listened to about half of it, but this lecture is like a ray of light to me, who was developing alone without a mentor at a small startup and couldn't figure out what to do. While watching the lecture, I realized a lot that this is how it should be done. I hope you receive a lot of blessings, make a lot of money, and be happy🤸♀️🤸