묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@PostConstruct와 @Transactional 빈 생명주기와 함께 순서를 정리해보고 싶습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]비슷한 질문과 답변을 많이 봤는데 한번 정리한 것을 확인 받고 싶습니다. 너무 많이 질문 받아 번거로우시겠지만 확인해주시면 감사합니다 스프링 빈의 이벤트 라이프사이클은 다음과 같았습니다스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백(@PostConstruct) -> 사용 -> 소멸전 콜백 -> 스프링 종료김영한님이 답변에서 정리해주신 말씀은 다음과 같습니다@PostConstruct는 해당 빈 자체만 생성되었다고 가정하고 호출된다. 해당 빈에 관련된 AOP등을 포함한, 전체 스프링 애플리케이션 컨텍스트가 초기화 된 것을 의미하지는 않습니다. 트랜잭션을 처리하는 AOP등은 스프링의 후 처리기(post processer)가 완전히 동작을 끝내서, 스프링 애플리케이션 컨텍스트의 초기화가 완료되어야 적용된다.이를 종합해서 일어나는 순서를 더 세분화 하면 다음과 같다고 생각합니다.스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백(@PostConstruct) -> 스프링의 후처리기 적용(트랜잭션 AOP 등 프록시 객체 생성) -> 후 처리가 완료된 후 빈 등록 -> 스프링 애플리케이션 컨텍스트의 초기화가 완료 되어 어플리케이션 실행-> 사용 -> 소멸전 콜백 -> 스프링 종료예제 코드에서 위처럼 hello 클래스 로그를 찍어보면 프록시 객체라고 나오는 이유는 해당 메서드가 실행되는 시점이 사용 시점에 해당하기 때문이다전체적인 내용이 맞을까요?
-
해결됨실전! 스프링 데이터 JPA
섹션 3 지연 로딩 설정 후 MemberTest 실행 후 쿼리 문
이전 강의를 수강 하면서 엔티티 조회 시 지연 로딩 설정 시 즉시 조회가 되는 게 아닌 프록시 객체가 데이터의 위치를 가지고 사용할 때에 프록시 객체가 초기화 되며 데이터베이스에 쿼리를 요청하고 데이터를 받아 온다 라고 배웠습니다. 그렇다면 테스트 메서드를 실행하게 된다면Team, Member 객체를 persist -> 영속성 컨텍스트에 Member와 Team 존재flush() -> 영속성 컨텍스트에 들어있던 엔티티를 데이터베이스에 반영 -> insert 쿼리가 실행데이터베이스에 반영되었으나 아직 영속성 컨텍스트에는 값이 존재하는 상태clear() -> 영속성 컨텍스트에 들어 있는 데이터를 초기화createQuery로 Member 엔티티를 데이터베이스에서 조회 -> Member에 대한 select 쿼리 실행영속성 컨텍스트가 초기화 되었고 team이 지연 로딩으로 설정되어 프록시 객체가 생성루프를 돌며 getTeam() 호출 시점 team_id를 기반으로 데이터베이스에 team을 조회 -> Team에 대한 select 쿼리 실행memberA 조회 후 teamA에 대한 조회 쿼리가 발생하고 memberC 조회 후 teamB 조회 쿼리가 발생이러한 과정으로 이뤄진다고 배웠는데 테스트 코드를 돌려보니 member에 대한 조회 쿼리 후 team에 대한 조회 쿼리가 발생하지 않습니다.그래서 팀의 프록시 객체가 초기화 되었는지 체크하기 위해 Hibernate.isInitialized를 사용해 찍어봤는데 제일 처음 false 로 초기화 되지 않았다고 나오나 team을 조회하는 쿼리가 발생하지 않았습니다.찾다 보니 Hibernate에 쿼리 최적화 기능으로 영속성 컨텍스트는 초기화 되었지만 메모리가 초기화 된 것은 아니므로 해당 객체가 메모리에 존재한다면 Hibernate가 쿼리를 생략하고 해당 객체를 반환한다라는 게 있던데 그것 때문에 쿼리가 나가지 않는 건지 궁금합니다. 2차 캐시가 설정되어 있지는 않습니다. 스프링 부트 3.3.4, 자바 17, Hiberante 6.5.3 입니다!* 해결 *spring.jpa.properties.hibernate.show_sql=true하이버네이트 show_sql이 주석처리 format_sql만 출력되는 상황이었습니다.정상 출력 확인했습니다!package springPJ.dataJpa.domain; import jakarta.persistence.EntityManager; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.hibernate.Hibernate; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import java.util.List; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest @Transactional @RequiredArgsConstructor @Slf4j class MemberTest { @Autowired EntityManager em; @Test void testEntity() { Team teamA = Team.builder().name("teamA").build(); Team teamB = Team.builder().name("teamB").build(); em.persist(teamA); em.persist(teamB); Member memberA = Member.builder().name("memberA").age(10).team(teamA).build(); Member memberB = Member.builder().name("memberB").age(20).team(teamA).build(); Member memberC = Member.builder().name("memberC").age(30).team(teamB).build(); Member memberD = Member.builder().name("memberD").age(40).team(teamB).build(); em.persist(memberA); em.persist(memberB); em.persist(memberC); em.persist(memberD); em.flush(); em.clear(); List<Member> members = em.createQuery("select m from Member m", Member.class).getResultList(); for (Member member : members) { log.info("team.isInitialized = {}", Hibernate.isInitialized(member.getTeam())); log.info("member = {}", member); log.info("member.team = {}", member.getTeam()); } } } select m1_0.member_id, m1_0.age, m1_0.name, m1_0.team_id from member m1_0 2024-09-21T19:36:05.194+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : team.isInitialized = false 2024-09-21T19:36:05.194+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member = Member(id=1, name=memberA, age=10) 2024-09-21T19:36:05.197+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member.team = Team(id=1, name=teamA) 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : team.isInitialized = true 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member = Member(id=2, name=memberB, age=20) 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member.team = Team(id=1, name=teamA) 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : team.isInitialized = false 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member = Member(id=3, name=memberC, age=30) 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member.team = Team(id=2, name=teamB) 2024-09-21T19:36:05.219+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : team.isInitialized = true 2024-09-21T19:36:05.220+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member = Member(id=4, name=memberD, age=40) 2024-09-21T19:36:05.220+09:00 INFO 7696 --- [dataJpa] [ Test worker] springPJ.dataJpa.domain.MemberTest : member.team = Team(id=2, name=teamB)
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
원본 클래스 인스턴스와 프록시 인스턴스 모두 힙 영역에 저장되는걸까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링에서 @Transactional을 사용하게 되면 원본 클래스자체의 인스턴스와 클래스의 프록시 객체의 인스턴스 모두 힙 영역에 생성되는데, 프록시 객체만 스프링 컨테이너에 등록되고, 프록시 객체가 클래스 원본 인스턴스 참조를 가진다 라고 이해하면 될까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
MyBatis 적용2 실행 실패
테스트는 성공을 했는데 ItemServiceApplication을 실행했는데 실행이 되질 않습니다...제가 처음에 스프링부트는 3.x.x 버전을 사용하고 있는줄 알고 MyBatis 버전을 3.0.3으로 설정하고 "테스트 실행 도중" 오류가 생겼습니다.그래서 막 build.gradle에서 이것저것 건드리다가 강사님께서 올려주신 코드를 그대로 실행한걸 깨닫고 MyBatis 버전을 2.2.0으로 낮추고 다시 build.gradle을 원래대로 돌리니 테스트 코드가 정상 실행됐는데 이제는 애플리케이션 실행이 되질 않습니다 ㅠㅠ 뭐가 문제인걸까요..오류 코드는 아래와 같이 뜹니다..org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-200]제가 작성한 코드는 아래에 구글 드라이브 링크로 첨부하겠습니다.https://drive.google.com/file/d/1w5ys_ZxhtNr5-vgNq9-B_j1Y2CEkiktR/view?usp=sharing그리고 에러 메시지는 전부 붙여넣기 하려고 했는데 본문 글자수가 초과되서 실을수가 없어요...ㅠㅠ어떤게 문제인지 알려주시면 감사하겠습니다 ㅠㅠㅠMyBatis에서 갑자기 문제가 생겼어요....
-
미해결코드로 배우는 React with 스프링부트 API서버
여기까지 하고나니 Product가 깨집니다.
해당 회차까지 하고 나니 Product도 확인해 볼겸 들어가보니 사진도 안나오고 pname도 undefied로 나오네요 server 쪽에서 Authorization 의 값이 null이라고 뜨는게 이유 인거 같은데 제가 잘못 한게 있을까요? 아니면 뒤의 회차에서 해결하는 방법이 제시가 되는건가요??
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Controller와 Service, Repository
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]OrderApiController에서 Repository를 이용하여 전체 조회를 하고 있는데 원래 컨트롤러 단은 서비스에 의존하는 것으로 아는데 어차피 findAll()메서드의 동작이 service단에서 public List<Order> findOrders(OrderSearch orderSearch){ return orderRepository.findAll(orderSearch); }이런 식으로 만들어도 Repository것을 변경하지 않고 그대로 실행하는 것에 불과해서 Controller에서 Repository단에서 아래처럼 바로실행하는 것인가요? private final OrderRepository orderRepository;
-
해결됨대기업 서버 개발자가 알려주는 Spring, AWS를 활용한 이메일 전송 시스템
안녕하세요 추가구현사항에 대해 질문이있습니다.
강의 잘 들었습니다!추가로 질문이 있어서 글 남기겠습니다 ~강의를 듣는 목적은 프로젝트에서 회원가입 시 이메일 인증 및 id/password 찾기에 대한 인증번호 전송이었습니다. 사용자의 이메일로 인증번호(ex 6자리 007007) 를 보내 그 사용자가 사이트에 입력 후 번호가 맞으면 이메일인증 , password 찾기 서비스를 이용할수 있게끔 하고싶습니다. 검증유효시간 그런거는 다 제쳐두고 위의 인증 기능만 단순히 구현해보고싶은데요 1. 인증번호 6자리를 어떻게 서버에 보관할수 있을까요?2. 보관 후 그것이 특정 사용자에게 맞는 인증번호인지 확인할까요?? 제가 지금 생각해본 방식입니다. temp_user 테이블 생성하고 pk(email), column(verify_code) 컬럼을 만든다사용자가 이메일 인증요청을 하면 temp_user 테이블에 email,verify_code보관 및 verify_code 전송사용자가 인증번호 확인하려고 입력을 하면 email값에 맞는 verity_code인지 temp_user table에서 꺼내와서 확인 인증번호 검증 후 회원가입 완료 로직 -> temp_user 삭제 후 입력 정보 user 테이블에 저장하는 방법입니다 . 긴 글 읽어주셔서 감사합니다. 생각의 방향이 맞는지 아니면 더 좋은 방법이 있는지 알려주시면 감사하겠습니다 !!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
동영상 강의에서 이러한 기능을 갖춘 UI화면을 미리 만들어서 저희가 셋팅했던 서버에 넣어놨다고 하는데, 포트번호를 8080으로 똑같이 해야하나요?
그리고 질문이 자꾸 지워져요. 그래서 다시 작성하게 되었네요. 질문올리면 첫번째에는 글이 지워지고, 다시 작성한 두번째는 글이 올라가는데, 이런 현상은 왜 일어나나요? 포트번호를 5000번으로 했는데, 자꾸 오류가 걸리네요.강사님이 이러한 기능을 갖춘 UI화면을 미리 만들어서 저희가 셋팅했던 서버에 넣어놨다고 했는데, 이게 무슨 말씀인가요?7강 유저 생성 API개발에서 1분 20초부터 1분 31초까지에서 강사님의 말씀이 자꾸 생각나네요.아까 답변주신 방법으로는 해결이 안되요!프로젝트를 클린 빌드하고, 다시 실행해보세요.라는 말은 무슨 뜻인가요? 클린 빌드는 어떻게 해야하나요?application.properties밖히 없어요!spring.application.name=library-app server.port=5000애플리케이션.프로펄티즈에는 위에처럼 작성되어 있어요. 뭔가 잘못되어 있는게 있나요? 강사님이 주신 파일입니다. URL 설정이 올바르게 되어 있는지 확인하려면 어떻게 하나요?Controller 클래스가 없거나 잘못 매핑됨:URL 경로와 매핑된 @RequestMapping 또는 @GetMapping, @PostMapping이 제대로 설정되지 않았을 수 있습니다.1번은 어디를 말하는건가요? CalculatorController에는 아래 코드가 있습니다. 잘못된 부분이 있으면 알려주세요!package com.group.library_app.controller.calculator; import com.group.library_app.dto.calculator.request.CalculatorAddRequest; import com.group.library_app.dto.calculator.request.CalculatorMultiplyRequest; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class CalculatorController { @GetMapping("/add") // GET /add public int addTwoNumbers(CalculatorAddRequest request) { return request.getNumber1() + request.getNumber2(); } @PostMapping("/multiply") // POST /multiply public int multiplyTwoNumbers(@RequestBody CalculatorMultiplyRequest request) { return request.getNumber1() * request.getNumber2(); } }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
도서관리 애플리케이션에 대한 코드를 안짠거 같아요!
Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Fri Sep 20 20:27:51 KST 2024There was an unexpected error (type=Not Found, status=404).제일 큰 원인은 맵핑이나 펄백이나 도서관리 애플리케이션에 대한 코드를 안짠거 같은데, 이런 오류는 왜 생기는건가요? 아까전에 주신 답변을 따라해도 안되요. 원인과 해결방법을 새롭게 알려주실 수 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
http://localhost:8080/v1/index.html을 입력했을때, 하얀페이지와 오류가 생겨요!
강사님과 똑같이 했는데, 오류가 생겨요. application.properties 파일을 사용할 경우:server.port=6000위처럼 입력하고 검색도 되나요??안되서 server.port=6000를 지워서 기본 디폴트값 8080으로 만든후 실행했어요!그리고http://localhost:6000/v1/index.html으로 검색하면 아래처럼 떠요사이트에 연결할 수 없음http://localhost:6000/v1/index.html의 웹페이지가 일시적으로 다운되었거나 새 웹 주소로 완전히 이동했을 수 있습니다.ERR_UNSAFE_PORT어떻게 하면 포트번호도 바꾸면서, http://localhost:8080/v1/index.html가 아닌 http://localhost:6000/v1/index.html 을 검색하면서, 도서관리 어플리케이션 화면이 나오게 할 수 있나요?netstat -ano을 입력해서 8080의 pid을 찾아taskkill /pid 번호 /f를 입력해서 지워야 작동이 되나요? 지우고 다시 작동해도 바뀌질 않아요.http://localhost:6000/v1/index.html을 입력해도사이트에 연결할 수 없음http://localhost:6000/v1/index.html의 웹페이지가 일시적으로 다운되었거나 새 웹 주소로 완전히 이동했을 수 있습니다.ERR_UNSAFE_PORT가 떠요. 기본값 8080으로 바꿔도 변경이 안되요! 무엇이 문제인가요?기본값에서 포트번호 6000으로 변경해도 강사님이 보여주신 http://localhost:8080/v1/index.html에서 로컬호스트 번호만 변경해도 똑같이 되나요? 아니면 강사님과 똑같이 기본값 8080으로 사용해야하나요?포트번호를 6000번으로 바꾸면서도 도서관리 어플리케이션이 작동했으면 좋겠어요!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
인텔리제이의 포트번호를 8080에서 다른 번호로 변경하는 방법을 알려주세요!
제가 대학교 컴퓨터를 사용하고 있고, 스프링부트, STS, oracle database, 이클립스 등을 사용하니까 8080포트를 중복해서 사용하는것 같아요.그래서 아래 방법으로 해결했어요!윈도우버튼 누르고, CMD입력해서 실행창 띄우서, 아래 코드를 입력해서 8080포트의 PID를 알아냈어요!netstat -ano그다음 8080의 pid 2032를 지우고 다시 실행하니까 해결이 되는데, 매번 이렇게 하기 어려우니, 인텔리제이의 포트번호를 바꾸고, 포스트맨이나 다른 어플리케이션에서도 바꾼 포트번호를 설정해서 사용하고 싶어요. 어떻게 해야하나요? 인텔리제이의 8080포트번호를 다른 번호로 변경해도 작동하는데 문제가 없습니까?taskkill /pid 2032 /f
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
추가질문, 프로젝트에서 사용위치를 찾을 수 없데요!
package com.group.library_app.controller.calculator; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class CalculatorController { @GetMapping("/add") // GET /add public int addTwoNumbers( @RequestParam int number1, @RequestParam int number2 ) { return number1 + number2; } }Execution failed for task ':com.group.library_app.LibraryAppApplication.main()'.> Process 'command 'C:\Users\Student\.jdks\corretto-17.0.12\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.BUILD FAILED in 1s3 actionable tasks: 1 executed, 2 up-to-date 제거는 0개의 사용위치라는 문구가 뜨고, ("/add")안에 지구모양의 아이콘을 클릭할 수 있는 메뉴가 안떠요!0개의 사용 위치를 클릭하면 "프로젝트 파일에서 사용 위치를 찾을 수 없습니다"라는 메세지가 뜹니다. 이게 가장 큰 문제인것 같은데, 아까전에 답변주신 것으로는, 제가 질문을 하기 위해 참고한 사이트를 똑같이 링크를 올려주셨더군요. 해결이 안됩니다. 무엇인가 설정은 안해준걸로 아는데, 어떤것을 설정을 안해주거나 빌드.그래들안에서 디펜던시 같은 곳에 입력을 안해준것이 있거나 할건데, 어떤 것인지 모르겠어요! 강사님 동영상과 똑같이 따라했는데, 오류가 해결이 안됩니다. 직접 이 동영상의 강사님이 해결해주실 수 있나요?빌드 및 실행과 테스트 실행을 Gradle로 설정하면 오류가 생겨요!의 답변을 참고해서 다시 질문드립니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
빌드 및 실행과 테스트 실행을 Gradle로 설정하면 오류가 생겨요!
강사님 200 OK랑 30이 나와야 하는데, 저는 오류가 떠요. 아래 오류는 강사님 코드를 다운받고 실행시킬 처음부터 발생했습니다!500 Internal Server ErrorThe server has encountered a situation it does not know how to handle.{ "timestamp": "2024-09-20T07:29:31.340+00:00", "status": 500, "error": "Internal Server Error", "path": "/add" }위에거는 인텔리제이 코드가 아니라 포스트맨에서 나오는 오류 코드입니다.인텔리제이 빌드.그래들을 실행시키면 아래 오류가 뜹니다. 아래 오류는 설정에서 Build and run using과 Run tests using을 인텔리제이 IDEA로 바꿔야 해결되는데, 그러면 포스트맨에서 코드가 안나옵니다.정답은 30, 200OK가 저는 안나와요!아래 참고 사이트:https://dev-emmababy.tistory.com/86https://velog.io/@blackbean99/Java-finished-with-non-zero-exit-value-1-%EC%97%90%EB%9F%AC-%ED%95%B8%EB%93%A4%EB%A7%81 Execution failed for task ':com.group.library_app.LibraryAppApplication.main()'.> Process 'command 'C:\Users\Student\.jdks\corretto-17.0.12\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.BUILD FAILED in 2s3 actionable tasks: 1 executed, 2 up-to-date
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
빌드.그래들에서 디펜던시에 값을 붙여넣었는데, 어노테이션에 아무런 변화가 없어요!
빌드.그래들에서 디펜던시에 값을 붙여넣었어요!plugins { id 'java' id 'org.springframework.boot' version '3.3.3' id 'io.spring.dependency-management' version '1.1.6' } group = 'com.group' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'org.springframework.boot:spring-boot-starter-web' } tasks.named('test') { useJUnitPlatform() }하지만 어노테이션에 임포트 클래스라는 메뉴가 안떠요! 아무런 변화가 없습니다!https://needneo.tistory.com/272위 링크처럼 임포트 클래스 메뉴가 떠야하는데, 새로고침을 어떻게 하라는 건가요?한글메뉴라서 버튼이름이 다를 수 있어요!파일에서 IDE고치기도 해보고 실행도 해보고 디버그도 해봤어요! 전혀 변화가 없습니다.구체적으로 해결방법을 가르켜주세요!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강사님의 동영상처럼 어노테이션을 입력하면 저는 임포트가 안떠요!
강사님처럼 어노테이션을 입력하면, 임포트가 입력이 안되요. 직접 작성해도 web.에서 오류가 걸려요. 무엇인가 설정이 안되었거나 무엇인가 안깔려있는거 같은데, 어떻게 해결해야하나요? 그리고 임포트 단축키좀 알려주세요. ctrl+O인가요?
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
개선된 아키텍처의 구조
많은 도움을 얻어가는 취준생입니다. 다름아니라 본 영상(레이어드 아키텍처의 문제점과 해결책) 9분30초의 구조는 DDD라고 볼 수 있나요?감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
db에 저장되는 이름과 객체를 지정하는 이름 스타일 차이는 그냥 관례일까요
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]db의 필드 이름은 item_name 이렇게 지정하고, 객체에서는 itemName이런 형식으로 camelCase 스타일로 지정하는 이유는 그냥 오랜 관례일까요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 데이터베이스 연결
h2 데이터베이스 연결이 자꾸 안된다고 뜹니다...Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
react 소스 부탁드립니다.
강의 너무 잘 보고 있습니다.강의를 진행하면서 그냥 따라하는것보다는이건 이렇게도 해보고 저건 저렇게도 해보면서 배움을 진행 하는게 좋을 것 같아요청 드립니다 ㅎ좋은 강의 감사합니다.jhr7124@naver.com
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@GeneratedValue 전략
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GeneratedValue 에서 따로 strategy 전략을 안주면 AUTO로 설정되고 jpa에서 pk 순서?를 관리해주는걸로 알고있는데몇번 post man으로 API 요청을 날리다보니 member_id 가 1,2까지 순차적으로 증가하다가 갑자기 52번으로 뛰었어요. 그래서 member_seq 테이블의 값을 3으로 수정해줬는데 다시 api 호출을 해보니 음수로 바뀌었습니다. 이부분이 이해가 안가는데 pk 값을 어떤식으로 동작? 관리 하는지 알려주시면 감사하겠습니다. 그리고 이 방식은 항상 순차적인 값으로 증가가된다는 보장이 없는것 같은데 AUTO 로 사용해도 되는지 궁금합니다.참고로 db는 Mysql 사용했습니다. .