묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
static
안녕하세요 강사님그 매직넘버와, 매직스트링 강의와 이 강의를 들으면서 하나 느낀점이 있는데 상수로서 정리를하여 얻는 이득은 있으나 그만큼 static이 많아져서 메모리를 더 먹거나 다른 단점들이 존재하는것 같은점에 대해서는 어떻게 생각하시나요?? 그 단점들을 포기하면서도 얻는 이득이 많아서 이렇게 하시는편을 더 지향하시는지 궁금합니다감사합니다
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
강의 질문
안녕하세요 강사님테코 강의때 부터 시작해 강의 잘 보고 있습니다다름이 아니라 강의에서 '한 메서드의 주제는 반드시 하나이다' 라고 하셨는데 그럼 여러 메서드를 잘게 쪼개고 하나의 큰메서드로 묶는 방법(주제가 두개이상) 은 지양 해야 되는 방법일까요?감사합니다
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
안녕하세요 강사님 SRP에 관한 질문입니다!
이번 강의 내용과 관련하여 JPA를 사용하여 CRUD를 구현할 때 질문입니다! JPA를 이용한 간한단 CRUD를 구현할 때,POST와 USER Entity는 서로 연관관계 매핑이 되어있습니다. Post(게시글)을 작성한다고 가정하면 PostService에는 UserRepository를 사용하여 User객체를 얻어야 하는데, 이러한 경우 단일 책임 원칙 위반이라고 얘기할 수 있는 건가요? 댓글을 작성한다고 가정하면, CommentService에 UserRepository, PostRepository를 사용하여 User와 Post 객체를 얻어야 합니다. 제가 생각했을 때 이러한 경우 단일 책임 원칙이 위반 되었는지가 궁금합니다.게시글 작성, 댓글 작성이라는 행위에 다른 도메인이 침투해있으니까 단위테스트 작성도 어렵고 가독성이 떨어진다고 생각하는데, 맞을까요?그럼 2번을 개선하기 위해서는 어떻게 해야 되는지 궁금합니다. 너무 얘기가 길어지면 어떤 책or글을 참고하는게 좋을지 가르쳐주시면 너무 감사하겠습니다!!강사님 이전 테스트 코드 강의도 보고 지금 강의도 보고있지만 아직 너무 어려워서 따라가기가 힘드네요 ㅠㅠ....항상 감사합니다!
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
코드 작성 시 SOLID 원칙을 처음부터 준수해가며 작성하시는지, 아니면 개발 후 리팩토링을 통해 점진적으로 변경해 나가시는 편인지 궁금합니다.
안녕하세요, 강사님.강의 정말 유익하게 잘 듣고 있습니다. 강의를 보면서 기존에 작성된 로직에서 SOLID 원칙을 위반하는 코드들을 점진적으로 개선해 나가시는걸 보고 한가지 궁금한게 생겼는데요. 강사님께서는 코드를 작성할 때 위 원칙들을 처음부터 준수해 가시면서 작성을 하시는 편인지, 아니면 기능 구현에 우선 초점을 맞춰 코드를 작성하신 뒤 강의처럼 점진적으로 리팩토링을 해나가시는 편인지 궁금합니다. 이 원칙들을 준수해가면서 코드를 작성하는 버릇이 생기게 되면 전자의 방식이 가능해지는건가요? 지금 당장 생각했을 때는 아무리 원칙을 잘 이해한다고 하더라도 쉽지는 않을 것 같아서요. ㅜ 그리고 혹시 다음 강의 계획하고 계신게 있으신가요? ㅎㅎ
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
이 비디오에서 말씀해주신 것들을 적용하는데 어려움이 있습니다.
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 사실 제 개인의 문제는 아니고 이걸 팀 단위의 규칙으로 가져가기엔 현재 다니는 회사에서 다른 분들을 설득하는데에서 늘 어려움에 부딪히는데요. 이러한 상황에서는 우빈님은 어떻게 팀원들을 설득하셨나요?
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
Optional 질문이 있습니다.
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. Spring Data JPA를 사용할 때 Repository에서 단일 엔티티 객체를 반환받을 때 옵셔널로 무조건 감싸는데 이러한 것도 Optional의 비용을 생각하지 않고 남발하는 경우 일까요?
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
getter 질문드립니다
안녕하세요!예시에서 person.get지갑().get신분증().findAge() >= 19를 person.isAgeGreaterThanOrEqualTo(19) 메서드로 만들면person 내부에서 다시 지갑.get신분증().findAge() 형태가 되는데, 이 경우 지갑.isAge..(19) 같은 메서드를 계속 만드는지 끊어내는 기준이 있는지 궁금합니다.
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
이 강의를 수강하기 전, 수강 후 학습 질문입니다.
안녕하세요 우빈님 테스트 코드 강의도 정말 열심히 듣고 많은 것을 배워서 항상 감사하고있습니다!이번에 새로 나온 강의 관련해서 전과 후 어떤 학습을 진행하면 좋을 지 궁금합니다. 추천해주실 책이나 강의가 있을까요?
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
인터페이스 명칭 정의는 어떤 방법들이 있나요?
안녕하세요 인터페이스 명칭만드는데 뒤에 able을 붙이는 경우랑 단순히 명사로 명칭을 짓는 경우가 있더라구요 각각 이유가 있으신가요??
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
일급컬렉션 메서드 반환타입 List로의 반환 vs 일급컬렉션으로 반환
안녕하세요강의보다가 일급컬렉션에 정의한 메서드들의 반환타입이 일급컬렉션 타입으로 반환하기도 하고 LIst<>로도 반환하기도 하셨던거 같았는데요 어느 기준을 가지고 어떤 타입으로 반환하는지 궁금합니다
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
강의를 다 들은 후에 오랜 궁금증에 대해 질문드립니다!
안녕하세요, 우빈님! 정말 좋은 강의를 제공해주셔서 감사합니다. 제가 고민하던 주제에 관해 다뤄주셔서 정말 흥미를 가지고 강의를 들을 수 있었습니다☺강의를 다 들은 시점에 개발 공부를 시작한 이래로 늘 가지고 있던 오랜 궁금한 점이 있어서 이렇게 질문을 남기게 되었습니다! 조금 장문이 될 수도 있을 거 같네요🥲스프링을 사용해서 개발하게 되면 제일 처음 배우는 구조가 Controller -> Service -> Repository 이런 구조인데요, 보통 비즈니스 로직은 Service 에 작성된다고 배웠습니다. Service 레이어에서 모든 게 처리되고 비즈니스 로직이 도메인 쪽에 위치하지 못 하게 되는 것 같습니다. 애초에 도메인이라는 개념 자체가 없고 바로 JPA 엔티티를 만들고 @Service 어노테이션이 붙은 클래스에서 모든 걸 다 처리하는 거 같아요. 제가 국비 교육에서 배운 팀 프로젝트나 3개월 간 짧게 경험해 본 실무에서도 다 이렇게 코드를 짰던 거 같습니다. 공부하다보니 이런 걸 트랜잭션 스크립트 라고 하는 거 같더라구요.그런데 아무리 생각해도 이런 방식은 객체지향적이지 않다는 생각을 지울 수가 없었습니다. 제가 객체지향의 사실과 오해, 오브젝트 등에서 읽은 객체의 역할, 책임, 협력 이런 것들을 적용해보지 못 하는 것 같아서 객체지향적으로 코드를 짜는 것은 어떤 것일까 하는 갈망이 늘 있었습니다. 이런 갈망이 있어서 이번 강의를 더 간절히 기다렸던 거 같아요😀이번 강의는 스프링이나 데이터베이스를 전혀 사용하지 않고 순수 자바로만 객체지향에 대해서 설명을 해주셨는데요, 만약 스프링과 데이터베이스 기술(JPA) 등을 사용한다고 할 때는 어떻게 처리하시는 지 궁금합니다.이와 관련해서 제가 공부한 건 JPA 엔티티와 별개로 도메인 역할을 하는 클래스를 만들고 해당 클래스에서 비즈니스 로직을 처리하게 하고 도메인 객체를 JPA 엔티티로 변환해서 데이터베이스에 저장하는 방식이었습니다. (도메인 객체와 영속성 객체를 분리한 것이라고 할 수 있을 거 같습니다.) 이렇게 하면 도메인 객체 안에 있는 비즈니스 로직을 단위 테스트 하기도 쉽고(도메인 객체는 순수 자바(코틀린) 코드로만 돼 있으니까요!) 데이터베이스 중심적이지 않고 도메인 중심적으로 생각을 할 수 있는 것 같다는 인상을 받았습니다.다만 이렇게 할 때는 어떤 개념을 통해 도메인을 추출해야할 지, 그리고 책임을 어떤 도메인에 넣어야 할 지 고민할 게 많더라구요. 근데 약간 소설의 등장인물을 설정하는 거 같아서 재미는 있었습니다 ㅎㅎ 이렇게 접근을 하니 @Service 어노테이션이 붙은 클래스는 단순히 객체들이 모여서 서로 협력할 수 있게 해주는 광장(?) 이라고 해야될까요, 중개해주는 역할만 하게 되는 것 같다는 생각을 해보기도 했습니다.이러다 보니 DDD 에 대해서도 많이 관심을 갖게 됐습니다. 도메인 위주로 설계 하고 도메인에게 적절한 역할을 할당하는 방식인 거 같아서요. 그리고 아키텍처에도 많이 관심이 생기더라구요. 단순히 Controller -> Service -> Repositoy 구조의 레이어드 아키텍처에선 처음 언급한 문제를 해결하는게 쉽지 않아 보였거든요. 주절주절 질문이 길었는데 요약을 해보자면 다음과 같습니다. 스프링, JPA 같은 기술과 접목했을 때 이번 강의에서 배운 추상, 객체지향적 개발 방식을 어떻게 적용할 수 있을까요?이후로 공부할 만한 주제로 DDD, 아키텍처 등이 적절할까요? 비전공으로 혼자서 백엔드 개발자 취업 준비 중이라 질문할 곳이 마땅치 않아 여기에 이렇게 남기는 점 미리 양해를 구합니다😭
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
메서드 네이밍 관련해서 질문있습니다!
안녕하세요! 강의 너무 잘 듣고 있습니다!개발을 진행하면서 항상 네이밍 관련된 부분이 정말 어려운거 같네요ㅜㅜ추상화 레벨 파트를 수강하다가 궁금한 점이 있어서 질문드립니다! 같은 boolean형을 반환하는 메서드인데 doesUserWinTheGame()처럼 doesXxx()와, isAllCellIsOpened()처럼 isXxx() 두 가지 형태를 사용하셨는데, 주로 어떤 상황에서 does를 사용하시고, is를 사용하시는지 궁금해서 질문드립니다!