묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코딩으로 학습하는 리팩토링
함수 추출하기 부분에서 의도와 구현에 대해 질문 있습니다.
의도와 구현이 잘 이해가 가지 않아 예전에 작성 했던 코드를 가져와 아래와 같이 이해를 해볼려고 했는데 맞게 이해를 한건지 궁금합니다. save라는 네이밍으로 저장한다는 의미를 뜻함 -> 의도 코드 내부에는 DTO를 받아와 엔티티 객체로 변환하고 DB에 저장 로직 -> 구현save 메서드@Override public ServerMessageDto save(ServerMessageCreateRequest createRequest) { ServerMessage serverMessage = ServerMessage.builder() .serverId(createRequest.getServerId()) .channelId(createRequest.getChannelId()) .userId(createRequest.getUserId()) .parentId(createRequest.getParentId()) .profileImage(createRequest.getProfileImage()) .content(createRequest.getContent()) .writer(createRequest.getWriter()) .chatType(ChatType.SERVER) .actionType(ActionType.SEND) .files(createRequest.getFiles()) .build(); serverMessage.generateSequence(sequenceGenerator.generateSequence(ServerMessage.SEQUENCE_NAME)); return ServerMessageDto.from(messageRepository.save(serverMessage)); }postSend 라는 네이밍으로 ~ 후의 전송이라는 의미 -> 의도 코드 내부에는 특정 조건에 따라 함수 호출 로직 -> 구현postSend 메서드@Override public void postSend(Message<?> message, MessageChannel channel, boolean sent) { StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(message); if (StompCommand.CONNECT.equals(headerAccessor.getCommand())) { Long userId = sendConnectionStateInfo(headerAccessor); sendConnectionStateEvent(userId); } if (StompCommand.DISCONNECT.equals(headerAccessor.getCommand())) { Long userId = saveDisconnectionState(headerAccessor); if (userId != null) { sendDisConnectionStateEvent(userId); } } }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JdbcMemberRepository implements와 findAll() @Override 오류
[질문 내용]JdbcMemberRepository클래스를 만들고 코드를 복붙했으며, 대부분 오류나는 부분은 모두 import해서 없어졌지만, 해결되지 않은 부분이 2군데 있었습니다. java: hello.hello_spring.repository.JdbcMemberRepository is not abstract and does not override abstract method findAlL() in hello.hello_spring.repository.MemberRepository java: method does not override or implement a method from a supertype 12줄에 public class JdbcMemberRepository implements MemberRepository {이 부분에서 빨간줄이 계속 표시되고,71줄에 findAll()메소드에서 바로 상단에 @Override에 빨간줄이 뜹니다. 어떤 방식을 적용하든 계속 오류가 해결되지 않은데 어떻게 해야 좋을지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 1편
복습 질문하고 싶어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]현재 수강을 계속하면서 공부하고 있는데요예를 들어 날짜와 시간 챕터를 다 보고 이제 복습을 하려고 하는데 PDF보면서 코드를 따라치면서 복습을 하고있는중입니다. 이렇게 복습하는게 효율적인가 궁금하고요.한번보고 복습주기를 어느정도로 해야하는지도 알고 싶습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
sql distinct 질문
sql distinct는 완전히 같은 것의 중복을 제거해준다고 배웠습니다.id를 사용한다는 가정에서 완전히 같을 경우가 존재할 수 있나요? jpql distinct 키워드는 sql distinct에 더불어 엔티티 중복을 피하게 해주는데 sql distinct는 필요없는 과정이 아닌가 싶었습니다.
-
미해결실전! Querydsl
Querydsl 버전 별 build.gradle 설정 파일에 대해 궁금한 점이 있습니다.
자주 하는 질문 + 강의 자료를 종합해봤을 때 Querydsl 설정이 크게 다음 3가지로 나뉘는 것 같더라고요. 2.x 버전 / dependencies 바깥에 설정plugins { id 'org.springframework.boot' version '2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } //querydsl 추가 시작 def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } 2.x 버전 / dependencies 안에 설정 dependencies { //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } clean { delete file('src/main/generated') } 3.x 버전 / dependencies 안에 설정 dependencies { //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } clean { delete file('src/main/generated') } 2.x 의 경우 선택지가 2가지가 되는 데 왜 강의에선 1번 케이스를 선택했던 건지 궁금합니다! 2번 선택지가 더 깔끔한 거 아닌가요 ?
-
해결됨코딩으로 학습하는 리팩토링
레코드에 대해 질문 있습니다.
DTO 대신 레코드 위주로 사용해도 될까요?만약 DTO에 있는 필드중에서 값 변경이 자주 발생한다면 레코드가 아닌 DTO를 유지해서 사용하는게 좋을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
나눗셈 연산자 관련 질문입니다.
1:57에서 '나눈 이후의 몫을 원할 때' 사용하는 연산자가 /라고 하셨습니다.c언어 기준으로 설명해 주신 걸로 이해했는데 (파이썬은 /을 쓸 시 나누어 떨어질 때까지 계산한 값, 혹은 무한소수를 끊어 출력하고 정수 몫을 원할 시 //을 써야 하니까요) 혹시 자바도 c언어와 연산자가 동일한가요? 코딩을 배우기는 하나 컴공만큼 깊게 들어가는 과는 아니라 자바를 배운 적이 없어 질문드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
속도 측면을 고려해본 답안인데 어떤지..
숫자를 일일이 포문을 통해 소수를 구하는게 비효율적인 것 같아 다음과 같이 풀어봤는데,, 어떤지 의견이 궁금합니다. import java.util.Scanner; public class Main { public static void main(String[] args){ Main main = new Main(); Scanner sc = new Scanner(System.in); int number = sc.nextInt(); int[] numbers = new int[number]; for(int i = 0; i < number; i++){ numbers[i] = sc.nextInt(); } main.solution(number, numbers); } public void solution(int number, int[] numbers){ // get reversed array int biggest = 0; // get biggest number for prime int[] reversedArr = new int[number]; for (int i = 0; i < number; i++) { int tmp = numbers[i]; int res = 0; while (tmp > 0) { int t = tmp % 10; res = res * 10 + t; tmp /= 10; } reversedArr[i] = res; if (res > biggest) biggest = res; } // prime logic by biggest number boolean[] prime = new boolean[biggest + 1]; // add 1 for including 0 --> it means index number is same as each value; prime[0] = prime[1] = true; // true = non-prime number for (int i = 2; i*i <= biggest; i++){ if(!prime[i]){ for (int j = i*i; j <= biggest; j += i){ prime[j] = true; } } } //get result for (int i = 0; i < number; i++){ int target = reversedArr[i]; if (!prime[target]) System.out.print(target + " "); } } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080 Whitelabel Error Page... 어떻게 해야 될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)아무리 찾아봐도 잘 안되네요 ㅜㅜ... 도대체 뭐가 문제일까요..ㅜㅜ[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 기본편
참조형 변수 관련해서 질문이 있습니다.
기본형 변수와 참조형 변수에 대해서 공부하던 중 참조형 변수에 대해서 궁금한 점이 있습니다.객체를 만들고 변수에 할당을 하면 변수에는 해당 객체가 저장된 주소값을 저장한다는 내용은 이해를 했습니다. 하지만 곱씹어 보면서 궁금했던 점이 주소값도 결국 숫자일텐데 기본형 변수와 주소값을 어떻게 구별하는지 궁금합니다.조금 더 풀어서 설명하면 변수에 저장된 숫자값을 기본형 변수인지 참조형 변수의 참조값인지 Java가 구별하는 메커니즘이 궁금합니다. 구글링을 해봤는데 기본형 변수와 참조형 변수의 차이점과 같은 표면적인 내용에 대해서만 나와서 질문드립니다. 강의 잘 듣고 있습니다. 감사합니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
for i in lst의 뜻이 무엇인가요?
우선 제가 이 문제를 풀었던 방식을 설명드려보겠습니다.i는 그냥 0부터 시작이다라고 생각해서 i=0일 때 0번 인덱스는 apple이니까 문자열이 맞으니까 result에 0-를 추가하고i=1일 때 1번 인덱스는 3인데 문자열이 아니라 숫자니까 1을 문자화 해서 result에 이어붙여서 0-1이 되고이걸 쭉 반복해서 이 문제의 정답으로 0-12-34로 풀었습니다. 그런데 해설을 들어보니33분41초에서 강사님께서는 i는 처음에 apple을 가지고온다라고 말씀하셨습니다. 아무래도 제가 접근을 잘못한 것 같습니다. for i in lst을 제가 for i in range(len(lst))으로 보고 잘못 풀었던 것일까요? for in in lst는 그냥 lst의 인덱스가 아니라 그 값을 하나씩 가지고 온다는 뜻인가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberController안에 static class MemberForm을 만들어도 상관없나요?
[질문 내용]회원 등록을 위해 데이터를 전달 받을 객체를 위한 컨트롤러로 MemberForm클래스를 따로 만들지 않고 MemberContorller안에서 static class MemberForm클래스로 만들어도 상관없나요? @PostMapping("/members/new") public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); System.out.println("member = " + member.getName()); memberService.join(member); return "redirect:/"; } static class MemberForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
16분29초 마지막 프린트문에 "변환된 문자열 : %\n", result 인데 개행을 해야 하는거 아닌가요?
시저암호 문제인제마지막에 개행하라는 것이 보여서 그럼 답이Nd sc 1 아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberController가 아닌 MemberForm을 만든 이유
[질문 내용]회원을 등록하기 위해 데이터를 전달 받을 컨트롤러를 만드는데 왜 MemberController에서 객체를 정의하지 않고 따로 MemberForm이라는 컨트롤러 안에서 객체를 만드는 건지 궁금합니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
업캐스팅
7분29초a.g() 는 부모를 상속하지않고 바로 gc를 출력하는건가요?
-
미해결김영한의 실전 자바 - 중급 1편
Object 자동 import 및 메서드 오버라이딩 관련 질문 있습니다.
[질문 내용]안녕하세요, Object Class에 대해 궁금한 점이 있어 질문드립니다.모든 클래스는 최상위 부모인 Object Class가 제공하는 공통 기능(메서드)을 사용할 수 있는 것으로 알고 있습니다. 그러면 '객체.(Object Class의 메서드)' 형태[예시: child.toString()]로 충분히 상속받은 기능을 사용할 수 있는데 왜 Object Class가 java.lang 패키지에 포함되어 자동으로 import 되는지 궁금합니다.(자동으로 import되는 System, String가 바로 사용이 가능한 것과 다르게, Object는 객체 생성을 하고 상속을 이용해서만 기능 사용이 가능한 것 같은데 왜 굳이 자동으로 import되는 목록에 껴있는지 궁금합니다 ㅠ 혹시 Object형 변수 선언을 위해 그런걸까요?)마지막으로 Object 클래스의 메서드가 오버라이딩이 가능하던데 그대로 사용하지 않고 오버라이딩할 일이 따로 있나요? 지금까지 공부하며 느낀 자바는 굉장히 효율적이고 적절한 제약이 있는 언어라고 생각이 들어서 이유없이 오버라이딩 가능하게 남겨두지는 않았을 거라는 생각이 들어 여쭤봅니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
질문있습니다~~
질답을 잘 해주셔서 항상 감사하게 생각하고 있습니다 ㅎㅎㅎ최고!! 혹시 SQL기출문제 29:43초에 나온 정답 말고단가 > SUM(SELECT 단가 FROM 제품 WHERE 제조사='H')혹시 이렇게 해도 답이 되는걸까요..?? ㅜ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findOne() 메소드 자료형
[질문 내용]MemberService 클래스에서 findOne 메소드를 정의할때 왜 자료형이 Optional<Member>여야 하는지 궁금합니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
기출 24년 2회차 (파이썬 Split() 문제 )
강사님 안녕하세요 파이썬 Split 문제 풀던중 궁금한점이 있어 문의 드립니다.아래 코드 수행시 최종 출력값은 아래와 같이 출력 되어야 하는거 아닌가요?실제로 잘린 값: ['I' , 'IS', 'ES' , 'S' , 'RING']S코드 (아래 부터)dedef split_k(input_str, k): split_result = input_str.split('T') print(" 실제로 잘린 값: ", end="")print(split_result)return split_result[k](중략)
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
강의에서 구조적, 행위 다이어그램 구분이 잘 된건가요?
화면설계/애플리케이션 테스트 강의의 4:15 입니다.PPT 상단에 [구조 - 커뮤니케이션, 활동 다이어그램] 제목으로 커뮤니케이션, 상태 다이어그램을 설명하고 있습니다.하지만 3:00 내용에 따르면 커뮤니케이션, 상태 다이어그램은 행위 다이어그램이지 않나요?