강사님 안녕하세요! 강사님 수업 들으면서 나날이 네트워크 지식이 깊어지고 있어 감사할 뿐입니다. 제가 Transport 계층 개념 추가 강의를 듣다가 UDP 통신에 관해 의문이 생겨서 질문 남깁니다. 우선 강의에서 위 그림을 잘못된 것이라 하셨습니다. 저기서 밑에 Response는 다 지워야 되는 게 맞는거라 하셨는데 여기에 의문이 있습니다. 실시간 통신에서 UDP 방식을 쓴다 하셨는데 예를 들어 저희가 네이버에서 실시간 축구 중계를 보기 위해 "중계 시청" 버튼을 클릭하면 그게 Client가 Server에게 "축구 보게 데이터 좀 "라고 Request 요청을 보내는 거라 생각합니다. 그럼 서버가 요청을 받아 클라이언트에게 축구 중계 데이터를 일방적으로 계속 빠르게 데이터를 주는 게 밑의 Response 화살표라고 생각합니다. 제가 생각하는 부분에 있어서 기술적으로나 논리적으로 틀린 게 있을까요?
import requests from bs4 import BeautifulSoup respones = requests.get("https://www.coupang.com/np/categories/498917") html = respones.text soup = BeautifulSoup(html,'html.parser') item = soup.select(".baby-product-link") # 쿠팡 아이템 1페이지 모두 지정 for items in item: print(f"{pn}페이지 입니다=========================") name = items.select("div.name") #리스트 url = items.attrs['href'] #두번째 링크의 href를 추출 그리고 url에 저장 response = requests.get(url, headers={'user-agent' : 'mozila/5.0'}) # headers={'user-agent' : 'mozila/5.0'}로 기계같이 보이는 오류를 막음 #받아온 url들을 다시 불러옴 html = response.text # 받아온걸 텍스트로 변환 soup = BeautifulSoup(html,'html.parser') # 알아보기쉽게 만들어줌 img = soup.attrs[".src"]# 본문이 가지고 있는 자신만의 태그로 지정 print (name,img) pn = pn + 1 이런식으로 응용 해보았는데 실행을 하면 오류도 없고 아무 동작이 없네요 .. 이런 경우 어떻게 해야하죠 ? 터미널에는 아무 글도 안떠요 그냥 파일 경로만 뜹니다
먼저 양질의 퀄리티 강의를 제공해주신 교수님께 감사의 말씀을 드립니다. 그런데, 어떤 강의에서는 동영상에서 소스코드를 왔다갔다 움직이셔서 보고 따라 치기가 힘들더라구요. 혹시 "홍정모 공식 카페"에 따배씨++에 관한 소스코드가 제공되어 있을까요?? 그렇지 않다면, 어디서 리소스를 얻을 수 있을까요? 감사합니다 :)
#include <iostream> #include <vector> #include <cassert> using namespace std; void printVector(vector<int>& temp, const int index) { assert(index >= 3); static_assert(index >= 3, "index should be less than 3");//여기서 컴파일 에러 } int main() { std::vector<int> vec{ 1,2,3,4,5 }; printVector(vec, 3); } static_assert 에서 에러가 나는데 매개변수를 const 상수화 해도 static_assert문에서 에러가 나는 이유가 뭔가요?
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type ' hello.core.discount .DiscountPolicy' available: expected single matching bean but found 2: rateDiscountPolicy,getDiscountPolicy 이 에러가 나서 원인을 찾아보니 AppConfig의 @Bean public DiscountPolicy getDiscountPolicy() { //return new FixDiscountPolicy(); return new RateDiscountPolicy(); } 이 부분과 @Component public class RateDiscountPolicy implements DiscountPolicy {} 이 부분때문에 RateDiscountPolicy 빈이 2개로 등록되어서 그런 것 같아 AppConfig에서 @Bean어노테이션을 주석처리하니 정상적으로 테스트가 됐는데요. 궁금한 점은 AutoAppConfig 에서 AppConfig에 대한 부분은 제외를 시켰는데 왜 중복이 되는가입니다.... @Configuration @ComponentScan( basePackages = "hello.core.member", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) // 기존 AppConfig.java 때문에 컴포넌트 스캔 대상에서 제외시킴 public class AutoAppConfig {}
안녕하세요, JPA 강의 잘 듣고 있습니다. 실전예제2 실습을 진행하면서 아래와 같은 에러 메시지가 발생하였습니다. H2 데이터베이스에는, ORDER 테이블을 제외한 다른 테이블(+인덱스 포함) 및 시퀀스는 생성되었으며, ORDER 테이블만 생성되지 않았습니다. 코드 진행 시 어떤 실수를 했기에 발생한 문제인지 알 수 있을까요? 코드 압축파일도 첨부합니다. ( 링크 ) 2월 08, 2023 4:53:12 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@40712ee9] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 2월 08, 2023 4:53:12 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table ORDER if exists" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table ORDER if exists" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:375) at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings(SchemaDropperImpl.java:359) at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata(SchemaDropperImpl.java:241) at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop(SchemaDropperImpl.java:154) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:126) at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:112) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:144) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpabook.jpashop.JpaMain.main(JpaMain.java:12) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a drop table [*]ORDER if exists"; expected "identifier"; SQL statement: drop table ORDER if exists [42001-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.getSyntaxError(DbException.java:261) at org.h2.command.Parser.readIdentifier(Parser.java:5656) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5616) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5645) at org.h2.command.Parser.parseDrop(Parser.java:2188) at org.h2.command.Parser.parsePrepared(Parser.java:776) at org.h2.command.Parser.parse(Parser.java:689) at org.h2.command.Parser.parse(Parser.java:661) at org.h2.command.Parser.prepareCommand(Parser.java:569) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631) at org.h2.server.TcpServerThread.process(TcpServerThread.java:288) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:480) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:237) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more 2월 08, 2023 4:53:12 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@34f392be] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 2월 08, 2023 4:53:12 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " create table ORDER ( ORDER_ID bigint not null, orderDate timestamp, status varchar(255), MEMBER_ID bigint, primary key (ORDER_ID) )" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table ORDER ( ORDER_ID bigint not null, orderDate timestamp, status varchar(255), MEMBER_ID bigint, primary key (ORDER_ID) )" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpabook.jpashop.JpaMain.main(JpaMain.java:12) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a create table [*]ORDER (\000d\000a ORDER_ID bigint not null,\000d\000a orderDate timestamp,\000d\000a status varchar(255),\000d\000a MEMBER_ID bigint,\000d\000a primary key (ORDER_ID)\000d\000a )"; expected "identifier"; SQL statement: create table ORDER ( ORDER_ID bigint not null, orderDate timestamp, status varchar(255), MEMBER_ID bigint, primary key (ORDER_ID) ) [42001-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.getSyntaxError(DbException.java:261) at org.h2.command.Parser.readIdentifier(Parser.java:5656) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5616) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5645) at org.h2.command.Parser.parseCreateTable(Parser.java:9253) at org.h2.command.Parser.parseCreate(Parser.java:6784) at org.h2.command.Parser.parsePrepared(Parser.java:763) at org.h2.command.Parser.parse(Parser.java:689) at org.h2.command.Parser.parse(Parser.java:661) at org.h2.command.Parser.prepareCommand(Parser.java:569) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631) at org.h2.server.TcpServerThread.process(TcpServerThread.java:288) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:480) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:237) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more 2월 08, 2023 4:53:12 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " alter table ORDER add constraint FKg2e0q3p7qbn6vhhwweifmdmd5 foreign key (MEMBER_ID) references MEMBER" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " alter table ORDER add constraint FKg2e0q3p7qbn6vhhwweifmdmd5 foreign key (MEMBER_ID) references MEMBER" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:375) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpabook.jpashop.JpaMain.main(JpaMain.java:12) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a alter table [*]ORDER \000d\000a add constraint FKg2e0q3p7qbn6vhhwweifmdmd5 \000d\000a foreign key (MEMBER_ID) \000d\000a references MEMBER"; expected "identifier"; SQL statement: alter table ORDER add constraint FKg2e0q3p7qbn6vhhwweifmdmd5 foreign key (MEMBER_ID) references MEMBER [42001-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.getSyntaxError(DbException.java:261) at org.h2.command.Parser.readIdentifier(Parser.java:5656) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5616) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5645) at org.h2.command.Parser.parseAlterTable(Parser.java:8476) at org.h2.command.Parser.parseAlter(Parser.java:7548) at org.h2.command.Parser.parsePrepared(Parser.java:747) at org.h2.command.Parser.parse(Parser.java:689) at org.h2.command.Parser.parse(Parser.java:661) at org.h2.command.Parser.prepareCommand(Parser.java:569) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631) at org.h2.server.TcpServerThread.process(TcpServerThread.java:288) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:480) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:237) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more 2월 08, 2023 4:53:12 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " alter table ORDER_ITEM add constraint FK1pnpc71663ei4208mahu6w8os foreign key (ORDER_ID) references ORDER" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " alter table ORDER_ITEM add constraint FK1pnpc71663ei4208mahu6w8os foreign key (ORDER_ID) references ORDER" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:375) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpabook.jpashop.JpaMain.main(JpaMain.java:12) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a alter table ORDER_ITEM \000d\000a add constraint FK1pnpc71663ei4208mahu6w8os \000d\000a foreign key (ORDER_ID) \000d\000a references [*]ORDER"; expected "identifier"; SQL statement: alter table ORDER_ITEM add constraint FK1pnpc71663ei4208mahu6w8os foreign key (ORDER_ID) references ORDER [42001-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.getSyntaxError(DbException.java:261) at org.h2.command.Parser.readIdentifier(Parser.java:5656) at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:5616) at org.h2.command.Parser.parseReferences(Parser.java:9180) at org.h2.command.Parser.parseTableConstraintIf(Parser.java:9114) at org.h2.command.Parser.parseAlterTable(Parser.java:8479) at org.h2.command.Parser.parseAlter(Parser.java:7548) at org.h2.command.Parser.parsePrepared(Parser.java:747) at org.h2.command.Parser.parse(Parser.java:689) at org.h2.command.Parser.parse(Parser.java:661) at org.h2.command.Parser.prepareCommand(Parser.java:569) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631) at org.h2.server.TcpServerThread.process(TcpServerThread.java:288) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.engine.SessionRemote.readException(SessionRemote.java:637) at org.h2.engine.SessionRemote.done(SessionRemote.java:606) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:480) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:237) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:223) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more 2월 08, 2023 4:53:12 오후 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@12968227' 2월 08, 2023 4:53:12 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test]
DB에 Insert 하려고 할 때 TypeOrm에서 Default 값을 넣어주지 않아 에러가 발생했습니다. (CreatedAt, UpdatedAt 컬럼) 그래서 처음에는 Database에서 Table에 Default값을 세팅하고 사용했는데요. 어떤 분이 질문 하신걸 보고 다시 수정해 보는 중입니다. 강의에 있는 소스는 @Column("datetime", { name: "createdAt", default: () => "CURRENT_TIMESTAMP"}) ... 이렇게 적혀있더군요. 근데 Github의 소스에는 @CreateDateColumn() createdAt: Data; 로만 적혀있었습니다. 그리고 @CreatedDateColumn()은 Special Column이라고 아래와 같이 설명이 있던데요. @CreateDateColumn is a special column that is automatically set to the entity's insertion date. You don't need to set this column - it will be automatically set. 저는 이 얘기를 TypeOrm에서 자동으로 입력해 주는 값으로 이해했는데... 막상 해보면 안되더라고요. 그래서... 만약 Github의 소스와 같이 @CreateDateColumn... 으로 사용하려면 Database에서 Default값을 설정해주어야 하는지 (그렇다면 @CreateDateColumn..은 자동 세팅되는 것이 아니겠죠...) 아니면 영상 강의 상처럼... default() => "CURRENT_TIMESTAMPT"... 로 사용해야 할지요 (물론 영상 강의의 소스는 Database에 그렇게 설정되어 있으니 그렇게 나온것이겠지만요..)
안녕하세요, 강의 잘 듣고 있습니다. 지금까지 발생한 질문들에 대해서 문의드리려 합니다. Transactional 을 주석처리해도 해당 StockService 와 Repository 인터페이스가 잘 동작하는 모습을 확인할 수 있습니다. (듣다가도 당연히 오류날줄 알았습니다)Data Jpa 를 활요하지 않고 일반적인 Jpa Repository 를 직접 만들어서 (em을 사용하는) 시도를 해봤는데 Transactional 이 없으니 예상했던 오류가 그대로 발생 하는 것 같았습니다. JpaRepository 인터페이스에 들어가보니, @NoRepositoryBean 이라는 어노테이션만이 붙어 있고, 그냥 다른 Repo를 만들지 못하도록 달아져 있는 것이라는 것을 확인하였습니다. 작동하는 이유가 Data Jpa 가 제공해주는 Repository interface 를 사용해서 인 것 같은데, 어떤 원리로 작동이 가능한건지 알 수 있을까요? Synchronize 를 사용해도 우선 동작을 하는 이유는 @Transactional 의 동작 방식 때문이라고 설명해주시며, 예시 클래스를 짜서 보여주셨습니다. public void decrease(){ startTransaction(); myStockService.decrease(); endTransaction(); } 트랜젝션이란 DB와의 통신을 위해 연결을 짓는 행위로 알고 있는데, DB는 공유 자원인 만큼 당연히 동시성 제어가 되어 있어야 하는 것이 아닌가 생각이 들었습니다. 가령, 위에서 startTx, endTx 를 하는 부분에서 세마포어 처리 등을 해서 교착상태가 발생하지 않도록 설계가 되어 있어야 하지 않나 싶은 생각이 들었는데, @Transactional 에서 그런 것을 처리 하지 않아서 이와 같은 상황이 발생하는게 맞을까요? (강사님한테 문의드리는게 좀 이상한 부분일 수도 있지만, 왜 그런 처리를 안해놨을지 궁금.. 합니다) 감사합니다.