묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring framework 개발 환경 구축하기와 Dao 리팩토링하기
[해결 방법] Autowired가 적용이 안되는 문제 + context에서 NullPointerException
build.gradle 추가testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.3' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.3'
-
미해결Spring framework 개발 환경 구축하기와 Dao 리팩토링하기
[해결 방법] findOne 에러 / Inferred type 'S' for type parameter 'S' is not within its bound; should extend 'com. spring. www. domain. User'
@RunWith(SpringRunner.class) @SpringBootTest public class UserRepositoryTest { @Autowired UserRepository userRepository; @Test public void save() { //User user = new User("kms", "kms1234", "hongildong"); //userRepository.save(user); User user = new User(); user.setId("kms"); Example<User> userExample = Example.of(user); User selectedUser = userRepository.findOne(userExample).orElse(null); assertEquals("kms", selectedUser.getId()); } }
-
미해결Spring framework 개발 환경 구축하기와 Dao 리팩토링하기
[해결 방법] Java8 버전 사용하고 싶으신 분들은 아래와 같이 설정하시면 됩니다.
build.gradleplugins { id 'java' id 'org.springframework.boot' version '2.3.12.RELEASE' id 'io.spring.dependency-management' version '1.0.10.RELEASE' } group = 'com.spring.www' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'mysql:mysql-connector-java:8.0.32' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() }gradle-wrapper.propertiesdistributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
-
해결됨코딩으로 학습하는 리팩토링
함수 추출하기 부분에서 의도와 구현에 대해 질문 있습니다.
의도와 구현이 잘 이해가 가지 않아 예전에 작성 했던 코드를 가져와 아래와 같이 이해를 해볼려고 했는데 맞게 이해를 한건지 궁금합니다. 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); } } }
-
해결됨코딩으로 학습하는 리팩토링
레코드에 대해 질문 있습니다.
DTO 대신 레코드 위주로 사용해도 될까요?만약 DTO에 있는 필드중에서 값 변경이 자주 발생한다면 레코드가 아닌 DTO를 유지해서 사용하는게 좋을까요?
-
미해결[개정판] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정
maven 빌드
너무나도 좋은 강의 감사드립니다.현재 Servlet, JSP 실습 강의를 듣고 있는 와중에 dependency를 추가하였음에도 좌측에 Maven:javax.servlet:javax.servlet-api:4.0.1 이 의존성 주입이 되지 않아서 질문드립니다. Maven 버튼을 클릭하여 빌드를 다시 시행하였음에도 문제가 지속되어 해당 내용을 지웠다가 다시 반복하여도 똑같은 상황입니다. 뭐가 문제인건가요 ㅠㅠ?
-
미해결코딩으로 학습하는 리팩토링
.github 토큰 등록하는 방법에 대한 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.현재 강의를 들으려고 준비 단계인데 /Users/glen/Library/Java/JavaVirtualMachines/corretto-21.0.4/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:50271,suspend=y,server=n --enable-preview -javaagent:/Users/glen/Library/Caches/JetBrains/IntelliJIdea2024.2/captureAgent/debugger-agent.jar -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /Users/glen/Desktop/Study_File/refactoring/target/classes:/Users/glen/.m2/repository/org/springframework/boot/spring-boot-starter/2.6.1/spring-boot-starter-2.6.1.jar:/Users/glen/.m2/repository/org/springframework/boot/spring-boot/2.6.1/spring-boot-2.6.1.jar:/Users/glen/.m2/repository/org/springframework/spring-context/5.3.13/spring-context-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-aop/5.3.13/spring-aop-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-beans/5.3.13/spring-beans-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-expression/5.3.13/spring-expression-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.6.1/spring-boot-autoconfigure-2.6.1.jar:/Users/glen/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.6.1/spring-boot-starter-logging-2.6.1.jar:/Users/glen/.m2/repository/ch/qos/logback/logback-classic/1.2.7/logback-classic-1.2.7.jar:/Users/glen/.m2/repository/ch/qos/logback/logback-core/1.2.7/logback-core-1.2.7.jar:/Users/glen/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1.jar:/Users/glen/.m2/repository/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar:/Users/glen/.m2/repository/org/slf4j/jul-to-slf4j/1.7.32/jul-to-slf4j-1.7.32.jar:/Users/glen/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/Users/glen/.m2/repository/org/springframework/spring-core/5.3.13/spring-core-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-jcl/5.3.13/spring-jcl-5.3.13.jar:/Users/glen/.m2/repository/org/yaml/snakeyaml/1.29/snakeyaml-1.29.jar:/Users/glen/.m2/repository/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.jar:/Users/glen/.m2/repository/org/kohsuke/github-api/1.116/github-api-1.116.jar:/Users/glen/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:/Users/glen/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.13.0/jackson-databind-2.13.0.jar:/Users/glen/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.13.0/jackson-annotations-2.13.0.jar:/Users/glen/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.13.0/jackson-core-2.13.0.jar:/Users/glen/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar me.whiteship.refactoring._01_smell_mysterious_name._01_before.StudyDashboardConnected to the target VM, address: '127.0.0.1:50271', transport: 'socket'Exception in thread "main" java.io.IOException: Failed to resolve credentials from ~/.github or the environment. at org.kohsuke.github.GitHubBuilder.fromCredentials(GitHubBuilder.java:76) at org.kohsuke.github.GitHub.connect(GitHub.java:137) at me.whiteship.refactoring._01_smell_mysterious_name._01_before.StudyDashboard.main(StudyDashboard.java:36)Caused by: java.io.FileNotFoundException: /Users/glen/.github (Is a directory) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:213) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:152) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:106) at org.kohsuke.github.GitHubBuilder.fromPropertyFile(GitHubBuilder.java:200) at org.kohsuke.github.GitHubBuilder.fromPropertyFile(GitHubBuilder.java:184) at org.kohsuke.github.GitHubBuilder.fromCredentials(GitHubBuilder.java:68) ... 2 moreDisconnected from the target VM, address: '127.0.0.1:50271', transport: 'socket'라는 오류가 계속해서 발생하고 있습니다.자바 17버전을 사용할 경우 <compilerArgs>--enable-preview</compilerArgs> 를 사용할 수 없다고도 발생해서 21버전으로 진행중입니다 이것도 맞는지 알려주시면 감사하겠습니다.
-
미해결코딩으로 학습하는 리팩토링
깃허브
혹시 운영하시는 깃허브에 강의 자료가 제공되나요?
-
미해결[개정판] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정
pom.xml 에 dependency 추가할때 정보는 어디에서 가져와서 작성하나요?
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency>groupId, artifactId, version 정보는 어디에서 가져와서 작성하나요 ?
-
해결됨[개정판] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정
강의 중 사용하신 문서를 공유해주실 수 있나요?
설치 다운로드 링크들이 문서에만 있어서 받는데 어려움이 있습니다. 문서 공유 부탁드립니다.
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요, 선생님. 선생님께 메시지를 드리기 위해 일단 무료강의를 수강하였습니다. 양해부탁드릴께요.다름이 아니라 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의를 듣고 싶은데 최신순으로 나열하니 현재 버전과 맞지 않는 부분들이 많아서 강의를 수월하게 따라가기 힘들다는 평들이 많이 보였습니다. 현재 현행화중이라고 하셨는데 언제쯤 현행화가 완료될 예정인지 궁금합니다. 현행화되면 기존 수강신청자도 혜택을 받을 수 있는건지 궁금합니다. 그럼 답변 좀 부탁드리겠습니다.
-
미해결코딩으로 학습하는 리팩토링
홈 디렉토리 .github 파일 생성
소스 코드 영상 설명 중에서깃허브에서 토큰 만드는 부분 까지는 따라 헀는데홈 디렉토리에 .github 파일을 생성하는 부분에서 막혔습니다 혼자 해결해 보려고 열심히 찾아봤는데 방법을 못찾겠네요저는 윈도우 사용자 입니다.github 파일 만드는 방법을 알려주시면 감사하겠습니다
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
빠른 시간안에 주요 핵심을 콕콕 집어주셔서 감사해요
IntelliJ Ultimate 관련해서 정보가 많이 부족했는데 짧은 시간에 해주신 설명이 쉽게 배울 수 있어서 좋았습니다.앞으로 강의 열어주시는거 기대중입니다.다만 현재 intelliJ 버전이 23년 버전이 배포된 후로 영상을 찍으신 시점과 다른점이 꽤 있어서 오류해결하는데 시간이 좀 걸렸어요. 이 부분 개선해주시면 정말 감사드리겠습니다!
-
미해결코딩으로 학습하는 리팩토링
리팩토링 22. 여러 함수를 변환 함수로 묶기 강의 내용과 소스 코드가 다른 부분 문의
강의를 보는 중에 올려 주신 소스 코드에는 강의 내용과 다르게 ReadingClient, ReadingClientTest 코드가 없고 코드가 다른 부분이 많은데 의도적으로 변경하신 건지 누락된 건지 따로 설명이 없어서 문의드립니다.
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
오류 could not find or load main class org . apsche . catalina . startup . Booststrap
C:\work\apache-tomcat-10.1.5\bin\catalina.bat run[2023-02-24 04:16:40,405] Artifact myweb:war exploded: Waiting for server connection to start artifact deployment...Using CATALINA_BASE: "C:\Users\USER\AppData\Local\JetBrains\IntelliJIdea2022.3\tomcat\d2879f62-a42d-4cc2-8525-ff9de9189793"Using CATALINA_HOME: "C:\work\apache-tomcat-10.1.5"Using CATALINA_TMPDIR: "C:\work\apache-tomcat-10.1.5\temp"Using JRE_HOME: "C:\Program Files\Java\jdk-19"Using CLASSPATH: "C:\work\apache-tomcat-10.1.5\bin\bootstrap.jar;C:\work\apache-tomcat-10.1.5\bin\tomcat-juli.jar"Using CATALINA_OPTS: ""Error: Could not find or load main class org.apache.catalina.startup.BootstrapCaused by: java.lang.ClassNotFoundException: org.apache.catalina.startup.BootstrapDisconnected from server 오늘은 또 새로운 오류가 생겼네요... 이거 어떻게 해결하나요 구글에 검색해봐도 무슨 말인지 모르겠어요...
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
tomcat등록
tomcat등록하고 초록색 실행 버튼 눌렀는데java: error: release version 5 not supported 라고 떠요두 가지 해결 방안 중에 뭐를 어떻게 설정해야할까요?
-
미해결코딩으로 학습하는 리팩토링
필드를 감추는 것이 중요한 이유?
안녕하세요 강사님레코드 캡슐화 설명을 들으면서 궁금한 점이 생겨 질문 드립니다.강의에서, 퍼블릭 필드를 감추는 용도로 퍼블릭 메서드를 사용할 수 있는데, 그 이유로는 퍼블릭 필드(ex, String name) 와 퍼블릭 메서드(ex, String setLastName()) 의 이름이 완전히 동일하다는 보장이 없기 때문입니다.위 문장을, 퍼블릭 메서드는 퍼블릭 필드를 감추는 용도로 사용할 수 있다고 이해했습니다.궁금한 점은, 그렇다면 필드를 감추는 것이 중요한 이유는 클라이언트단에서 데이터 클래스의 필드에 무작위적인 접근을 방지하기 위함인가요? 무작위적인 필드의 접근은 데이터를 쉽게 수정할 수 있게 때문이라고 추측했습니다.감사합니다.