inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

계층형 아키텍처와 헥사고날 아키텍처는 정말 본질적으로 많이 다른 것일까?

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

최근에 제가 고민했던 부분의 토비님의 의견이 궁금해서 질문드립니다. “계층형 아키텍처와 헥사고날 아키텍처는 정말 본질적으로 다른 걸까?” 예를 들어, 계층형 아키텍처에서도 인터페이스를 통해 상위 계층이 하위 계층을 의존하도록 설계하면 DIP(Dependency Inversion Principle)를 지킬 수 있습니다. 그렇게 하면 헥사고날 아키텍처가 지향하는 의존성 역전 과 사실상 동일한 구조가 만들어지지 않을까요? 그렇다면 DIP를 잘 구현한 계층형 아키텍처는 헥사고날 아키텍처와 다르지 않다 고도 볼 수 있을 것 같습니다. 이 생각대로라면, 우리가 그동안 “계층형 아키텍처”라고 부르며 개발하던 많은 구조들이 사실상 헥사고날 아키텍처였던 것 아닌가? 라는 생각도 들었습니다. 만약 두 아키텍처가 여전히 다르다고 본다면, 그 차이는 폴더 구조나 패키지 구성 방식 처럼 물리적인 형태에서 오는 걸까요? 하지만 두 아키텍처 모두 논리적이고 추상적인 설계 철학 을 이야기하는 것인데, 물리적 구조로만 구분하는 건 이상하다고 느껴집니다. 결국 저는, 잘 설계된 아키텍처라면 헥사고날이든 계층형이든 최종 목표는 동일하다 , 라는 생각이 들었습니다. 즉, SRP(Single Responsibility Principle) 를 지키고, 외부 기술의 변화가 도메인에 영향을 주지 않아야 하며 (헥사고날), persistence 계층이 바뀌더라도 핵심 비즈니스 로직은 변하지 않아야 한다 (계층형), 는 점에서 둘의 지향점은 같다고 느낍니다. 혹시 제가 놓치고 있는 중요한 관점이 있을까요? 토비님께서는 이 두 아키텍처를 어떻게 구분하시고, 어떤 기준을 중요하게 보시는지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
  • 헥사고날
  • 레이어드
develop 댓글 2 좋아요 4 조회수 1201

intelli J 실행오류

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

intelli J가 잘 설치되었으나 실행이 안되는 되요.

  • java
  • 객체지향
김선미 댓글 2 좋아요 0 조회수 148

구글 코랩에서는 셀마다 변수 값을 다시 정의해야 하나요?

해결됨

데이터 분석 입문자를 위한 기초 파이썬 with ChatGPT

안녕하세요. 김판다 강사님을 보조하는 이조교 입니다. 저는 강사님 개인 메일로 도착한 질문들을 정리해, 다른 수강생분들께도 도움이 되도록 질문 게시판에 깔끔하게 편집해 올리고 있습니다. 개인 메일( pandakimt@gmail.com )로 질문하셔도, 강사님이 활발히 답변해드립니다. 제목: 구글 코랩에서는 셀마다 변수 값을 다시 정의해야 하나요? 구글 코랩에서는 셀마다 변수 값을 다시 정의해야 하나요? 아니면 첫 번째 셀에서 x = 10 이라고 하면, 두 번째 셀에서도 x 를 그대로 쓸 수 있나요?

  • python
  • excel
  • chatgpt
이조교 댓글 2 좋아요 1 조회수 169

@Autowired 동작 범위 질문

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링 빈 등록에는 컴포넌트 스캔과 @Bean을 통한 수동 등록이 있다고 배웠습니다. @Autowired 를 통한 DI는 스프링 빈으로 등록된 객체에서만 동작한다고 하셨는데, configuration에서 @Bean으로 등록하든, @Component계열 어노테이션으로 등록하든 스프링 빈으로만 등록되어 있다면 @autowired가 사용 가능한 것 인가요?

  • java
  • spring
  • mvc
  • spring-boot
남미미미 댓글 2 좋아요 0 조회수 115

이유가 궁금합니다 (DI 방법 3가지 !)

미해결

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

@Autowired 의 방법이 1. 세터 주입방식 2. 필드 주입방식 생성자 주입방식 으로 바꼈다고 하시는데 2번에서 3번으로 넘어간 이유 한참 고민해봤는데 1번의 장점을 가져올려고 하지 않았나?? 아무나 접근할수 있다는 단점도 되지만, 테스트나 이런거할때 접근이 쉬우니까 테스트도 편하다? 근데 2번은 private이라 접근이 불편하다? 힘들다? 단점이 있어서 그 단점을 보완하는거 아닌가 선생님 답변이 궁금합니다

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
이DH 댓글 2 좋아요 1 조회수 178

선생님 질문있습니다 !

미해결

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

선생님은 보니까 디버그창?? 실행창?에 글자가 나오는데 저는 이렇게 글자가 깨지게 나오는데 왜그런걸까요...? ㅠ

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
이DH 댓글 2 좋아요 1 조회수 99

21버전이 없어요 ㅠ

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 버전을 21로 설정하고 벤더를 말씀하신 오라클 오픈 JDK를 누르면 강제로 24로 버전이 바껴요 21로 되어 있는건 아예 없고 24밖에 없어요.. 어떻게 해야하나요?

  • java
  • 객체지향
강이 댓글 2 좋아요 0 조회수 359

혹시 전체 코드 공개되어 있나요?

해결됨

남박사의 파이썬으로 실전 웹사이트 만들기

혹시 전체 코드 공개되어 있나요? 코드 참고하고자 합니다. 감사합니다.

  • python
김덕주 김 댓글 1 좋아요 0 조회수 116

node.js 설치시 에러

미해결

비전공자도 이해할 수 있는 CI/CD 입문·실전

node.js 설치 명령어를 실행하면 odesource.gpg: command not found bash: /: Is a directory deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodist ro main bash: /: Is a directory E: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (Component) E: The list of sources could not be read. E: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (Component) E: The list of sources could not be read. 이렇게 뜨면서 설치가 되지 않는 것 같습니다. root@ip-172-31-34-207:/home/ubuntu# node -v Command 'node' not found, but can be installed with: apt install nodejs

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
  • node.js
신혜선 댓글 2 좋아요 0 조회수 190

COVID-19-master 관련 등 자료 누락

미해결

[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]

현재 강의 수강 중에 참고 엑셀 파일들을 활용하여 실습을 진행할려고하는데 강의 7에서 다운 받은 자료에서 COVID-19-master 관련 등 자료들이 누락된거 같아서 혹시 별도 첨부파일이 있는지 아니면 강의 28부터 실습에 사용하는 참고 자료들을 별도로 받을 수 있을까요 ?

  • python
  • pandas
lsmqw199 댓글 1 좋아요 0 조회수 113

mem_used_percent 지표가 없는 경우가 있을까요?

미해결

대규모 트래픽 처리를 위한 부하테스트 입문/실전

안녕하세요 강의 잘 보고 있습니다. 다름이 아니라, 해당 강의와 다르게 Ec2에서 mem_used_percent가 안보이는데 원인이 있을까요? 아래 사진은 제 ec2 설정입니다

  • infrastructure
  • k6
  • performance-test
  • performance-tuning
blackhole124 댓글 2 좋아요 0 조회수 140

given when then

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @Test @DisplayName("상품주문_재고수량초과") public void orderOverStock() throws Exception { //given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount = 11; //when //then Assertions.assertThrows(NotEnoughStockException.class, () -> orderService.order(member.getId(), item.getId(), orderCount)); } 촬영 시점과 달리 assertThrows로 변경되며 given, when, then이 참 모호해진 것 같습니다. 제가 이해한 바에 따르면, 변수 설정은 given, 메서드 호출은 when, 결과와 검증은 then에서 수행하는 것 같은데 위 코드와 같은 경우는 어떻게 분리해야 할까요? when은 위와같이 비워두는게 맞을까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
JongYun Won 댓글 1 좋아요 0 조회수 99

sleep과 yield 차이점

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

이 둘을 이해하는데 조금 어려워서 차이점 질문 겸 이렇게 이해하고 있는게 맞는지 또는 이해해도 되는지 질문드립니다. sleep()과 ,yield() 공통점 : 둘 다 실행되면 다른 스레드에게 실행을 양보함 sleep()과 ,yield() 차이점 sleep(ms) : 실행되면 주어진 시간동안 TIMED_WATING 상태가 된다. sleep이 실행된 스레드는 실행 스케쥴링에서 아예 빠진다. 따라서 해당 시간동안 전혀 실행되지 않는다. yield() : 호출되어도 계속해서 RUNNABLE 상태를 유지한다. yield()가 호출되면 해당 스레드는 sleep과 달리 스케쥴링에 대기상태 로 들어간다. 이 말은 스케쥴링에 있기 때문에 다시 곧바로 실행 될 수 있다. 예를들어 1000ms를 기준으로 비교하면 sleep()을 호출한 스레드는 1초동안 아무것도 못하지만, yield를 호출한 스레드는 1초동안 다른 얼마든지 곧바로 실행 될 수도 있고 몇번이든 실행 될 수 있다. 이렇게 차이점을 이해했습니다. 이게 맞는지 이렇게 이해해도 되는지 궁금합니다 감사합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
yoon6669 댓글 1 좋아요 0 조회수 92

오리엔테이션 강의에서 질문 드립니다.

미해결

[PL 0303] 데이터 시각화를 위한 파이썬 - 맷플롯립 마스터 클래스

안녕하세요, Part 3, 4 (Chap 12 - 18) 강의가 보이지 않는데 추후 업로드 예정일까요?

  • python
  • matplotlib
  • 인공지능(ai)
SB 댓글 2 좋아요 0 조회수 110

생성자 대신 세터를 쓰는 이유

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 14:26을 보시면, createOrderItem에서 모든 필드에 대해 세터를 호출하여 일일히 값을 주입합니다. 다양한 파라미터를 사용하는 경우의 수에 대해 각각 생성자를 선언해두면 가독성이 상승하여 추후 유지보수에도 더 편리할것 같은데, 이렇게 사용하는 이유가 있나요? 스프링 강의만 수강하고 야생형 코스를 막 시작한 입장에서, 제가 기억하는 생성자 관련 원칙은 다음과 같습니다. 아무 생성자도 없다면 기본 생성자가 생성된다. JPA는 리플렉션을 통해 코드를 생성하기에 기본 생성자는 반드시 필요하므로, 필요하면 명시하여 생성한다. DI를 위해서 @RequiredArgsConstructor를 이용하여 final 필드를 사용하는 생성자를 생성하고, 주입받는 방식을 권장한다. 생성자는 최소화하라는 다른 원칙이 존재하는 것인가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
JongYun Won 댓글 1 좋아요 0 조회수 110

정적 중첩 클래스 사용 이유

해결됨

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 중첩 클래스 또는 내부 클래스를 사용하는 이유로 "중첩 클래스는 특정 클래스가 다른 하나의 클래스 안에서만 사용되거나, 둘이 아주 긴밀하게 연결되어 있는 특별한 경우에만 사용해야 한다. 외부 여러곳에서 특정 클래스를 사용한다면 중첩 클래스로 사용하면 안된다." 라고 언급이 되었는데, 본질적인 질문이 있습니다. 정적 중첩 클래스 같은 경우는 타 클래스에서 쓰는 경우가 별로 없고 외부클래스 내에서만 사용하는 경우에 쓴다는건데.. 그럼 정적의 의미가 뭔지 궁금합니다. 그냥 내부클래스만 쓰면 되는거 아닌가요? 내부클래스의 기능에서 인스턴스변수 접근이 제한되는 게 정적 중첩 클래스라는 생각이 들어서.. 외부에서 사용하지도 않는데 왜 정적클래스를 굳이 사용하는지 궁금합니다.

  • java
  • 객체지향
khcho1492 댓글 1 좋아요 0 조회수 117

utf-8과 리틀 빅 엔디안은 관계없나요?

해결됨

모르면 야근하는 문자 인코딩 완전 정복

utf-8에서 맨 앞에 1의 개수를 확인하고 이 데이터는 몇 바이트짜리구나. 라고 알 수 있다고 하셨잖아요. 그럼 빅엔디안에서는 시작하는 바이트의 값을 보고 확인 할 수 있는데, 리틀엔디안에서는 어디가 시작하는 바이트인지 명확하지 않게 되는거 같아요. 내가 사용하는 시스템(윈도우, 리눅스)?에 따라 내부적을 알아서 작동하는건가요? 10으로 시작하지 않는 바이트를 찾아서 이게 '시작바이트구나' 하고 여기서부터 거꾸로 읽어들이는 식인가요?

  • java
  • utf-8
  • endian
김호균 댓글 2 좋아요 0 조회수 148

영상이 소리만 나오고 영상은 안보입니다.

해결됨

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

소리만 나오고 영상이 안나오는데, 이건 인프런 문제인가요?

  • python
  • 알고리즘
박연담 Park 댓글 2 좋아요 0 조회수 131

수업 이론 자료

미해결

파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)

이론 자료 파일은 받을 수 없나요?

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • sklearn
sungmini1231 댓글 1 좋아요 0 조회수 101

인기 태그

인프런 TOP Writers

주간 인기글