inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

준영속 상태의 객체인 이유, 영속 상태의 객체인 이유

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 강의 내용과 관련하여 질문이 있어 글 남깁니다. 강의에서 10:00 정도에 변경 감지 방법에 대해 설명하시는 부분입니다. 트랜잭션 상에서 엔티티를 다시 조회하여 내용을 변경하면 이 엔티티는 영속 상태이므로 변경 감지가 된다. 따라서 save() 를 하지않아도 알아서 변경 감지되어 DB에 update된다. 라고 이해했습니다. 제가 궁금한 부분은, itemRepository.findOne(itemId); 부분에서 엔티티를 조회하는데, 이 엔티티는 원래 준영속 상태의 엔티티였고, findOne() 을 함으로써 다시 영속성 컨택스트에 들어온 건가요? 아니면 생성된 때부터 지금까지 죽 영속 상태였나요? 강의의 맥락상, 지금 준영속 객체를 변경하는 방법에 대해 배우고 있으니 전자일 것이라고 생각했습니다. 만약 제가 생각한대로 준영속 상태에서 변경된 것이 맞다면, merge와 역할 자체는 같은게 맞나요? 물론 디테일한 로직이 좀 다르지만, 역할 자체만 보면 merge또한 준영속 객체를 기발으로 영속 객체를 만들어 반환해주는 거고, 변경 감지 기법도 findOne()을 통해 준영속 객체를 영속 객체로 다시 만들어주는 것이니까요. 이 둘의 차이점은 객체가 통째로 갈아치워지느냐, 부분 수정이 가능하냐 이것 정도만 있다, 라고 이해해도 될까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김민희 댓글 2 좋아요 0 조회수 889

virustotal 코덱 문제 해결 요청합니다.

해결됨

한 번에 끝내는 SIEM 구축: Wazuh와 ELK를 활용한 위협 헌팅 첫걸음 (기초)

안녕하세요 이번 실습부터 갑자기 wazuh 서버로 이벤트 로그를 잘 보내던 Windows 클라이언트로부터 더 이상 이벤트를 받지 못하고 있습니다. 도와주셨으면 합니다. 둘이 서로 네트워크 연결 문제 및 설정이 제대로 되어있는지 확인 및 에이전트 / 서비스 재시작을 다수 해봤으며, 에러로그는 아래와 virus total codec 문제인것을 볼 수 있었습니다. 지금 alerts.log는 virustotal 다른 사람들의 결과물에 비해 좀 부실하게 작성되어서 나와있길레 가져왔습니다. (해당 로그에서 시스템 무결성 체크나 netstat 명령을 가져오는건 잘 보입니다.) 또한, 강좌에서 나온것 처럼 sysmon 이벤트로그에서 calc, vss 관련로그도 정상적으로 등장하는것을 확인했습니다. -wazuh server- /var/ossec/logs/ossec.log 2024/01/25 03:07:15 wazuh-integratord: ERROR: Unable to run integration for virustotal -> integrations 2024/01/25 03:07:15 wazuh-integratord: ERROR: While running virustotal -> integrations. Output: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 1481: invalid start byte var/ossec/logs/alerts/alerts.log ** Alert 1706119676.269841153: - virustotal, 2024 Jan 25 03:07:56 (DESKTOP-8KIVUDS) 윈도우IP->virustotal Rule: 87103 (level 3) -> 'VirusTotal: Alert - No records in VirusTotal database' {"virustotal": {"found": 0, "malicious": 0, "source": {"alert_id": "1706119670.269839011", "file": "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\bam\\State\\UserSettings\\S-1-5-21-2409306197-2214590480-1851912469-1000", "md5": "a1d87ba945282fbbd3276dc1b9918a23", "sha1": "4b6965b3c854f07763683c778774221fecf263b4"}}, "integration": "virustotal"} virustotal.found: 0 virustotal.malicious: 0 virustotal.source.alert_id: 1706119670.269839011 virustotal.source.file: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\bam\State\UserSettings\S-1-5-21-2409306197-2214590480-1851912469-1000 virustotal.source.md5: a1d87ba945282fbbd3276dc1b9918a23 virustotal.source.sha1: 4b6965b3c854f07763683c778774221fecf263b4 integration: virustotal local_rules.xml 파일 설정 내용은 아래와 같습니다. <!-- Sysmon Wazuh Rules version 1.0--> <group name="local,syscheck,"> <!-- Rule for ZEROMINI_RANSOM_NOTE.txt --> <rule id="100001" level="10"> <decoded_as>json</decoded_as> <field name="syscheck.path">C:\\Users\\User\\Desktop\\ransom_test\\ZEROMINI_RANSOM_NOTE.txt</field> <description>ZEROMINI_RANSOM_NOTE.txt file detected.</description> </rule> <!-- Rule for .koyange extension --> <rule id="100002" level="10"> <decoded_as>json</decoded_as> <field name="syscheck.path">\.koyange$</field> <description>File with .koyange extension detected.</description> </rule> </group> <group name="sysmon,sysmon_process-anomalies,"> <rule id="300001" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.Image">calc.exe</field> <description>Calc process started (possible ransomware simulation)</description> </rule> <rule id="300002" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.CommandLine">vssadmin delete shadows</field> <description>Shadow copy deletion command detected (possible ransomware simulation)</description> </rule> <rule id="300003" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.TargetFilename">ZEROMINI_RANSOM_NOTE.txt</field> <description>Ransom note detected (possible ransomware activity)</description> </rule> <rule id="300004" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.parentImage">python.exe</field> <description>File with python extension detected (possible ransomware activity)</description> </rule> <rule id="300005" level="13"> <if_group>sysmon_event1</if_group> <field name="win.eventdata.CommandLine">ping 8.8.8.8</field> <description>Ping to 8.8.8.8 detected (possible network test or exfiltration attempt)</description> </rule> </group>

  • linux
  • microsoft-windows
  • security
  • wazuh
  • ossec
4D5A 댓글 2 좋아요 1 조회수 339

주문상품_재고수량초과 테스트 질문있습니다(fail())

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 내용] 여기서 주문상품수량이 10개니 예외가 터지지않고 fail로 가는거로 알고있는데요 Expected jpabook.jpashop.exception.NotEnoughStockException to be thrown, but nothing was thrown 이러한 에러는 뜨는데 예외가 터지지않았기에 fail이 떠야하는데 fail안에 있는 메세지가 안뜹니다 한가지 더 질문이 있씁니다 주문상품수량을 11로 바꿧을떄 마지막에 fail을 적지않고 테스트를 돌렸을땐 예외를 터트려서 테스트가 성공적으로 끝나는데요 여기서 위와같이 fail메서드를 적어도 원래는 위에서 예외가 처리됏기떄문에 테스트가 정상적으로 끝나야 되는게 맞는거 아닌가요? 테스트를 돌렷는데 fail문이 뜹니다 그 뜻은 예외가 터지지않았다는 말이죠.. 의문이 듭니다 도와주세요ㅠㅠ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
동형 댓글 2 좋아요 2 조회수 605

5~6강 질문이요

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

post방식은 dto 객체 앞에 @RequestBody가 있는데 get방식은 왜 dto객체 앞에 @RequestParam을 안 써요? 맨 처음에 dto 객체 없었을 때 매개변수 이용하였을 때는 @RequestParam 썼던 것 같은데..

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
ghdtldus03a 댓글 2 좋아요 1 조회수 402

맨마지막 agenetless 제거 시도 시 .passlist가 보이지 않던 이유

해결됨

한 번에 끝내는 SIEM 구축: Wazuh와 ELK를 활용한 위협 헌팅 첫걸음 (기초)

28:26 터미널에 ls -al 결과물 보면 zeromini_malware 파일이 있는걸 보면 해당 터미널은 wazuh server 보여주는게 아니라 ssh로 wazuh Linux 가상 머신을 보여주고 있던것 같습니다. 그래서 .passlist 파일이 안보였던것 같습니다.

  • linux
  • microsoft-windows
  • security
  • wazuh
  • ossec
4D5A 댓글 1 좋아요 1 조회수 228

~/jpashop.mv.db 파일을 못찾겠습니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이 과정에서 jdbc:h2:~/jpashop까지 입력을 완료하고 데이터베이스가 잘 생성이 되었는데 ~ /jpashop.m v.db이 어디에 생성된건지 모르겠습니다. ~ /jpashop.m v.db

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
taetae 댓글 2 좋아요 0 조회수 1004

값타입과 @MappedSuperclass의 차이

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 값타입 @MappedSuperclass의 차이가 무엇인가요? BaseEntity를 @MappedSuperclass로 놓고 상속받아서 여러 속성을 한꺼번에 갖는것과 값타입 클래스를 @Embeddable로 설정해서 위임하는 것의 차이가 궁금합니다. 둘다 여러 속성들을 동시에 관리해서 다른 테이블의 속성으로 사용하기 위한 목적이라면 하나만 있으면 될 것 같은데, 왜 굳이 2개 모두 필요한가요?

  • java
  • jpa
김희수 댓글 2 좋아요 0 조회수 645

GenerationType.IDENTITY Null값 허용 안 되는 에러

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 기본 키 맵핑에서 GenerationType.IDENTITY 관련 부분 질문드립니다. GenerationType.IDENTITY는 PK를 입력하지 않아도 auto increment라고 해서 저절로 생성되는 거 아닌가요? 그런데 이런 에러가 떴습니다. ERROR: NULL not allowed for column "ID"; SQL statement: 답변 부탁드리겠습니다. 감사합니다! package hellojpa; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String username; public Member() { // 기본 생성자가 하나 있어야 함 } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import javax.transaction.Transaction; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // EntityManagerFactory는 application 로딩 시점에 딱 하나만 만들어놔야 한다. // Transaction 단위로 EntityManager를 만든다. EntityManager em = emf.createEntityManager(); // 쉽게 생각하면 데이터베이스 connection을 하나 받았다고 생각할 수 있음. EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Member member = new Member(); member.setUsername("Opeahchsdf"); em.persist(member); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); // 끝나면 반드시 닫아줘야 함 } emf.close(); } } <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence>

  • java
  • jpa
이주현 댓글 3 좋아요 0 조회수 1214

커스텀 인터페이스 구현체 이름 작성 시 순환 참조 발생 질문

해결됨

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 영한님. 이번 강의도 잘 수강한 학생입니다. 강의 내용과 공식 문서를 참고하며 간단한 게시글 리포지토리를 만들어보고자, 아래처럼 작성했었습니다. public interface BoardRepository { Long save(final Board board); ... } @Repository @RequiredArgsConstructor public class BoardJpaRepositoryImpl implements BoardRepository { private final BoardJpaRepository boardJpaRepository; ... } public interface BoardJpaRepository extends JpaRepository<Board, Long> { } 강의 내용대로 스프링 데이터 JPA인 BoardJpaRepository에 Impl을 붙인 BoardJpaRepositoryImpl을 만들었는데, 아래와 같이 순환 참조 문제가 발생했습니다. The dependencies of some of the beans in the application context form a cycle: boardController defined in file [/Users/hyunjoonchoi/Desktop/2024/2024-mju-mentoring/build/classes/java/main/com/mju/mentoring/board/controller/BoardController.class] ↓ boardService defined in file [/Users/hyunjoonchoi/Desktop/2024/2024-mju-mentoring/build/classes/java/main/com/mju/mentoring/board/service/BoardService.class] ┌─────┐ | boardJpaRepositoryImpl defined in file [/..../build/classes/java/main/com/mju/mentoring/board/infrastructure/BoardJpaRepositoryImpl.class] └─────┘ Action: Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true. 그런데 이름을 BoardRepositoryImpl, JpaBoardRepositoryImpl 등 다른 이름으로 하니까 순환 참조 문제가 해결되더라구요 이에 대해서 다른 외국 개발자 분들도 이슈로 올리고, 그것들을 찾아봤으나 메인테이너 분이 @Lazy를 사용하거나 ObjectProvider를 사용해야 한다고 말씀해주시는 것 밖에 없었습니다. 공식 문서 ( https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/repositories.html#repositories.create-instances )를 보면 스프링 데이터 JPA + Impl로 할 시 자동으로 스프링 데이터 JPA의 구현체로 인식한다고 되어 있는 것 같은데, 이런 순환 참조 이슈가 발생한 원인을 알 수 있을까요? 이를 해결해보고자 스프링 데이터 JPA 레포지토리에 직접 이슈로 남기고 ( https://github.com/spring-projects/spring-data-jpa/issues/3320 ) 답변을 받았긴 했습니다만, 여전히 다른 이야기를 하시는 것 같아 영한 님께도 문의드리고 싶습니다!

  • java
  • spring
  • spring-boot
  • jpa
devholic 댓글 1 좋아요 1 조회수 466

JAVA Spring 환경설정

미해결

java spring 을 사용하려고합니다 근데 이때

  • java
  • javaspring
댓글 1 좋아요 0 조회수 126

왜 delete 쿼리가 안나가는 걸까요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

Parent class @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "parent",cascade = CascadeType.ALL) private List<Child> childList = new ArrayList<>(); public void addChild(Child... childArray) { for (Child child : childArray) { child.setParent(this); childList.add(child); } } Child class @Setter @Id @GeneratedValue private Long id; private String name; @ManyToOne @JoinColumn(name = "PARENT_ID") private Parent parent; Main 메서드 Parent parent = new Parent(); Child child = new Child(); Child child1 = new Child(); parent.addChild(child, child1); em.persist(parent); em.flush(); em.clear(); Parent findParent = em.find(Parent.class, parent.getId()); Child findChild = findParent.getChildList().get(0); em.remove(findChild); tx.commit(); Main메서드에서 findParent에서 자식 리스트를 가져와 첫번째 자식을 삭제해도 db에는 여전히 child, child1이 남아있는데 혹시 왜 그런지 알 수 있을까요?

  • java
  • jpa
댓글 1 좋아요 0 조회수 339

double형 오버플로우

해결됨

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의를 보다가 문득 궁금한 부분이 생겨서 질문 드립니다. int의 경우 오버플로우가 발생하면 Long 형으로 형 변환을 하면 된다고 하셨는데 double을 사용하다가 오버플로우가 발생한다면 어떻게 처리를 하는지 궁금해져서 질문드립니다. 혹시 double형을 사용하면서 오버플로우가 발생하는 상황 자체가 잘 못 된것일까요?

  • java
  • 객체지향
  • 변수
addvd 댓글 1 좋아요 0 조회수 555

해상도 개선 요청

해결됨

한 번에 끝내는 SIEM 구축: Wazuh와 ELK를 활용한 위협 헌팅 첫걸음 (기초)

안녕하세요, 강사님 위협헌팅 시스템 수강중인 수강생입니다. 영상 강의가 너무 떨어져서 인프런 문의에 문의 드렸더니 인프런측에서는 강사님이 540P로 제공하셔서 개선이 어렵다고 합니다. 강의 내용은 참 좋은데, 강의 영상 화질이 떨어지다보니 학습 집중도가 떨어지고, 주변에 강의 추천하기가 어렵습니다. 강의 해상도 높아 질 수 있도록 개선 부탁 드립니다. *데스크탑 PC, 노브툭, 테블릿(아이패드 프로 11인치 4세대, 겔럭시탭s6) 모두 화질이 떨어져서 보입니다. [해상도 540P] 감사합니다. ✨ 질의 안내 선수 지식이 부족하더라도 걱정하지 마세요. 강의를 통해 필요한 내용을 차근차근 배워나갈 수 있습니다. 각 항목별 추천 자료를 통해 기본 지식을 탄탄히 하면 강의 내용을 더 깊이 있게 이해하고 활용할 수 있습니다. 디스코드 또는 인프런으로 질문주시면 바로 답변드리겠습니다 디스코드 채널 : https://discord.gg/uCQEnRaSMG

  • linux
  • microsoft-windows
  • security
  • wazuh
  • ossec
김진수 댓글 1 좋아요 1 조회수 366

예외 클래스에서 catch 안의 데이터형이 참조자인 이유

해결됨

C개발자를 위한 최소한의 C++

안녕하세요. 강의 잘 보고 있습니다. 강의를 듣다가 궁금한 것이 생겨서 질문 드립니다. catch(MyException &exp) { // 생략 } 이 강의 예제에서 catch의 예외 데이터형에 클래스 참조자를 받도록 하였는데 만약 아래처럼 참조자를 사용하지 않으면 복사생성이 되나요? catch(MyException exp) { // 생략 }

  • c++
  • microsoft-windows
  • 객체지향
  • 디자인-패턴
김상현 댓글 1 좋아요 0 조회수 353

@Enumerated와 hibernate 타입 검증 관련 해결을 어떻게 해야할지 모르겠습니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 안녕하세요 강의에서 설명해주신 대로 따라하려고 했습니다. 단 , ddl-auto : create 대신 미리 SQL 문으로 테이블을 생성해놓고 ddl-auto: validate로 실행시 에러 가 납니다. 이는 실제로 배운 것을 사용할 수 없는 아주 치명적인 부분 이라고 생각하여 질문을 드립니다. [문제 설명] 강의에서 설명해주신대로 위와 같이 Enumerated 를 사용하여 status 를 정의 하였습니다. 말씀해주신대로 value = EnumType.STRING을 사용했습니다. UserStatus 는 당연히 enum 타입으로 했구요. @Column(name = "status", length = 32) @Enumerated(value = EnumType.STRING) private UserStatus status; 이때 status 가 있는 테이블은 아래와 같은 SQL문으로 생성하였습니다. VARCHAR(255)로 생성한 점을 자세히 봐주세요! dbms: MySQL CREATE TABLE user ( `id` BIGINT NOT NULL AUTO_INCREMENT, `status` VARCHAR(255) NOT NULL check (status in ('CREATED', 'WITHDRAW')), PRIMARY KEY (id) ); 또한 application-yml 에는 아래와 같이 ddl-auto 를 validate 로 하였습니다. jpa: hibernate: ddl-auto: validate properties: hibernate: format_sql: true show-sql: true 하지만 이를 실행하면 아래와 같은 status의 타입 오류 에러 가 나옵니다. Schema-validation: wrong column type encountered in column [status] in table [user]; found [varchar (Types#VARCHAR)], but expecting [enum ('created','withdraw') (Types#ENUM)] 이는 db의 status 의 타입이 enum 이길 기대했지만 실제로는 VARCHAR이기 때문에 에러가 발생한다는 것입니다. (ddl-auto의 validate에 의해 검증 수행) MySQL에서 타입에 enum을 적용하면 해결되지만 쓰는 것을 최대한 지양 해야 한다고 알고 있습니다. 따라서 mysql 의 status 컬럼의 타입을 enum 대신 column 타입을 varchar(255)로 두고 사용 하려고하는데 위와 같은 에러가 나서 실행이 되지 않습니다. ddl-auto : none 으로 설정하면 임시적으로 실행은 할 수 있지만 validate 로 검증을 항상 진행하려고 합니다. [질문 내용] 1. mysql의 타입을 varchar로 두고, ddl-auto: validate 를 사용하면서 에러 없이 실행할 수 있는 방법이 궁금합니다. 2. ddl-auto : create로 하게 되면 자동 생성되는 sql문에서는 status에 enum 대신 create table user ( id bigint not null, status varchar(255) check (status in ('CREATED', 'WITHDRAW')), primary key (id) ) 위처럼 varchar로 column 속성을 주면서 validate 할때만 에러가 나는것이 이상한 것 같은데 왜 그럴까요? 3. 이를 현업에서는 어떻게 해결하고 계신지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
임준호 댓글 3 좋아요 4 조회수 4194

다형적 참조의 오버라이딩

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다른 분께서 올려주신 질문 글을 읽고 저 또한 같은 의문이 생겼지만, 그에 대한 답변이 저에게는 잘 와 닿지 않아서 제가 이해한 바를 적어봅니다. 상속 관계에 있는 객체의 메서드를 사용할 때는, 우선 메서드를 사용하는 변수의 참조값을 따라 인스턴스를 찾고, 인스턴스 내의 변수 타입과 동일한 클래스 타입부터 시작하여 메서드를 찾는다고 하셨습니다. 그리고 이렇게 메서드를 찾을 때는 자식 클래스에서 부모 클래스 방향으로 올라가는 것만 가능하고, 부모 클래스에서는 자식 클래스에 대한 정보가 없으므로 반대는 불가능하다고 말씀하셨습니다. 그런데 부모 변수가 자식 인스턴스를 참조하는 다형적 참조의 경우, 메서드를 호출하는 변수의 타입은 부모 클래스이므로 메서드를 부모 클래스에서 찾을 것이고, 부모 클래스는 자식 클래스에 대한 정보가 없는데 어떻게 자식 클래스에 해당 메서드가 오버라이딩이 되었는지 판단하는지 잘 이해가 되지 않았습니다. 제 식대로 내린 결론은 다음과 같습니다. 다형적 참조에서는 변수의 타입은 Parent지만, 이 변수가 참조하는 것은 자식 인스턴스인 Child입니다. 호출된 메서드를 찾을 때는 변수의 타입과 같은 Parent에서 탐색하는 것은 맞지만, 오버라이딩 여부는 Child 인스턴스 내에서 별개로 확인하는 것이고 Parent 인스턴스와는 무관합니다.제가 이해한 방식이 맞나요?

  • java
  • 객체지향
Rim 댓글 2 좋아요 0 조회수 606

단방향 vs 양방향 성능 차이

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 양방향 매핑을 할 때와 단방향 매핑을 할 때의 성능 차이가 있나요? 그러니까, 단방향 매핑을 한 후, 각 엔티티의 레포지토리를 통해 명시적으로 조회하는 것과, 양방향 매핑을 한 후, get을 사용하여 조회하는 상황의 성능 차이에 대해 궁금합니다. 지연로딩을 사용하는 경우, 결국 나가는 쿼리 수는 같지 않나요?

  • java
  • jpa
sangwoo0795 댓글 1 좋아요 0 조회수 586

NextInt 후 NextLine 쓰기

미해결

김영한의 실전 자바 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] System.out.print(i+1+"번째 주문 정보 입력"); System.out.print("상품명 : "); String productName = scanner.nextLine(); System.out.print("가격 : "); int price = scanner.nextInt(); System.out.print("수량 : "); int quantity = scanner.nextInt(); scanner.nextLine(); //입력 버퍼를 비우기 위한 코드 price 입력 받을 때와 quantity 입력 받을 때 둘다 int형으로 입력을 받는데 quantity 수량 받을 때는 nextLine을 해주는데, 왜 price를 받을 때는 nextLine을 안해줘도 되는것일까요?

  • java
  • 객체지향
김혜진 댓글 1 좋아요 2 조회수 433

부모의 부모 인스턴스

해결됨

김영한의 실전 자바 - 기본편

예를 들어 ElectricCar extends Car, Car extends Vehicle의 상속 관계를 가질 때 new ElectricCar()를 호출하면 부모 인스턴스인 Car도 같이 생성하는데 이 경우 Car는 Vehicle 의 상속을 받으니까 Vehicle 인스턴스도 함께 생성되나요?

  • java
  • 객체지향
wk 댓글 1 좋아요 0 조회수 481

인기 태그

인프런 TOP Writers

주간 인기글