안녕하세요! 이번 강의 수강 중 서비스 인터페이스에 대해 궁금하여 글을 남기게 되었습니다. 흔히 스프링 프로젝트에서 보통 Service 인터페이스와 ServiceImpl 구현체로 나누어 개발하며 제가 참여하게 된 프로젝트 또한 이러한 구조였습니다. 이미 이전 개발자 분께서 Service 인터페이스와 ServiceImpl 구현체로 나눠놓은 상태였고, 제가 A 기능의 AServiceImpl 안에 특정 서비스 로직이 비대해짐에 따라 해당 코드가 명확하지 않다고 생각되어 메서드로 분리하게 되었습니다. A 엔티티의 상태, 계산 등의 로직으로 private 메서드를 두었습니다. 여기서 동료와 의견이 갈렸습니다: 동료 입장: 1. ServiceImpl 안의 모든 메서드는 반드시 인터페이스에 있어야 한다. 2. 인터페이스는 외부·내부 구분이 아니라, 구현체가 제공하는 기능을 보장하는 것이므로 전부 담아야 한다. 3. 내부 메서드를 둘 거라면 굳이 인터페이스로 추상화할 필요가 없고 그냥 클래스로 쓰면 된다. 제 입장: 1. 인터페이스에는 “외부 계약(=공개 API)”만 있어야 한다. 2. 구현체 내부에서만 쓰이는 로직은 private으로 감추는 게 맞고, 외부에서 호출할 필요가 전혀 없다. 3. 인터페이스를 구현체 내부 헬퍼까지 다 포함하면, 오히려 계약이 불필요하게 비대해지고 역할이 모호해진다. 핵심 쟁점 저는 public 메서드는 모두 인터페이스에 있어야 한다는 데에는 동의합니다. 또한, 단순 public, private 만 있다면, 인터페이스의 역할이 모호하다는 것또한 이해하지만, 이전 코드와의 일관성과 운영 중인 시스템에 대한 변경이 필요할정도의 중대사항이라고 생각하지 않습니다. 궁금한 점은 private/내부 헬퍼 메서드까지 인터페이스에 강제로 올리는 게 맞는지, 인터페이스를 사용하는 의의가 궁금합니다. 긴글 읽어주셔서 감사합니다.
SelectCard()를 시작부터 작동하도록 넣었을 때, 오류가 발생하였습니다. NullReferenceException: Object reference not set to an instance of an object CardSelector.Initialize () (at Assets/Packages/06.Script/UI/CardSelector.cs:17) Base_Canvas.SelectCard () (at Assets/Packages/06.Script/UI/Base_Canvas.cs:61) Base_Canvas.Start () (at Assets/Packages/06.Script/UI/Base_Canvas.cs:45) 계속 찾아보고 있는데 일단 Null문제를 해결하지 못해 Update문에서 Q를 눌렀을 때 함수가 나타나는 걸로 임시로 수정을 했었는데 이부분을 어떻게 수정해야 하는지 궁금합니다.
강의 2분 즈음에 4개의 input을 가지는 NAND gate를 설계하는 코드를 두 가지 제시해주셨습니다. 아래쪽에 있는 assign 활용 코드는 잘 이해했는데, 위쪽의 always 구문을 활용하는 부분을 이해하지 못했습니다. always @ ( ) 구문은 괄호 안의 값이 변해야 동작하는 것으로 이해했는데, 4bit 데이터의 input인 a 의 값이 어떻게 달라지는 건가요? testbench 코드에서 이 부분을 활용할 수 있는 걸까요? assign이 아닌 always 구문을 활용하는 이유가 궁금합니다.
안녕하세요, 유니티 , 씨샵 공부를 선생님?에게 첫 스타트를 끊은 40살 입니다. 해당 강좌에서 씬뷰에서 흰색사각형 저는 정사각형 입니다. 선생님꺼는 직사각형인데 어디서 변환해야 해야 하나요.ㅜ 직장과, 투잡에 공부를 하려니 쉽지 않네요. 선생님강의는 짤막해서 운전중 보고, 자기전 보고 잠깐 짬내서 하고 하기 너무 좋습니다.
키샷 클라우드 라이브러리 자료가 정리가되면서 기존에 제공되던 많은 자료들이 사라졌습니다. 강의에서는 자료가 많았을 때를 기준으로 클라우드에서 필요한 데이터를 다운로드하라고 안내하고 있는데(섹션 5. IPod 랜더링 : 헤어라인 만드는법1), 텍스처와 재질 자료가 필요할 경우 구글링으로 자료를 찾아 다운로드해서 사용해야 하는 건가요?
VP의 전원을 물리적으로 접지를 시켜서 안정적인 동작을 해주신다고 다른분 질문사항을 통해 확인을했습니다. 근데, 그러면 4X1 스피커 커넥터의 경우에는 이런식으로 스피커 출력을 이런식으로 할수있다라는 것을 보여주는 것이며, 실직적인 실물에서는 커넥터에 스피커를 연결한다고 한들 기능을 하지 않는 것인가요?
// 2. 콜백함수의 활용 function repeat(count, callback){ for(idx=0; idx<count; idx++){ callback(idx); } } repeat(4, function callback(){ console.log(idx * 2)}); repeat(4,(idx)=>{ console.log(idx * 4); }) repeat(5,()=>{ console.log(idx * 5); }) repeat()으로 호출할 때 콜백함수까지 같이 불러오는 부분에 대해 궁금증이 생겼습니다. repeat(인수, 콜백함수)=> 이 부분에서 콜백함수에 매개변수로 idx를 안 넣어도 콘솔창에 결과가 잘 나옵니다. 그런데도 콜백함수 인수를 작성할 때 idx를 꼭 적어줘야 하나요? repeat(4, (idx) // idx를 넣고 메인 함수 콜백 호출 부분인 callback(idx); 에서 idx를 뺏더니 출력결과가 Nan이 나옵니다. repeat(4, () => 이렇게 idx가 없는 호출문? 에서는 정상적으로 값이 잘 나오는데 저 부분은 왜 안나오는지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 좋은 강의 개설해 주셔서 감사합니다! 마지막 class에서 () 내부에 Int = 20이라고 설정하시고 main 함수에서 출력할 때 그냥 이름만 넣어줘도 자동으로 20이 나왔는데 이 원리가 어떤 건지 궁금합니다 : Int를 넣어주면 Int를 출력값으로 받겠다는 의미 아닌가요?
안녕하세요! 다름이 아니라 자소서에 해당 프로젝트 내용을 작성할 때, "노이즈가 문제가 발생해서,~~ 방법을 거쳐 해결했다"라는 예시가 있었는데, kicad로 schematic을 할 때 또는 artwork 할 때는 노이즈가 실제로 발생하는 걸 예상할 수 있지만, 발생했다는 걸 알 수는 없지 않나...? 라는 생각이 들었습니다. 그렇다면 자소서에는 저렇게 적어도 나중에 면접을 가게 되면 어떻게 대비해야 하는지 모르겠어서 질문드려봐요..!!
안녕하세요! '오브젝트' 책으로 공부했었는데, 강의가 있다는 걸 최근에 알게 되어 강의까지 잘 보고 있습니다! 몇 가지 궁금한 게 있어서 문의드립니다! 5-1에서 소개해주신 Schedule과 ScheduleJson를 보았는데요 제가 이전에 ScheduleJson과 비슷한 형식으로, schedule과 objectMapper를 인스턴스 변수로 가지고 json 결과를 응답하는 클래스를 만들었습니다 하지만, 코드 리뷰에서 시니어 분이 objectMapper만 가지고, schedule은 파라미터로 받는 싱글톤(bean 또는 kotlin의 object)으로 만들면 되지 않느냐고 하시더라구요 굳이 매번 인스턴스를 생성할 필요가 있냐고 하면서, 바꾸라는 식의 어조로 남기셨습니다 결국에는 싱글톤 형태의 bean으로 바꾸게 되었습니다 함수형으로 만드시길 바라시는 것 같기도 한데, 매번 인스턴스를 생성해야 한다는 것이 메모리 관련하여 크게 부담이 되는 행동인 것일까요? 싱글톤(bean)으로 만드는 것이 더 나은 방향일까요? 코드 리뷰 때로 다시 돌아간다면, ScheduleJson처럼 작성하는 방향으로 어떻게 설득시킬 수 있을까요? 그리고 다른 얘기일 수도 있긴 한데, 단순한 내용을 처리하는 클래스를 만들 때 인스턴스 변수로 넣어야 할지, 파라미터로 넣어야 할지 고민이 되더라구요 예를 들어, '요일별 메뉴가 제공된다' 라는 비즈니스 로직을 작성한다면, 다음은 요일에 해당하는 dayOfWeek를 파라미터로 작성하는 방법입니다 public class WeeklyMenu { public String getMenu(DayOfWeek dayOfWeek) { return switch (dayOfWeek) { case MONDAY -> "짜장면"; case TUESDAY -> "짬뽕"; case WEDNESDAY -> "제육덮밥"; case THURSDAY -> "볶음밥"; case FRIDAY -> "간짜장"; case SATURDAY -> "미니탕수육"; case SUNDAY -> "잡채밥"; }; } } 다음은 dayOfWeek를 인스턴스 변수로 작성하는 방법입니다 public class WeeklyMenu { private final DayOfWeek dayOfWeek; public WeeklyMenu(DayOfWeek dayOfWeek) { this.dayOfWeek = dayOfWeek; } public String getMenu() { return switch (this.dayOfWeek) { case MONDAY -> "짜장면"; case TUESDAY -> "짬뽕"; case WEDNESDAY -> "제육덮밥"; case THURSDAY -> "볶음밥"; case FRIDAY -> "간짜장"; case SATURDAY -> "미니탕수육"; case SUNDAY -> "잡채밥"; }; } } 선호의 차이일지, 어떠한 원칙이 있을지도 궁금합니다!
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! article-read service에서 ArticleIdListRepository는 createdEvent를 받았을 때만 추가되는데 만약 redis가 종료돼 데이터가 유실된다면 createdEvent로만 추가되기 때문에 당장 캐시 db로서 역할을 못 할 것 같습니다 이 부분은 redis에 데이터가 유실되지 않는다고 가정하신 뒤 코드를 작성한 것이 맞을까요??
프로젝트가 계속 컴파일 실패로 뜹니다. 2025-09-04T13:19:18.380Z Failed to compile. 2025-09-04T13:19:18.381Z 2025-09-04T13:19:18.381Z src/app/book/[id]/page.tsx 2025-09-04T13:19:18.381Z Type error: Type '{ params: { id: string; } | Promise<{ id: string; }>; }' does not satisfy the constraint 'PageProps'. 2025-09-04T13:19:18.381Z Types of property 'params' are incompatible. 2025-09-04T13:19:18.382Z Type '{ id: string; } | Promise<{ id: string; }>' is not assignable to type 'Promise<any> | undefined'. 2025-09-04T13:19:18.382Z Type '{ id: string; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag] 2025-09-04T13:19:18.382Z 2025-09-04T13:19:18.396Z Next.js build worker exited with code: 1 and signal: null 2025-09-04T13:19:18.416Z Error: Command "npm run build" exited with 1 왜 그럴까요?
안녕하세요. 컴퓨터 구조는 늘 따분하다고 생각했는데 감자님 덕분에 즐겁게 수강하고 있습니다. 영상에서 안내해주신대로 logisim-evolution을 설치했는데 실행이 되지 않아 질문 드려요! 운영체제 : macOS 설치된 파일: logisim-evolution-3.9.0-all.jar 그냥 더블클릭하면 아래와 같은 알럿창이 뜨면서 열리지 않습니다. 마우스 우클릭으로 JavaLauncher를 선택해서 열어도 같은 알럿창이 뜹니다. 어떤 프로그램으로 열어야 하는 파일인가요? ㅠㅠ 도움 부탁드려요
안녕하세요, 현재 급하게 AI 대학원을 준비해보려고 하는 직장인입니다. 아마 내년 전기 입학은 힘들겠지만, 일단 경험삼아 넣어보려는 생각에 급히 찾아보고 있습니다. 스펙은 간략하게 다음과 같습니다. 대학 : 인서울 컴공 4년제 졸업 학점 : 3.9 / 4.5 (관련 과목 : 선형대수 A (재수강), 이산수학 A+, 확통 A+, 자료구조 A, 알고리즘 A (재수강), 파이썬 과목 A, C++ 과목 A, JAVA 과목 A, 컴퓨터 그래픽스 A+, 다만 컴퓨터구조나 운영체제는 B0로 매우 낮습니다 ㅎㅎ;;) 동아리 : 연합 동아리 및 교내 동아리 운영진, 리더 활동 프로젝트 : 네이티브 앱 개발, 웹 풀스택, 간단한 데이터 분류정도 논문 : 캡스톤 졸업 논문 (교내 최우수상) (*AI 주제이긴 하나, 저는 그 당시 ai 외 웹 개발을 맡았습니다) 경력 : 솔루션 엔지니어 2년차 (리눅스, DB, Python 종종 사용) 특정될 수도 있어서 여기선 자세히 말씀은 못드리지만 대충 솔루션 제품 트러블 슈팅 및 기술지원 등등을 하고있습니다. 스터디 활동 : 동아리 내 스터디 활동 2회, 교내에서 하는 스터디 2회 (모두 우수 팀으로 수상) 어학 : 토익 750점 자격증 : 정처기 사실 고민되는 것은 학부시절엔 개발자가 되기위해 개발 관련 플젝만 남아있고 학부 연구생 경험도 없을뿐더러 졸업 논문 외에 논문이 따로 있지는 않습니다... 파이썬은 워낙 자주 써서 익숙하긴하지만, AI 기술스택은 거의 문외한이긴 합니다. 일단 준비하면서 벼락치기라도 AI 기초에 대해 다져보려곤하긴하지만.. 아마 컨택은 9월 안에는 완료해야할테니 진짜 걸음마 수준일 것같네요 다른 대학원 입시 준비하시는 분들에 비해 스펙이 많이 부족해보이는 것같아 고민입니다 대학원은 KY ~ SSH 범위내에 보려고 합니다. (SKP는 저한테 스펙 자체가 딸릴것같아서요..) 정말 염치없는 스펙이지만 괜찮을까싶어 염려되어 고민글을 작성합니다 ㅠㅠ 감사합니다