실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요. 강의 다시 보기 하다가 질문이 생겨서 글 남깁니다. @Entity class Book( val name: String, @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, ) { } @Entity class Book( name: String, ) { var name: String = name private set @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long = 0L } 코틀린에서 필드를 기본생성자로 하는 방식과 클래스 본문으로 하는 방식으로의 차이가 궁금해서 질문드립니다! 감사합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. WARNING: A Java agent has been loaded dynamically (C:\Users\qudrn\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 테스트를 실행하면 이런 문구가 나옵니다. 잘 실행되는데 저런 오류가 나오니 잘 되는건지 안되는건지 잘 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 강의 너무 잘 듣고 있습니다 기초적인 질문드립니다^^; 다수의 개발자가 하나의 웹 프로젝트를 진행하는데 스프링부트는 어떻게 배포해야되나요? 각각 jar 가 생성되니 jar별 port를 넣어서 띄워야 되는지? 아님 모든 개발자의 소스를 합쳐서 jar 를 생성해야되는지? 아님 다른 방식으로 하는지 궁금합니다 너무 기초적인 질문이라 ^^; 감사합니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] https://www.inflearn.com/questions/72824 질문을 읽어보았습니다. 서버사이드 렌더링과 클라이언트 사이드 렌더링이 있고, 강의 예제에서 썼던 thymeleaf 같은 방법은 서버사이드 렌더링이라고 이해했습니다. 그리고 실무에서는 서버사이드와 클라이언트 사이드를 둘 다 사용한다고 하셨는데, 둘 다 사용한다는 말의 의미가 1. 동일한 화면에 대해 서버사이드와 클라이언트 사이드가 공존한다는 건가요? 만약 맞다면, 2. 실제 사용자가 보는 화면은 둘 중 어떤 걸로 선택되나요? 그리고 3. 서버사이드 렌더링을 사용하는 이유와 용도가 궁금합니다. 저 혼자서 데이터를 대강 화면에 뿌려보면서 백엔드 개발이 잘 되었는지를 확인하는 용도로 쓰는건가? 라는 생각을 했어서... 정확히 실무에서 어떤 용도로 쓰는건지 궁금합니다. 질문이 너무 많아서 죄송합니다ㅠㅠ 상세한 답변이 어려우시다면 참고할만한 레퍼런스나 검색 키워드를 추천해주셔도 좋습니다.
검색해보니 여러 상황이 있어 java 폴더에 있는 것도 확인했고 오타도 없는거 같은데 왜 작동이 안 될까요...? ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이런 오류가 발생하는데 이거는 버전이 안맞아서 발생하는건가요??
해당 예제를 통해 주키퍼를 먼저 실행을 해볼려하지만 계속해서 해당 classpath를 찾지 못하고 있습니다. 비슷한 상황을 겪은 사람들의 경우 바이너리 파일이 아닌 소스 파일을 다운 받아 해당 문제를 겪었다고 했지만 저의 경우 알맞은 파일을 설치하여 압축을 해제하였는데 어떤게 원인일까요
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이 과정에서 jdbc:h2:~/jpashop까지 입력을 완료하고 데이터베이스가 잘 생성이 되었는데 ~ /jpashop.m v.db이 어디에 생성된건지 모르겠습니다. ~ /jpashop.m v.db
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 실행되다가 중간에 오류가 발생하는데 이게 어떤 오류인건지 잘 모르겠습니다.아시는 분 계실까요?
안녕하세요 스프링부트 3.0 이상 버전을 사용하고 있는 사람입니다. 원래는 gradle로 잘 빌드하다가 오늘 갑자기 gradle빌드가 실패하네요 그래서 혹시나 해서 build를 intelij로 바꿔보니깐 실행이 잘됩니다. 3.0이상버전부터는 gradle빌드로 해야한다고 하시는데 이렇게 하면 문제가 생길까요? 왜그런걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강의 잘 듣고 있는 수강생입니다. AOP 적용 강의 6분30초 쯤 이나 그 이전에도 보면, 강사님이 localhost:8080 에서 회원목록 같은 곳 들어가실 때나 뭔가 접속할 때마다 실시간으로 인텔리제이에 START시간과 END시간이 반영이 되어서 나오는데 저는 그냥 이미지 처럼 처음 실행했을 때만 실행시간이 나올 뿐 그 이후부터는 아무것도 변화하지 않습니다.. 실시간으로 반영이 안되는 것 같아요 이유가 뭘까요? (TimeTraceAop부분은 강의노트와 똑같습니다. 혹시 몰라서 복붙했습니다)
[질문 내용] https://drive.google.com/file/d/1UqI2_8bN8k4yq1Zww3OVkDLQ_yS_tsPS/view?usp=sharing 오류를 gpt 와 함께 찾아보니.. Autowired 주입하려는 필드가 빈으로 정의되어 있지 않다고 하는것 같더군요.ㅠ 그래서 의존성 주입이 되지 않는다고 합니다. 더하여서 JdbcTemplateMemberRepository 에 Autowired 어노테이션이 되지 않는 이유도 알고싶습니다. + 스프링 오류 코드를 gpt에 돌려보고 어떤 코드인지 보는 저인데.. WARNING 뒤에 있는 것을 확인하고 오류를 찾으시는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요?예 [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 12분에서 Member 객체를 만들고 setter를 사용하셨는데 엔티티의 setter는 지양해야되는 것으로 알고있습니다. createMember 와같은 정적팩토리 메서드 로 객체생성하는게 더 낫지않나요?
엔티티 컬럼의 값을 수정할 때 save()를 안써도 JPA의 더티체킹 때문에 트랜잭션 커밋 시점에 업데이트 쿼리가 나간다고 알고 있습니다. @Transactional public void updateDeleteFlag(Long fileId) { File file = fileRepository.findById(fileId) .orElseThrow(() -> new EntityNotFoundException("해당 파일을 찾을 수 없습니다.")); file.changeDeleted(true); } 위 코드에서 @Transactional 어노테이션을 제거하면 update 쿼리가 나가지 않아서 수정이 안되더라고요. 이건 트랜잭션 커밋 시점 에 업데이트 쿼리가 나가는데 @Transcational 어노테이션을 달지 않으면 트랜잭션을 시작하지 않아 커밋도 없기 때문에 그런건가요? 1번의 내용이 맞을 때, @Transactional 어노테이션이 업데이트 메서드에 없다면, update 쿼리가 언제 나가는지 궁금합니다. update 쿼리가 나가지 않고 있다가 (JPA SQL저장소에 계속 머물다가) 다른 트랜잭션 (가령, 게시물 조회) 이 실행되고 커밋되는 시점. 이때 update 쿼리가 나가게 되는건가요?