========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 중에 application.properties 파일이 없는데 로고가 적용 되는 이유를 알고 싶습니다. 강의 내용을 따라서 코드를 작성하고 test 를 돌리니깐 저는 적용이 되지 않더라고요 그래서 resoures/ application.properties 를 복사해서 test 안에 붙여넣기 하니깐 로고가 찍혀서 나오는 걸 확인 했습니다. 없을 경우에도 원래 가능한 건지 아니면 제가 한게 맞은 건지 알고 싶습니다. logging.level.org.springframework.transaction.interceptor=TRACE logging.level.org.springframework.jdbc.datasource.DataSourceTransactionManager=DEBUG #JPA log logging.level.org.springframework.orm.jpa.JpaTransactionManager=DEBUG logging.level.org.hibernate.resource.transaction=DEBUG #JPA SQL logging.level.org.hibernate.SQL=DEBUG test 안에 application.propertie 에 포함되지 않았을 때 2023-11-07T08:29:26.134+09:00 INFO 14876 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 외부 트랜잭션 시작2023-11-07T08:29:26.139+09:00 INFO 14876 --- [ Test worker] hello.springtx.propagation.BasicTxTest : outer.isNewTransaction()=true2023-11-07T08:29:26.139+09:00 INFO 14876 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 내부 트랜잭션 시작2023-11-07T08:29:26.140+09:00 INFO 14876 --- [ Test worker] hello.springtx.propagation.BasicTxTest : inner.isNewTransaction()=true2023-11-07T08:29:26.140+09:00 INFO 14876 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 내부 트랜잭션 롤백2023-11-07T08:29:26.141+09:00 INFO 14876 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 외부 트랜잭션 커밋 test 포함 될 때 외부 트랜잭션 시작 2023-11-07T10:18:23.081+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Creating new transaction with name [null]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT 2023-11-07T10:18:23.083+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Acquired Connection [HikariProxyConnection@369947173 wrapping conn0: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] for JDBC transaction 2023-11-07T10:18:23.085+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Switching JDBC Connection [HikariProxyConnection@369947173 wrapping conn0: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] to manual commit 2023-11-07T10:18:23.085+09:00 INFO 23704 --- [ Test worker] hello.springtx.propagation.BasicTxTest : outer.isNewTransaction()=true 2023-11-07T10:18:23.085+09:00 INFO 23704 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 내부 트랜잭션 시작 2023-11-07T10:18:23.086+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Suspending current transaction, creating new transaction with name [null] 2023-11-07T10:18:23.086+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Acquired Connection [HikariProxyConnection@1178214215 wrapping conn1: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] for JDBC transaction 2023-11-07T10:18:23.086+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Switching JDBC Connection [HikariProxyConnection@1178214215 wrapping conn1: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] to manual commit 2023-11-07T10:18:23.086+09:00 INFO 23704 --- [ Test worker] hello.springtx.propagation.BasicTxTest : inner.isNewTransaction()=true 2023-11-07T10:18:23.086+09:00 INFO 23704 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 내부 트랜잭션 롤백 2023-11-07T10:18:23.086+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Initiating transaction rollback 2023-11-07T10:18:23.086+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Rolling back JDBC transaction on Connection [HikariProxyConnection@1178214215 wrapping conn1: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] 2023-11-07T10:18:23.087+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Releasing JDBC Connection [HikariProxyConnection@1178214215 wrapping conn1: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] after transaction 2023-11-07T10:18:23.087+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Resuming suspended transaction after completion of inner transaction 2023-11-07T10:18:23.087+09:00 INFO 23704 --- [ Test worker] hello.springtx.propagation.BasicTxTest : 외부 트랜잭션 커밋 2023-11-07T10:18:23.087+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Initiating transaction commit 2023-11-07T10:18:23.088+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Committing JDBC transaction on Connection [HikariProxyConnection@369947173 wrapping conn0: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] 2023-11-07T10:18:23.088+09:00 DEBUG 23704 --- [ Test worker] o.s.j.d.DataSourceTransactionManager : Releasing JDBC Connection [HikariProxyConnection@369947173 wrapping conn0: url=jdbc:h2:mem:858919b0-1ec2-4a72-8bb2-e84223172ee9 user=SA] after transaction 정상적으로 찍혀서 나오는 걸 볼 수 있어요 제가 제대로 못 본 건지 강의 내용에서는 application.properties 가 main 코드 안에 만 작성이 되어 있었는데 로고가 나오던데 왜 그런지 알고 싶어요
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요. 우선 양질의 kotlin과 jpa관련 강의제공해주셔서 감사합니다. 덕분에 어느정도 갈피를 잡을 수있었어요. 어설픈 질문이지 않을까 걱정도 되지만, 조심스레 여쭤봅니다. [21강에 사용되는 companion object 의 fun fixture ] 해당 메소드는 객체가 생성될때 기본값을 가지도록 되어있는데 해당방식은 실제 프러덕션코드 에서도 적용할 수 있는 방식일까요? 만약 그렇다면 다음과같이 직접적으로 field의 초기값을 설정하는것과 어떻게다른지 궁금합니다. @Entity class Book( val name: String = "", @Enumerated(EnumType.STRING) val type: BookType = BookType.COMPUTER, @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, ) { init { if (name.isBlank()) { throw IllegalArgumentException("이름은 비어 있을 수 없습니다") } } fun generateIntegrateName(): String { return type.toString() + name } companion object { fun fixture( name: String = "책 이름", type: BookType = BookType.COMPUTER, id: Long? = null, ): Book { return Book( name = name, type = type, id = id, ) } } } 만약 test를 위해서만 존재하는 코드라면, entity class안에 test만을 위한코드가 존재하는게 자연스러운 구조인가요? [entity와 관련된 값 구성 강제하기] entity filed에는 정의되지 않아 Database에 column으로존재하진않지만, dto로 반환하는 integrateName의 생성을 강제하고 싶을때는 위코드의 fun generateIntegrateName 을 entity에 구성하여 dto에서 사용되는것이 올바른 방법인지 궁금합니다. data class BookInfoResponse( val integrateName: String, ) { companion object { fun of(entity: Book): BookInfoResponse { return BookInfoResponse( integrateName = entity.generateIntegrateName() ) } } } val book = bookRepository.findByName("이상한 나라의 엘리스") ?: throw IllegalArgumentException("잘못된 요청값입니다.") val result = BookInfoResponse.of(entity = book).integrateName 강의내용과 검색등의내용을 짜집기해서 사용해보고있는데 막상 구현을하고 보니 적절한 방법인지 알길이 없어서 고민하다 질문드립니다. 시간 내어주셔서 감사드립니다.
안녕하세요, 강의 잘 듣고 있습니다. train_detector(model, datasets, cfg, distributed=False, validate=True) 실행 시키면, BrokenPipeError : [Errno 32] Broken pipe에러가 발생 하는데.. 이유를 잘 모르겠습니다 ㅜ
2022 30분 요약 강좌 시즌 1 : HTML, CSS, Linux, Bootstrap, Python, JS, jQuery&Ajax
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. codesandbox 문서 버튼이 안보여요 코딩실습을 해야하는데 문서 버튼이 아예 없어서 어딜 눌러서 코딩을 해야할지...
안녕하세요. 이해가 잘 안가는 게 하나 있어서 질문드립니다. DB 포맷을 보면 부가정보와 지번 정보가 월변동분 포맷에 변경사유코드 필드가 없고 일변동분에만 변경사유코드가 있는데요. 이런 구조면 전체분대비 뭐가 바뀌었는 지를 모를텐데... 혹시, 지번정보, 부가정보의 경우는 월변동분 파일을 무시하고 일변동분을 누적해서 사용하라는 의미인걸까요?? 지번_변동분.TXT 에서 몇개 관리번호로 전체분의 번지_ㅇㅇ.TXT와 비교시 행전체가 동일해서 변경분이라고 생각이 안되서요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] Scope 하여 Autowired를 하면 빨간 하이라이트로 뜨면서 에러 메시지가 표시 됩니다. 테스트는 잘되는데 왜 메시지가 표시되는지 모르겠습니다...
안녕하세요. A 테이블, B 테이블이 있는데 1:N 구조이며, 연관관계는 맺지 않았습니다. 연관관계 없이 JPQLQuery<A> query = from( A ).leftJoin( B ).on(A.B테이블Id.eq(B.id) ) 하고 Projections.constructoer 방식으로 조회한 결과를 Dto로 받고있는데요, B테이블에 데이터가 2개일때 중복으로 데이터가 나와 페이징처리도 제대로 되지 않는데 이럴경우 어떻게 해결을 해야할까요??
오늘 막 사서 시작했습니다. 오류가 매번 다른게 발생하는데 검색하면서 조금씩 해결해보고있습니다 올려주신 xml파일도 복사 붙쳐넣기하고 런 실행하면 계속 에러가 발생해서 문득 생각난게 강좌하신버전은 돌핀이고 저는 기린버전으로 실행하고있는게 여기에서 생기는 문제가 있을까하고 궁금해서 여쭤봅니다
안녕하세요. 저는 재귀로 했다가 시간초과 나서 BFS로 시도를 해보았는데 여러 예제를 넣으면 IDE상에서는 잘 됩니다. 그런데 백준에 넣으면 자꾸 메모리 초과라고 하면서 되지가 않네요. 변수도 별로 없고 그렇게 복잡한 코드도 아닌데 왜 안될까요. 해설강의 봤는데 오히려 제 코드가 시간도 짧고 메모리는 훨씬 적게 먹을것 같은데... http://boj.kr/1fdf197d568c42be83e76b55ca24889b -- 해결했습니다. http://boj.kr/1455d3ec4d174bbd939b9ce22f57a763 visitied로 나중에 재방문하는 지점들을 처리하지 않게 만드니까 되네요.
안녕하세요, 질문 : 타입스크립트, 클래스에서 사용하는 변수에 초기값을 빈 객체({})로 정의할 경우, 해당 빈 객체의 타입을 정의할 때, 타입단언, as를 사용하지 않고, 다른 방법으로 정의할 수 있을까요? 다음과 같은 코드가 있습니다. interface Props{ email:string; password:string } class Store<State>{ // state에 초깃값으로 빈객체{}를 설정할때, // 빈 객체{}에 대한 타입이슈 public state = {} as State ..중략.. } export default new Store<Props>({ email:'hello@hello.com', password:'hello' }) Store란 클래스에서 state라는 변수를 빈 객체를 값으로 초기값으로 정의하였습니다. 즉, 멤버변수 state는 빈객체{}를 초기값으로 사용할 것이며 멤버변수 state는 인터페이스 Props 형태를 따르도록 규정하고 싶습니다. public state = {} as State 빈객체{}의 타입을 정의할때, 타입단언 as를 사용하지 않고 다른 방법이 있을까요? 어떤 값을 빈 객체를 초기값으로 시작한다고 코드 작성할때, as, 타입단어의 유혹?을 받곤 합니다. {}객체에 대한 타입정의에 대해 검색해보니 Record타입으로 정의하는 내용이 나와 다음과 같은 코드로 변경해보았는데, public state:Record<State,string> = {} 다음과 같은 에러가 발생했습니다. reduce 함수를 사용할 때도, 초깃값을 빈객체{}로 사용할 경우에도 as를 사용해, 누산기(acc)의 타입을 as로 단언 한 코드를 종종 보곤 하는데요, 위와 같이 어떤 변수에 빈 객체{}를 초기값으로 혹은 값으로 할당하고 타입을 정의해야 할때, 타입단언을 쓰지 않고, 다른 방법이 있는지 문의 드립니다!
https://www.acmicpc.net/source/68946605 강사님께서 적어주신 코드를 컴파일러에 실행해봤더니 아래와 같은 오류가 나옵니다.a.cpp:10:21: warning: array subscript is of type 'char' [-Wchar-subscripts] for(char a : s) cnt[a]++; ^~코드는 강사님과 동일합니다. 백준에선 통과했지만 컴파일러에서는 오류가 나오네요. https://www.acmicpc.net/source/68946669 이건 제 컴파일러에서 오류가 안나오게 만든 코드인데요.char 타입이 음수 값을 가질 수 있어서, 그런가 싶어서 일단 'char'를 'unsigned char'로 변환하였습니다.근데 오류의 정확한 원인을 모르겠고,또 남들은 문제가 없어보이는데, 제 컴파일러에서만 오류가 나는 이유를 모르겠어서 여쭤봅니다.
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
안녕하세요. 해당 강의에 대한 질문이라기 보다 현재 우리가 구현한 인증/인가 구현 방법에 대한 질문이 있습니다. accessToken은 만료되었을 시 refreshToken을 재발급 받을 수 있도록 우리가 API를 만들었습니다. 따라서 클라이언트 측에서 accessToken 만료 시 refreshToken을 재발급하는 API를 요청하고 갱신을 할 것이라고 생각됩니다. 하지만 refreshToken을 갱신하는 API는 refreshToken이 만료되었을 시에는 리프레쉬 토큰을 갱신하지 못합니다. 이 때 사용자에게 재로그인을 시킨다는 기획이라면 문제가 없을 것 같습니다. (재로그인이라면 리프레시 토큰 갱신 API는 불필요할 것으로 생각됩니다.) 그렇다면 리프레시 토큰을 갱신하는 API는 클라이언트 입장에서 언제 호출을 해야되나요? 사용자가 우리 서비스를 이용한다면 주기적으로 리프레시 토큰을 갱신하는 API를 호출하고 리프레시 토큰을 갱신을 해놔야하나요? 정답이야 없겠지만 스탠다드한 방법이 궁금합니다!
해당 질문 에 대한 답변을 보고 혼동이 되어서 질문드립니다. 분산 락의 완전한 정의를 찾을 수가 없어서 다음 두 상황이 혼동되는 것 같습니다. 1. 웹 애플리케이션 서버가 여러대인 경우, 이들간의 동시성 문제를 해결하기 위해 사용되는 Lock 2. 스케일 아웃된 DB 환경에서 동시성 문제를 해결하기 위해 사용되는 Lock jeoningu님의 질문과 이에 대한 답변에 따르면, 1번 상황은 분산락이 아니며(낙관적 락, 비관적 락은 분산락이 아닌 것처럼 설명해 주셨으므로), 2번 상황이 분산락인 것 처럼 되는 것 같습니다. 그런데 이런저런 자료를 찾아보다보니, 1번 상황 역시도 분산 락의 개념에 포함되는 것 같습니다. (즉 낙관적 락과 비관적 락도 분산 락에 포함됨) 그래서 제 스스로 다음과 같은 결론을 내렸는데, 이게 올바른 것인지를 확인할 방법이 없어서 선생님께 조언을 구하고 싶어 질문 드립니다. " 1번과 2번 모두 분산락의 개념이다. 낙관적 락과 비관적 락은 다중 애플리케이션의 동시성을 제어할 수 있는 분산 락을 구현할 수 있는 방법 중 하나이다. 그러나 여러대의 DB를 사용하는 경우 이들로는 분산락을 구현할 수 없게 된다. 이러한 경우 레디스와 같은 Lock 을 위한 DB를 하나 두어 이를 통해 분산락을 구현하여 사용해야 한다. " 잘못 이해한 부분이 있다면 지적해주시면 감사하겠습니다..!