묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실습으로 배우는 선착순 이벤트 시스템
안되서 스트레스 받아요
다 따라 했는데 안되니깐 스트레스 받네요
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
샤드 할당 관련 질문 드립니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. AssignedShard 클래스의 목적이 샤드를 균등하게 분배하는 것이라고 보이는데요 저는 처음에 스레드가 처리할 일을 분할해주는 거라고 생각했는데 찾아보니까 앱 인스턴스를 기준으로 샤드를 나누는 것이라고 하더라고요. 근데 앱 인스턴스는 말하자면 각각의 서버? 예를 들어서 포트 9000번을 A,B,C 서버에서 실행하면 그 각각을 앱 인스턴스라고 부른다고 봤습니다. 그리고 이렇게 각각 다른 서버에서 하나의 포트를 실행하려면 운영 환경에서 서버의 부담이 커질때 서버를 늘려주는 로드밸런싱?같은 기법을 쓸때 필요한 샤드 분배 기능같은데 나중에 운영환경에서 이런때를 대비해서 미리 구현하신건가요? 아니면 이런 지금 강의 환경 안에서도 이렇게 앱 인스턴스가 늘어나는? 상황이 있는건가요.. 아직 공부중이고 모르는 부분도 좀 있다보니 설명이 두서없었습니다 ㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
casacade 사용 주의점 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]casacade 사용시 주의할 점으로 특정 엔티티가 개인소유하는 자식일 경우에만 쓰는게 좋다 라고 말씀하셨는데, 여기서 특정 엔티티라는것이 엔티티의 구분을 말씀하시는건지 아니면 하나의 레코드를 말씀하시는건지 헷갈립니다.아마 특정 레코드를 말씀하신것 같은데,멤버와 페런트 엔티티가 child라는 같은 엔티티를 참조 한다고하지만, 결국에는 멤버와 페런트가 각각 개인의 child 레코드만을 참조한다면 문제가 없을것 같은데 맞을까요? 같은 레코드를 참조하는게 아니니까요!
-
미해결김영한의 실전 자바 - 중급 2편
직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 보기 전에 미리 만들어 본 코드입니다. 3번째 줄에서 afterNode를 안 만들고 주석처리한 코드를 afterNode 자리에 넣으니오류가 발생하네요그리고수업중 코드에서도 2번째줄 코드 위치만 바껴도 위와 똑같은 오류가 발생하네요 왜그런걸까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
sout에는 변수가 하나만 들어가야 하나요?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.변수 선언과 초기화 챕터를 보는 중에 궁금증이 생겨 질문합니다.System.out.println() 이 괄호 안에는 무조건 변수가 하나만 들어가야 하나요? 두개 이상은 들어가지 못하나요? 예를 들면int c = 3, d = 4;System.out.println(c,d) 이렇게 하면 안되는건지요만약 못한다면 왜 안되는것인가요?궁금합니다!
-
미해결얄코의 떠먹여주는 객체지향 디자인 패턴
강의 전부 수강했는데 퀴즈 활성화가 안되는 것 같습니다.
올라온 강의들을 전부 수강한 상태에서, 퀴즈를 풀려고 하는데 수강하지 않은 수업이 있다는 화면이 나오네요. 이유를 알려주시면 감사하겠습니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
utf-8, char
utf-8로 지정해서 IO 작업을 하더라도,utf-16인 (char)로 형 변환이 가능한 이유가 궁금합니다. char는 ascii와 호환이 안되지않나요..?StringBuilder content = new StringBuilder(); FileReader fr = new FileReader(FILE_NAME, UTF_8); int ch; while ((ch = fr.read()) != -1) { content.append((char) ch); } fr.close();
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오타 제보입니다.
11. 동시성 컬렉션 PDF 13 페이지당연한 이야기지만 다음과 같이 나누어 작성해도 된다.SimpleList basicList = new BasicList(); SimpleList proxyList = new SyncProxyList(basicList); test(list)강의 5:40 즈음 나오는 내용입니다. test() 에 proxyList 가 인자로 전달되어야하는데 pdf에는 test(list) 로 작성되어있네요. 감사합니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
좋아요 기능 중복처리
안녕하세요 강사님, 좋아요 기능을 만드는 api를 반복하여 보고 있는데 궁금한 점이 생겨서 질문 드립니다.좋아요 기능을 만들고 테스트중인데 좋아요가 중복처리 예를 들어,10번 게시글에 15번의 사용자가 좋아요가 두 개를 눌러도 두 번 다 좋아요가 눌리는 상황인데 이에 대한 중복처리는 따로 해줘야 하는 것인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Result 클래스 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님 강의 듣다가 Result 클래스를 써야한다고 언급해주셨는데요, 해당 클래스 관련 질문 답변을 봤는데 https://www.inflearn.com/community/questions/442871/result-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4?focusComment=168228@GetMapping("/{boardId}")public ResponseEntity<BoardResponse> getBoard(@PathVariable("boardId") Long boardId) {return ResponseEntity.ok(boardService.getBoard(boardId));}이런식으로 ResponseEntity 감싸서 DTO를 반환하는것과 Result 클래스가 같은 맥락으로 응답을 추상화한다고 생각하면 될까요? 감사합니다 :)
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
RequestBody를 읽어올 때
RequestBody를 읽어올 때,Content-Length의 값을 파싱하고 그 크기만큼 read()에 배열 형태로 전달해서 버퍼형태로 한번에 받아오게끔 작성하셨습니다. 여기서 궁금한 점은,Content-Length는 byte 단위로 측정이 될텐데,char[]를 그대로 사용하면 UTF-8로 디코딩이 자동으로 되는 이유가 궁금합니다..! byte[] 단위로 읽어온 다음,Charset을 지정해서 디코딩해야하는거 아닌가욤? 감사합니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
멀티스레드일 때 테스트 결과 공유
영한님이 단일 스레드일 때 테스트 하셨는데요.멀티 스레드일 때 테스트 결과도 궁금하신 분들이 있을 것 같아 공유 드립니다 :)빠른 테스트를 위해서 sleep 은 사용하지 않았습니다. public class IncrementPerformanceMain { public static final int COUNT = 1_000_000; public static void main(String[] args) throws InterruptedException { test(new BasicInteger()); test(new VolatileInteger()); test(new SyncInteger()); test(new MyAtomicInteger()); } private static void test(IncrementInteger incrementInteger) throws InterruptedException { long startMs = System.currentTimeMillis(); Runnable runnable = new Runnable() { @Override public void run() { for (int i = 0; i < COUNT; i++) { incrementInteger.increment(); } } }; ArrayList<Thread> threads = new ArrayList<>(); for (int i = 0; i < 100; i++) { Thread thread = new Thread(runnable); threads.add(thread); thread.start(); } for (Thread thread : threads) { thread.join(); // 모든 스레드가 종료 될 때 까지 기다림 } long endMs = System.currentTimeMillis(); System.out.println( incrementInteger.getClass().getSimpleName() + ": ms=" + (endMs - startMs) + ", result=" + incrementInteger.get()); } } 결과 BasicInteger: ms=32, result=88652038 VolatileInteger: ms=3653, result=17721836 SyncInteger: ms=4882, result=100000000 MyAtomicInteger: ms=6953, result=100000000 MyAtomicInteger 보다 SyncInteger 가 성능이 좋은 이유는 CAS 는 기본적으로 락보다는 빠르지만, 경쟁이 심하면 CAS 실패로 재시도를 반복하기 때문에 성능이 락보다 안나오고 있는 것으로 보이네요.추가로 BasicInteger 에 비해서 VolatileInteger 의 손실율이 큰 이유는 모두가 동시에 메인 메모리에 접근하게 되면서 발생한 문제로 보이네요. 비유적으로 설명하면BasicInteger: 각자 수첩(캐시)에 메모하고 나중에 합침→ 충돌 적고, 결과는 꽤 괜찮음 (운이 좋으면)VolatileInteger: 100명이 하나의 화이트보드(메인 메모리)에 동시에 적으려는 상황→ 끊임없는 덮어쓰기, 충돌 많음 → 결과는 엉망 감사합니다. ^0^
-
미해결실전! Querydsl
등록된 함수 보는법(H2Dialect) 질문
안녕하세요. 실습을 하다가 등록된 함수를 보려고 H2Dialect 클래스에 들어가서 보니까 replace와 다른 등록된 함수들이 보이지 않는 것 같습니다. 어떻게 찾아서 봐야 할까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
MockMvcTester 에도 MockMvc의 doPrint()같은 메소드가 있나요
찾아보다가 잘 못찾겠어서 문의 드립니다 ㅜㅜ
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@Override public boolean equals(Object object) { if (this == object) return true; // 강의에서 생성자를 통해 생성된 코드 if (object == null || getClass() != object.getClass()) return false; Member member = (Member) object; return Objects.equals(id, member.id); }@Override public boolean equals(Object object) { // 질문자의 생성자를 통해 생성된 코드 if (object == null || getClass() != object.getClass()) return false; Member member = (Member) object; return Objects.equals(id, member.id); }위와 같이 코드가 다르게 생성 되는데 차이가 있는지 , 혹은 설정이 잘못된건지 궁금합니다.OS 는 윈도우 ,sdk 는 ms-21 사용중입니다.
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
그럼에도 결코 수긍하지 않는 사람들이 있으니 말이죠
토비님의 의견에 동의합니다.화면에서 필드 하나 필요하다는 수정사항을 처리하기 위해 Presentation 레이어 이외의 클래스들을 수정하고 싶진 않아요. 그럼에도 불구하고 현업에선 정말 수많은 이유를 들어서 DTO로 반환하는 걸 유지하려고 합니다. 별도의 관심사를 끌어안게 되면서 애플리케이션 레이어의 테스트 코드 작성이 까다로워지고, 그로 인해 안정성이 하나씩 무너지고 균열이 생기기 시작하는 지점이 이곳이지 않을까 싶어요. 어찌보면 강의를 들을까 고민하던 때에 가장 매력있게 보였던 챕터였고, 무언가 해답을 얻을 수 있을까 했지만 여전히 뭔가 용기가 생기진 않는 것 같습니다.물론 그것이 토비님 탓은 아니죠. 훌륭한 가르침이지만, 단지 이것을 제 현장에 전파할 때 발생할 어려움에 벌써 머리가 아파지는 것.. 그 뿐입니다. 질문은 아니고 그저 넋두리였습니다.나머지 강의 마저 잘 들어보겠습니다. 감사합니다
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@PostConstruct 프록시 관련 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요, 영한님!JPA 활용2 강의 감사한 마음으로 잘 보고 있습니다.@PostConstruct는 빈이 생성되고 의존성 주입이 모두 끝난 직후에 자동으로 실행되는 메서드로 프록시 생성 이전에 실행되기 때문에 @Transactional과 함께 사용할 수 없어, init() 메서드에서 두 애노테이션(@PostConstruct, @Transactional)을 함께 작성할 수 없는 걸까요?GPT 답변을 참고한 후 질문 드립니다!
-
미해결김영한의 실전 자바 - 중급 1편
스트링 풀, new String()
강의에서는 스트링풀이 힙에 있다고 했는데 스프링 풀은 메타영역으로 메소드 영역에 있고 리터럴에 생성되는 경우에 중복되지 않게 값이 있는지 찾아보고 참조값을 동일하게 가져가고 new String("hello") 이렇게 선언될때만 힙에 새롭게 저장되는거 아닌가요? 스트링풀이 힙에 있다고해서 헷갈리기 시작해서 질문드립니다. (Java 7 기준 설명이라서 그런걸까요?) 감사합니다. 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
25년 실기 풀이 강의 업로드 예정일
안녕하세요, 선생님.매번 유튜브에 빠르게 강의 복원 및 풀이해주셔서, 너무나 감사드립니다!유튜브 영상과 댓글에서 25년 실기 풀이 풀버전 업로드 일정을 찾지 못하여 부득이 문의드립니다...!감사합니다 :)
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
토비선생님, 사소한 질문이 하나 있습니다.
맹목적인 파라미터의 숫자가 아닌 보통 함축적 정보를 전달하기 위해 DTO, 즉 파라미터 오브젝트를 사용해서 전달하는 방식은 워낙 간결한 방식이라 저도 선호도가 높긴 합니다. 하지만 엔티티의 영역에서 DTO와 유사한 레코드 형식의 매개변수를 전달 받는 방식은 어느 정도 엔티티의 순수성이 침해 받는 방식이 아닌가 생각이 들어서요.실제로 작성하신 코드를 봤을 때 그런 순수성 집착 보다 휴먼 에러를 사전에 방지하는 접근 방식이라 매우 적절한 트레이드 오프라고 생각이 들기도 합니다. 이 부분에 대해서 개인적인 궁금증이 생겨서 질의 드립니다. 아직 강의를 다 본 상황이 아니라서 이런 질문을 하는 게 맞는지 작성하는 지금 이 순간 조차 고민이 되지만, 실제로 제가 생각하던 방식과의 거리감이 느껴져서 질문을 남겨봅니다.