- 10
- 15 043
매너코드(mannercode)
South Korea
Приєднався 24 гру 2022
OOP, 디자인패턴, 리팩토링, TDD, DDD, MSA 등 소프트웨어 개발 방법론에 기반한 프로젝트를 진행합니다.
5. TDD(테스트 주도 개발)의 이해
관련 링크
mannercode.com
github.com/mannercode/nest-seed
이번 영상에서는 매너코드가 상영 시간 등록 및 티켓 구매 시스템을 설계하고 구현하는 과정을 소개합니다. 주요 내용은 다음과 같습니다:
• 설계 및 구현: 비동기 처리를 도입하여 사용자 경험을 개선하고, 서비스 간 순환 참조를 피하는 설계 전략을 설명합니다.
• TDD(Test-Driven Development): 테스트 주도 개발을 적용하면서 겪은 시행착오와 이를 극복하기 위한 방법들, 특히 목(Mock) 사용의 장단점에 대해 논의합니다.
• 백엔드 vs 프론트엔드 테스트: 백엔드에서의 테스트 작성 방법과 프론트엔드에서의 스냅샷 테스트 등 차이점을 설명하고, 프론트엔드에서 TDD의 현실성에 대해 의견을 나눕니다.
• 추천 도서: Gerard Meszaros의 “xUnit 테스트 패턴”과 Kent Beck의 TDD 관련 서적을 추천합니다.
이 영상을 통해 효율적인 서비스 설계와 테스트 작성의 중요성, 그리고 실제 개발 과정에서의 실질적인 팁과 경험을 공유합니다. 개발자 분들께 많은 도움이 되길 바랍니다!
mannercode.com
github.com/mannercode/nest-seed
이번 영상에서는 매너코드가 상영 시간 등록 및 티켓 구매 시스템을 설계하고 구현하는 과정을 소개합니다. 주요 내용은 다음과 같습니다:
• 설계 및 구현: 비동기 처리를 도입하여 사용자 경험을 개선하고, 서비스 간 순환 참조를 피하는 설계 전략을 설명합니다.
• TDD(Test-Driven Development): 테스트 주도 개발을 적용하면서 겪은 시행착오와 이를 극복하기 위한 방법들, 특히 목(Mock) 사용의 장단점에 대해 논의합니다.
• 백엔드 vs 프론트엔드 테스트: 백엔드에서의 테스트 작성 방법과 프론트엔드에서의 스냅샷 테스트 등 차이점을 설명하고, 프론트엔드에서 TDD의 현실성에 대해 의견을 나눕니다.
• 추천 도서: Gerard Meszaros의 “xUnit 테스트 패턴”과 Kent Beck의 TDD 관련 서적을 추천합니다.
이 영상을 통해 효율적인 서비스 설계와 테스트 작성의 중요성, 그리고 실제 개발 과정에서의 실질적인 팁과 경험을 공유합니다. 개발자 분들께 많은 도움이 되길 바랍니다!
Переглядів: 326
Відео
4. 티켓 구매 설계 - REST API 디자인
Переглядів 521Місяць тому
관련 링크 mannercode.com github.com/mannercode/nest-seed 티켓 구매 프로세스를 설계하는 과정에서 REST API의 리소스 그룹 개념과 본질 기반 해석에 의한 설계를 해봅시다.
3. 티켓 생성 설계 - Microservices의 순환 참조 방지
Переглядів 690Місяць тому
관련 링크 mannercode.com github.com/mannercode/nest-seed 마이크로서비스 아키텍처(MSA)를 위해서 서비스를 작게 유지하는 설계인 Core-Application Service Architecture을 알아봅니다.
2. 유스케이스(Use Cases) 명세서 작성
Переглядів 811Місяць тому
관련 링크 mannercode.com github.com/mannercode/nest-seed NestJS 프레임워크 기반의 작은 프로젝트를 진행하면서 소프트웨어 분석,설계,구현,검증까지 두루 살펴봅니다. 이 과정에서 TDD, DDD, MSA 등 백엔드의 기본을 다룹니다.
1. 유스케이스(Use Cases) 다이어그램 작성
Переглядів 1,6 тис.Місяць тому
관련 링크 mannercode.com github.com/mannercode/nest-seed NestJS 프레임워크 기반의 작은 프로젝트를 진행하면서 소프트웨어 분석,설계,구현,검증까지 두루 살펴봅니다. 이 과정에서 TDD, DDD, MSA 등 백엔드의 기본을 다룹니다.
0. nest-seed 개발 환경 소개
Переглядів 633Місяць тому
관련 링크 mannercode.com github.com/mannercode/nest-seed NestJS 프레임워크 기반의 작은 프로젝트를 진행하면서 소프트웨어 분석,설계,구현,검증까지 두루 살펴봅니다. 이 과정에서 TDD, DDD, MSA 등 백엔드의 기본을 다룹니다.
본질 기반 해석 - 소프트웨어 설계의 기본
Переглядів 7 тис.Місяць тому
관련 링크 mannercode.com github.com/mannercode/nest-seed 소프트웨어 설계와 구현을 하지만 몇 번이고 결정을 번복하게 됩니다. 무엇이 올바른 결정인지 알아보고 설계의 방향을 정할 수 있도록 합니다.
객체 지향 프로그래밍(OOP)의 이해
Переглядів 1,3 тис.2 місяці тому
관련 링크 mannercode.com github.com/mannercode/nest-seed
정말 도움이 많이 되었습니다. 초반에 소개해주신 Movies, Theaters, Showtime으로 서비스를 나누는 방법이 저한테는 자연스럽고 효율적으로 다가왔었어요. 그런데 순환참조 문제가 발생하면서 사실상 서비스들이 한덩어리가 되어버린다는 매너코드님 의견을 듣고 나서 머리를 한 대 맞은 듯 했습니다. Core서비스와 Application서비스 두 단으로 개념을 나눠 디자인을하니, 서비스간 경계가 뚜렷해진 느낌입니다. 프론트엔드 입장에서는 인터페이스가 단순해져서 편하고, 백엔드 입장에서도 코어 서비스 간 순환참조가 없어서져 서비스 정체성이 흐려지는 것을 방지할 수 있을 것 같아요. 유익한 영상 감사합니다!
도움이 됐다니 기쁘네요 ^^. app과 core로 나눈다고 했는데 아직 고민 중입니다. core는 다른 서비스를 참조하지 않는다고 했는데 FileStorageService 같은 infra 서비스는 core도 참조해야 하는 것 같습니다. 그래서 app, core, infra로 나눠야 하는게 아닌가 싶습니다. 생각이 정리되면 다시 영상 올리도록 하겠습니다. Microservices의 관계는 클래스와 유사한 면이 있습니다. 그래서 OOP와 같은 기본이 중요한 것 같습니다. 혹시 다른 원하시는 내용 있으시면 말씀해 주세요. 요즘 어떤 영상이 의미가 있을까 고민이 많습니다. 힘내세요!!
영상 잘봤습니다 ! 절차지향으로만 코드를 짜다 객체지향으로 과제를 진행하게 되었는데 막상 코드를 짜려고 하니 너무 어렵습니다 ㅜ ㅜ 코드를 많이 보는 것이 답일까요 ?
뭐... 많이 고민하는 게 답이기는 하죠.. ^^;; 최대한 깔끔하게 정리한 코드 링크 남겨주시면 어쩌면 코드를 볼 수도 있습니다.(장담은 못합니다) 힘내세요! ^^
저도 같은 고민 떄문에 힘들었는데, 앞으로 어떻게 해야할지 알겠네요. 소중한 영삼 감사합니다.
도움이 되었다니 저도 기쁩니다. 질문은 언제나 환영입니다!
애자일 방법론은 원리주의 일까요? 실용주의 일까요?
원리주의자가 사용한다면 원리주의가 되겠고 실용주의자가 사용한다면 실용주의가 되겠죠. 그러니까.. 사용하기 나름 아닐까요? ^^;
OOP 설명감사드립니당! 말씀하신 개념으로 리팩토링 해봐야 겠네용
도움이 되었으면 좋겠네요! ^^
유튭 알고리즘 타서 하루만에 이 영상 순서 까지 보고 있네요 ㅎㅎ 유단자의 느낌이.... 코드 안치고 그냥 보는데도 유익한 지식이 생긴 기분이네요. 영상 올려주셔서 감사합니다. fe 개발자 인데 be 개발에 관심이 생겨지는 영상이네요. be개발 하신지는 얼마(?) 안되셨다고 영상 중간에 언급 해주셨는데, 기존에 어느 개발 하셨고 be 개발 전향 이유나 팁에 대해서도 알고싶어요 ㅎㅎ
전향을 하지는 않았구요... 그냥 필요해서 하는거죠 뭐 ^^; 기존에는 윈도우 c++,ios,android,react... 이런거 했었습니다.
오해할 만한 내용들이 있네요. TDD는 깨지게 하기 위해서 만드는것입니다. 말씀하신내용은 TDD라기보다 그냥 실무에서 테스트코드에 대한 내용입니다. TDD 중요효과는 스펙의 오류를 빨리알수있다. fast fail입니다. 사실 si일경우 테스트코드는 코스트일 수밖에 없습니다. 테스트코드의 주요효과는 리팩토링에 주효합니다. 테스트가 없으면 사실 새로 만드는게 나을 정도 되고 버리는 코드가 되버리겠죠. (유닛)테스트,TDD등용어에 혼용이 있어보이는데 테스트전략, 테스트피라미드 이라고 검색해보세요. 목,커버리지,프론트엔드 등 궁금하신게 해결되실껍니다.
의견 주셔서 감사합니다. 말씀하신 것에 대부분 동의함에도 불구하고 오해할 만한 내용들이 있다고 말씀하시는 것을 보면 제가 오해할 만한 내용들을 담기는 했나 봅니다. :) 차이가 있다면 SI가 아니라 보통의 서비스도 개발 비용을 무시할 수 없다는 정도겠네요.
13:19 13:44 27:13
디스크 걸려요~ ^^
감사합니다.
좋게 봐주셔서 감사합니다. ^^
초반 8분까지만 봤는데 절차지향 예시가 잘못됐네요. 이렇게 작성하는 경우는 절차니 객체니 다 떠나서 코딩을 잘 못하는거죠. printDocument(), clearDocument() 함수 등에선 doc을 아예 string이든 File이든 하나만 받도록 하고 밖에서 변환해서 넘겨야죠.
아...네...그렇죠...^^;;
중간에 20분 ~ 부터 말씀해 주신 부분들은 아마 현재 많은 개발자들이 겪고 계신 backend 서비스 로직들의 packaging 을 feature driven 하게 할 것이냐, domain driven 하게 할 것이냐, 하는 여러 프로그래머들이 거쳐 간 고민들을 하고 계신 것 같습니다. 여기서 개인 프로젝트를 개선해 나가면서 얻으신 통찰력에 좀 감명을 받았는데, Showtimes, Theaters, Tickets 를 분리 하신 것처럼 domain driven 하게 로직을 분리하게 되면 추후에 MicroService 로서 별개의 시스템으로 확장 할 때의 package가 "절취선" 과 같은 역할을 하게 됩니다. 하지만 많은 레거시들은 package구조 조차 이렇게 쪼개어 지지 못했고, MSA 로의 전환은 거의 시스템을 다시 만드는 수준까지 가게 되는 것이죠. MSA 로의 전환 과정에서. 그 목표는 명료합니다. 각자의 Service 가 각자의 Role 을 담당하고, 느슨한 결합으로 인해서 각자 시스템의 쉽게 적용,배포 가능한 환경을 구성하는 것인데, 데이터 관점에서 볼 때는 그렇지가 않습니다. 당연하게도 특정 API 에서는 다른 domain 을 참조하거나 데이터를 업데이트 하려는 시도가 있고, Network상으로 분리된 다른 서비스들이 거미줄처럼 엮여 있는 구조에서 "데이터 정합성"은 정말 중요한 과제로 다가옵니다. 결제시스템, 고객개인정보 시스템의 Command(Insert, Update, Delete) 가 유실되는 상황은 악몽같을 것 입니다. 초기 고안된 고민들이 XA (분산 트랜잭션) 이고, 많은 RDBMS가 이를 지원합니다. 하지만 Springboot 2.5 version 에서 이런 분산 트랜잭션이 Deprecated 된 만큼 분산트랜잭션 기술로 데이터 정합성을 맞추는 것은 쉽지 않습니다. 그래서 등장한 것이 바로 SAGA 입니다. 이전 Mono Service 에서는 2PhaceLocking 이니, Multi-Version-Control이니 DB Isolation level 이니 하는 것들이 이론으로 "아 ~ 데이터베이스는 트랜잭션을 이렇게 제어하는구나" 하고 이론으로만 공부하고 지나갔던 내용이, Application 레벨로 응용 개발자들에게 구현 과제가 되어 버린 것이죠. SAGA 패턴에 대해서 research 를 해 보시다 보면, 아, 네트워크 상으로 떨어진 서비스끼리의 데이터 정합성을 이런 방식으로 해결했구나! (Tranactional Outbox, DLQ등) 하는 통찰을 얻으실 수 있을 겁니다. 추가로 Event-Sourcing 에 대한 추가적인 내용도 만나보실 수 있겠죠. 목적성 없이 떠들었는데, 저도 매너코드님의 컨텐츠를 보면서 배우는 것들이 참 많습니다. 제가 남긴 내용들이 도움이 되었길 바래요
코드를 설계할 때 어떤 것을 중점으로 두어야 좋을지 고민하던 찰나에 좋은 인사이트를 주셔서 감사합니다. 가르쳐 주신 본질기반해석! 꼭 기억하겠습니다!😆
기억해 주셔서 감사합니다!
날이가면 갈수록 새로운 기술들이 늘어가고 그걸 하나하나씩 공부해나가다보니 잊고있었던 내용인데 지금이 정말 딱 그러한 시점이네요 ㅋㅋㅋ 좋은 내용입니다
도움이 됐다면 다행입니다. ^^
매너코드님은 원리주의자 인가요? 실용주의자 인가요? 지금까지의 영상을 보았을땐 중간에 가까운 실용주의자로 보이는데 맞나요?😮
원리주의에 기반한 실용주의입니다. ^^ 이것 저것 기술을 고민하던 주니어 시절에는 원리주의였구요. 기술에 점점 익숙해지면서 실용주의가 가능해진 것 같습니다.
OOP 의 본질을 잘 설명 해주셔서 감사합니다.(역시 본질기반해석 창시자!!) 제 나름대로 3줄 요약 해보겠습니다. 1. OOP란? 데이터 + 함수 = 객체 2. OOP 사용 이유? 코드간 의존성을 낮추고 응집도를 높여 프로그램 복잡도를 낮추기 위함 3. 직접 적용해서 유레카를 외치길
맞습니다~! OOP의 본질은 관련있는 데이터와 함수를 묶어서 복잡도를 관리하는 방법이죠! 알아주셔서 감사합니다 ^_^ 그리고 저 본질기반해석 창시자 아닙니다. 저는 그냥 이름만 붙인 것입니다. 아마 다들 무의식적으로 알고 계셨을 겁니다. 그래도 말씀 정말 감사합니다 ^^
순환 참조 문제 공감되네요. express로 만들다가 nest 하니까 /a/b 엔드포인트를 만들어야 하는데 /a로 시작하니까 a 컨트롤러에서 만들어야 하나? 그럼 /b/a는 b 컨트롤러에서 해야 하나? ㅋㅋㅋ
프사,댓글 시간 싱크로율 뭐임 ㄷㄷㄷ 일찍 일어나는 새가 정말 존재했군요!
정말 중요한 과정이죠!!🤗
맞습니다!!🤗🤗
코드를 작성하는게 너무 어려운 경우는 어떻하면 좋을까요?? 남의 코드를 읽는것 대충 구조를 보는 것은 할 수있겟는데 무에서 유를 만드려고하니 정말 막막하네요 초심으로 돌아가 별찍기 부터 해야 할까요?? 정말 막막합니다.
오오오오!!!! 이런 질문 너무 좋습니다~! ^^ 물론 그렇다고 제가 정답을 안다는 뜻은 아니구요..^^;; 그리고 질문에 답을 하기 위해서 정확하게 코드를 어디까지 작성할 수 있는지 구체적으로 알려주시면 좋겠습니다. 말씀하신 것처럼 별찍기는 가능하신 거잖아요? 그러면 자신의 생각을 코드로 표현하는 기본 능력은 있으실 것 같습니다. 영화 예매 시스템 같은 애플리케이션을 만들려고 하려니 시작이 어려운 건가요? 아니면 알고리즘을 작성하기 어려운 건가요? 그 외에 또 뭐가 있을지 생각이 나지 않는데.. 일단 현재 무엇이 가능하고 어려운지를 가능한 구체적으로 알려주시면 저도 더 구체적으로 답을 할 수 있을 것 같습니다. 힘내세요!! ^^
@@mannercode 둘다의 경우가 해당하는것 같습니다 프로젝트의 경우 뭔가 참고를 하면 어설픈 응용은 되는데 아무것도 보지않고 한다고하면 너무 어렵고 알고리즘 같은경우도 해설은 안보면 머리가 하얗다고 해야하나 기본기를 천천히 쌓았어야 하는데 무지성으로 국비 팀프로젝트 같은 것 만 몇번 해봐서 ㅠㅠ
그러면.. 메신저 서비스를 만든다고 가정해 보면 어떨까요? 메신저 서비스를 만들려면 어떻게 시작해야 할까요? 생각하시는 구현의 크기가 어느 정도인지를 알아야 답을 드릴 수 있을 것 같습니다. 아, 그리고 하시는 분야(모바일/프론트/백엔드)가 무엇인지도 알려주세요. 제 질문은 메신저 서비스를 만들어야 하는데 제일 먼저 만들어야 하는 기능은 뭘까요? 입니다. 정답은 없으니까 생각나는대로 말씀해 주시면 됩니다. (메신저 말고 다른 서비스를 만든다고 가정하고 답글 주셔도 됩니다. )
@@mannercode 주로 백엔드 개발을 합니다 일단 erd부터 그려야겠죠 ? 기능이라 하셨으니 저는 회원가입 기능 먼저 구현해서 유저를 만들고 그 유저 바탕으로 채팅기능을 그 다음으로 구현 할 것 같습니다.
아니... 잘 하시면서 무슨 고민을 왜... ^^;; 자세한 얘기는 다음 주 이 시간에 이어서 하면 어떨까요? 제가 아직 라이브 방송을 해본 적이 없는데 이런 얘기 해보면 좋을 것 같습니다. 괜찮다고 하시면 10월 20일 0시 0분에 라이브 채널에서 뵙겠습니다.
나중에 개발환경에 대해 셋팅하는 영상도 번외편(?)으로 올려주셨으면 좋겠습니다!
어... 개발환경을 설정하는 영상이요? 소스 보면 된다고 생각해서 대충 넘어간 건데... 혹시 자세한 설명이 필요하신 건가요? 왜 필요한지 좀 더 구체적으로 알려주시면 고려하겠습니다. ^^
@@mannercode 영상에 몇가지 키워드들로 구글 검색을 해보니 관련된 자료가 나왔었네요... 앞으로는 충분히 검색을 하고 이런 요청을 드리는것이 좋을듯 싶습니다 ㅠ 알려주시는 내용을 스스로 타이핑 해가면서 진행해보고자 말씀드렸었습니다. 더불어서 주로 인텔리제이에서 개발을 하다보니 환경이 달라보여서 요청드렸었습니다~
아닙니다. 다음에도 뭔가 궁금한 게 있으면 알려주세요. ^^ 저는 다른 분들이 뭘 궁금해 하시는지 잘 모릅니다. 힘내세요!!
우연히 보게 되었는데 정처기 공부로 단순 개념만 외우다 실제 문서로 설계하는 걸 보니 이해가 정말 잘 되네요. 좋은 내용 유튜브에 공유해주셔서 감사합니다!😊😊
시청해 주셔서 감사합니다. 다음엔 설계를 더 많이 다뤄보겠습니다. ^^
선생님 영상 잘 보고있습니다. 영상을 보면서 궁금한 점이 생겼는데, nest-seed 리파지토리에 있는 design.guide.md 에서 다루는 내용이기도 합니다. 저는 MSA를 경험해본적이 없고, 모놀리식 구조의 프로젝트 위주로 개발을 해왔기 때문에, 제 프로젝트에는 위와 같이 프레젠테이션 레이어와, 애플리케이션 레이어를 나누어 해결하는게 비용이 더 저렴해보입니다만.. 지금까지는 다른 구조로 개발을 하고있었습니다. Feature 모듈들에 각각 controller, service, repository가 있는구조이고 순환 참조 문제를 이벤트 기반으로 해결하는 방법을 사용해왔는데, 이 부분에 대해서는 어떻게 생각하시는지 궁금합니다. (nest-seed 프로젝트의 core/event 모듈이 있는것을 보았는데, 이 이벤트 모듈은 어디서 사용되는지도 궁금합니다.) 항상 양질의 영상 감사합니다.
방법은 본질을 위한 도구임을 다시 생각하게 되네요. 깊은 통찰 공유해주셔서 감사합니다.
시청해 주셔서 감사합니다. 질문은 언제나 환영입니다. ^^
재미있는 영상 감사합니다. 20:00 이부분 의도가 명확하게 전달이 돼서 좋은 것 같습니다.
구체적으로 말씀해 주셔서 감사합니다. 앞으로도 계속 리뷰 부탁드립니다. ^^
좋은 영상 감사합니다
좋게 말씀해 주셔서 감사합니다. 그런데 설명이 좀 산만하지 않았나 싶어서 걱정이긴 합니다. ^^;
체크
✅
채널이름부터 프사, 목소리, 내용까지 싱크로율 뭐임 nested 방식의 라우팅은 2~3 깊이까진 괜찮은 것 같은데 적절한 기준을 세워 놓지 않으면 계속 길어지고 읽기도 벅차고 엔드포인트 너무 많아지고 아아아~ 그렇게 graphql에 눈길을
채널을 mannercode 말고 coderani, choborani가 후보에 있었는데 주변에서 -rani는 안 된다고 말린 이유가 있었나 봅니다. ^^;;
아직 객체지향적 사고가 탑재되지 않은 주니어입니다. 많은 도움이 되었습니다. 감사합니다.
조금이나마 도움이 됐다니 보람을 느낍니다! 힘내세요!!
정말 깊은 통찰을 줍니다. 제가 지금까지 작성했던 코드들, 과연 본질에 부합할까 다시한번 생각해보게 되는 계기가 되었습니다.
시청해 주셔서 감사합니다! 제 영상이 깨달음의 계기가 됐다니 기분이 좋습니다.^^ 언제든 질문 있으시면 댓글 부탁드립니다.
게임 프로젝트 팀원들이랑 매너코드님 처럼 설계하고 하자고 했더니 다들 좋아해요~ 초보라 어떤게 맞는지는 모르지만 매너코드님 코딩철학 따라가겠습니다
고민하는 만큼 성장하기 때문에 고민에 실패는 없습니다. 프로젝트의 목적이 성장이라면 노력을 결심한 순간 성공한 것과 다름없습니다. 엣헴~ ^^
말씀 하신 것처럼 머릿속에 있는 생각을 논리적이고 명확하게 표현하기란 참 어려운것인데, 설계를 다이어그램으로 표현해주시는 부분이 참 인상깊습니다. Macro 서비스에서 Micro 서비스로 나아가는 방법을 설명하는 부분에서는 정말 띵 하는 느낌이었습니다. 분명 많은 자료들을 공부해서 이해한다고 생각했던 부분이었는데, 제대로 모르고 있었다는걸 확실히 알았습니다. 제가 지금까지 참고해왔던 서적들과 강의들 중에서 비교불가로 으뜸가는 강의라고 생각합니다. 좋은 영상 감사드립니다.
아... 너무 좋게 말씀해 주셔서 어떻게 답글을 달아야 할지 고민이 됩니다. 앞으로도 기대하시는 만큼의 영상이어야 할 텐데 부담도 되네요. 그래도 이렇게 시청해 주셔서 정말 감사합니다. 궁금한 것은 언제든 댓글 달아주세요. 감사합니다. ^^ 아참, 혹시 본질 기반 해석은 보셨나요? 그게 설계의 기본이 되는 내용이라 꼭 보시는 것을 추천드립니다.
@@mannercode 본질 기반 해석을 처음 보고 감명받아서 전부 정주행 했습니다 :)
항상 재미있는 영상 감사합니다
항상 재미있게 봐주셔서 감사합니다. ^^
다음강의가 너무 기대됩니다
다음 강의도 마음에 드셔야 할 텐데.. 부담이 되네요 하하핫 ㅜㅜ
저도 오늘부터 정독 하도록 하겠습니다 :) 앞으로 . 잘부탁드립니다!
어서오세요~ 기대에 부응해야 할 텐데 제가 가진 게 충분한지 모르겠네요. ^^;;
앗.. 2등!
2등도 훌륭한 성적입니다! 👏👏👏
정말 멋지세요, 깊이가 느껴집니다. 앞으로도 화이팅입니다.
감사합니다! 앞으로도 잘 부탁드립니다! ^^
내용이 참 좋네요. 감사합니다.
우와 마크다운으로 유스케이스 다이어그램도 나타낼 수 있나요? 한 번 찾아봐야겠네요. 영상 중간에 나오군요. 대박대박
아하~ 처음 오셨군요! 그렇다면 처음부터 정주행 하시는 걸 추천합니다 ^^ 시청해주셔서 감사합니다!!
크~ 가즈아!! 팀원들이랑 같이 소통해서 코드 스타일 가이드 잘 만들어 보겠습니다~
화이팅입니다!
안녕하세요. 모 스타트업에서 CTO를 하고 있습니다. 개발자를 나누시는 기준에 대해서 공감합니다. 명칭은 달라도 저도 유사하게 두 가지로 개발자의 성향을 분류합니다. 정확히는 성과를 내는 방식의 차이로 보고 있습니다. 사람이 투자할 수 있는 시간에는 한계가 있고 정해진 시간 안에서 어떤 관점을 가지냐에 따라 원리주의든 실용주의든 편향되어 있기 쉽다고 생각합니다. 결국 이상적인 개발자는 원리주의와 실용주의 관점을 함께 가져갈 수 있어야 한다고 생각합니다. 다만 주니어때부터 중용을 지키며 성장해나가기는 비현실적이라고 봅니다. 그래서 팀에서는 다양한 관점이 다양한 맥락에서 싸워봐야 프로젝트가 중심을 잡을 가능성이 커지는 것 같습니다. 저도 쓰다보니 말할 부분이 너무 많아서 자꾸 지우게 되네요 ㅎㅎ 블로그와 영상 기대하겠습니다.
그래서 저도 영상을 찍다가 자꾸만... ^^; 이 영상의 취지는 서로의 입장을 이해해 보자는 것이었습니다. 결국 사람이 하는 일이니까 사이좋게 지내야죠. 한 번에 여러 유형을 다루기는 어려울 것 같고 생각을 좀 더 정리해서 유형별로 하나씩 풀어나가지 않을까 싶습니다. 아참, 말씀하신 것은 모두 동의합니다. 원리주의에 기반한 실용주의는 정말 한참 많은 경험과 실력이 있어야 가능한 것 같습니다. 그게 가능하면 이미 주니어가 아니죠. 관심 가져주셔서 감사합니다. 앞으로도 좋은 의견 부탁드립니다. :)
지금 이부분 만들고 있는데 알고리즘 갓!! 영상보면서 깃허브 project를 사용하여 컴포넌트 단위로 해보려 합니다 감사합니다~
기특한 유튜브 알고리즘 갓갓~! 만들고 또 만들고 다시 만들고 계속 만들다 보면 더 좋은 개발자가 되실겁니다. 힘내세요~!
좋은 영상 잘 봤습니다. 현업 기획자이자 PM인데 저희팀 개발자가 추천해줘서 보게 되었습니다. 프로젝트에서 가장 중요한 본질에 대해 잘 설명해주셔서 감사합니다. 매너코드님과 같은 개발자분들과 일을 많이 해보고 싶네요! 많은 개발자들이 볼 수 있도록 구독하고 좋아요 하겠습니다!
보잘 것 없는 영상인데 좋게 말씀해 주셔서 감사합니다. 다음 영상에서 유스케이스 다이어그램을 확장하고 유스케이스 명세서도 작성할 건데요. 그 영상도 도움이 되면 좋겠습니다. 힘내세요!!!!!
구체적인 사례와 설명 잘 들었습니다
시청해 주셔서 감사합니다. ^^
스타트업이라면 개발자들도 도메인 지식이 있어야하니 요구문서가 좀 더 간략하겠고 큰회사나 si같은 경우엔 설계자가 도메인에 대한 내용을 자세히 써주셔야겠죠 Go는 상속에 관한 논쟁을 원천 차단하기 위해 아예 없애버렸죠 ㅋㅋ 말씀하신 예제 처럼 구현하다보면 가지고 있는 함수들이 똑같은 거 같은데 도메인 잘 모르겠고 그냥 상속해버리자~ 하면 분명 개발중 if else가 하나둘 추가되면서 약간 이상함을 느끼지만 예외겠지 하고 넘어기면 나중에 떼어네는데 일이 커지죠. 차라리 처음보신 문서처럼 절대적이지 않은경우엔 사용하지 않는것도 방법이겠네요.
애니멀사례도 개,고양이 발 네개네? 애니멀=발4개라고 결정해버리면 나중에 의자 책상은 애니멀에 들어가고, 사람은 다리 2개니 애니멀에 못들어가는 사례도 생깁니다. 도메인 지식이 불명확할때는 아예 상속을 안하고, 명확하고 불변인게 확인되어야 합치는것을 고려하는것도 좋다고 봅니다.
에... 뭐든 잘 쓰면 약이고 못 쓰면 독 아닐까요? ^^ 파이썬이 들여쓰기를 강제하는 것처럼 Go는 구현 상속의 이익보다 실이 크니 상속을 막았나 보네요. 과거 80년대 oop에 대한 논의가 한창일 때 순수 OOP주의자들도 구현 상속을 막아야 한다고 주장이 있었죠. 그런데 구현상속이 말씀하시는 것처럼 나쁜 것은 아닐거라고 저는 생각합니다. 그랬다면 다른 현대적인 언어에서도 상속이 막았겠죠. :)
잘봤습니디! 영화검색 시스템을 추가해서 각 유즈케이스를 추가해도 될까요? 상영가능한과 예약가능한이 섞인것 같아서요
의견 감사합니다. 다음 영상에서 유스케이스를 확장하긴 할텐데 영화검색을 따로 두지는 않을 것 같습니다. 그런데 저는 기능을 최소화 하려고 노력하는 중이구요. 말씀하신 기능이나 서비스는 일반적인 상용 서비스라면 당연히 들어가겠죠. :) 다음에도 좋은 의견 많이 부탁드립니다. 감사합니다!
안녕하세요. 좋은 영상 감사드립니다. 혹시 지금 사용하고계신 VScode 확장 프로그램을 알 수 있을까요?
아..?? 답글을 달았다고 생각했는데 사라져있네요. 일시적인 문제인지 몰라서 다시 답글 답니다. .vscode 폴더에서 devcontainer.json 파일에 아래의 내용을 확인하실 수 있습니다. "extensions": [ "ms-azuretools.vscode-docker", "dbaeumer.vscode-eslint", "github.vscode-pull-request-github", "firsttris.vscode-jest-runner", "ms-vscode.live-server", "jebbs.plantuml", "esbenp.prettier-vscode", "mutantdino.resourcemonitor", "foxundermoon.shell-format" ],
@@mannercode 답변 주셔서 감사합니다. 많은 가르침 주셔서 감사합니다.
갑자기 알고리즘에 등장한 영상이 평소에 해소가 안되는 내용을 너무 쉽게 설명해주셨습니다 감사합니다
유튜브 알고리즘은 어떻게 그렇게 찰떡같이 추천을 하는지 신기합니다!! OOP도 나름 참신하게 설명했으니까요 여유되시면 한 번 봐주세요. 본질기반해석은 분석/설계의 기본이니까 꼭 보시기를 추천드립니다. 감사합니다. ^^
@@mannercode 선생님 영상은 1년뒤에 봤었어야하는데, 유튜브 영상이 이렇게 기다려지는건 처음이네요 ㅠ. 본질기반해석은 도파민이 과다 분비될 정도로 흥미롭게 봤습니다. 아직 진정한 본질을 깨닫기엔 준비가 덜되어있기에 주기적으로 찾아오겠습니다. 지식 공유에 너무 감사드립니다^^
깨달음은 각자의 마음 속에 있습니다. 옆에서 아무리 잘 설명해도 마음 속에 지식이 없다면 얻을 수 있는 것은 없습니다. 제 영상은 단지 고래밥 님의 갖고 있던 깨달음을 발견하는 데 약간의 도움이 된 것 뿐입니다. 제 영상이 없어도 계속 고민하고 고민하다 보면 분명 더 훌륭한 개발자가 되실 겁니다. 엣헴~
재밌네요!! 구독했습니다ㅎㅎ 덕분에 OOP 개념이 피부로 와닿네요ㅋㅋㅋ 이건 순전한 호기심인데, 객체형 프로그래밍과 함수형 프로그래밍의 추구하고자 하는 방향?의 차이점이 뭐라고 생각하시나요? 한번 간단히 다뤄주시면 재밌을 것 같아요
어... 함수형을 제가 잘 모릅니다. 하하핫! 그런데 함수형의 유용성이 충분히 검증되면 자연스럽게 알게되지 않을까요? 각 프로그래밍 언어들의 메뉴얼에 잘 정리가 돼서 소개하겠죠. 뭐 ^^;; 그 전까지는 크게 관심을 갖지는 않습니다. 사실 제가 모르는 게 많은데 특히 신기술(?)을 잘 모릅니다. 저는 검증된 기술을 잘 사용하자는 주의라서요. 만족스런 답을 드리지 못해 죄송합니다.ㅜㅜ 그래도 계속 구독 부탁드리고 특히 '본질 기반 해석' 을 꼭 시청해 주세요. 이 채널의 시그니처 영상입니다. ^^
영상을 보는데 시간이 가는 줄 몰랐습니다... 감사합니다... 감사합니다...
실제로 영상이 짧아서 시간 가는 걸 느끼기 어렵습니다. 😁 시청해 주셔서 감사합니다!