묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
Docker Compose 배포 시 Jasypt 암호화된 속성 복호화 문제 해결 방법
문제Docker Compose 환경에서 애플리케이션 배포 후, 데이터베이스에 연결할 때 암호화된 설정값을 복호화하지 못해 연결에 실패하는 문제.원인@EnableEncryptableProperties 어노테이션을 누락한 경우, 애플리케이션이 암호화된 속성을 복호화하지 않고 데이터를 사용하려고 시도합니다. 이로 인해 암호화된 패스워드로 데이터베이스에 접속하려 시도하면서 연결 오류가 발생하고, 컨테이너가 종료됩니다.해결 방법JasyptConfiguration.kt 파일에 @EnableEncryptableProperties 어노테이션을 추가합니다.import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties import org.jasypt.encryption.StringEncryptor import org.jasypt.encryption.pbe.PooledPBEStringEncryptor import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration @Configuration @EnableEncryptableProperties // 추가해주세요. class JasyptConfiguration { @Bean("jasyptStringEncryptor") fun stringEncryptor(): StringEncryptor { val encryptor = PooledPBEStringEncryptor() val config = SimpleStringPBEConfig() config.password = System.getenv("jasypt.encryptor.key") config.algorithm = "PBEWithMD5AndDES" config.setKeyObtentionIterations("1000") config.setPoolSize("1") config.providerName = "SunJCE" config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator") config.setIvGeneratorClassName("org.jasypt.iv.NoIvGenerator") config.stringOutputType = "base64" encryptor.setConfig(config) return encryptor } } 예제 소스 코드 Github에서 확인하기
-
미해결카프카 완벽 가이드 - ksqlDB
시스템 타임존과 카프카 Stream 타임존이 불일치합니다.
카프카 타임존은 다음과 같이 9시간 전인 시간인 데이터가 들어오고있습니다. 시스템 타임존은 다음과 같습니다. 동기화 방법을 좀 찾아봤는데 안되서 질문드립니다.kafka/config/server.propertieslog.message.timestamp.type=CreateTimeKAFKA_JVM_PERFORMANCE_OPTS="-Duser.timezone=Asia/Seoul"
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
소득세법 파일
처음에 어떤프로그램으로 열고 다시 세이브할때 어떻게 하나요?word 읽기기능만 있도록 해서 리드했는데 다시 세이브 기능은 비활성화 됩니다.
-
미해결김영한의 실전 자바 - 중급 2편
섹션 6 -문제와 풀이 2 구조도 그림
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!섹션 6 -문제와 풀이 2 에 나온 문제를 간략하게 그림으로 도식화해보았습니다.제가 이해하고 있는게 맞는지 확인 부탁드려도 괜찮을까요?감사합니다.
-
미해결리눅스 커널의 구조와 원리: 디버깅 - Advanced 실전 [저자 직강 1부-3]
crash utility build 오류
얀녕하세요.교육과정을 라즈베리 CM4 에서 따라하고 있습니다. 개발환경마다 빌드오류가 발생할 수 있다고 생각되기에, 모든것을 대응해 주실 수 없을거라 생각됩니다만, 혹시 답변이 가능한지 문의 드립니다.. $uname -aLinux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux $make ARCH=arm64TARGET: ARM64 CRASH: 8.0.6++ GDB: 10.2make[3]: *** No targets specified and no makefile found. Stop.make[2]: *** [Makefile:278: rebuild] Error 2make[1]: *** [Makefile:266: gdb_merge] Error 2make: *** [Makefile:258: all] Error 2 강사님의 개발환경을 공유해 주시면 맞춰서 다시 검토해보겠습니다.보드:설치 OS 버전: 감사합니다.
-
미해결유니티초보자를 위한 드래곤플라이트 만들기
UI Text 추가하는 강의부분 앞부분이 잘렸습니다. GameManager script 의 상단에 using UI 추가해야합니다.
UI Text 추가하는 강의부분 앞부분이 잘렸습니다. GameManager script 의 상단에 using UI 추가해야합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmdetection 다운에 문제가 있는 것 같습니다.
안녕하세요 강의 정말 잘 듣고있습니다!다름이 아니라 기존에는 잘 작동되었던 mmdetection 다운이 갑자기 안되서 말씀드립니다.열심히 구글링해봤는데 안나와서 여기에 올려봅니다.torch와 torchvision 설치시에 error가 발생합니다.여기서 발생하는 error는 pip depency에러가 아닙니다.최종적으로 mmdet.apis 호출에 error가 발생합니다.에러 내용은 import error로 "ImportError: libcudart.so.11.0: cannot open shared object file: No such file or directory" 이렇게 나타납니다.
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
앱에 광고를 다는 타이밍이 궁금합니다.
안녕하세요 강의 잘듣고 있습니다!질문이 몇가지가 있습니다. 내 앱을 유료로 홍보할때 google ads 로 ios도 홍보가 가능하려나요? 의견이 궁금합니다.앱출시때 광고를 넣는 타이밍이 궁금합니다. admob의 경우 광고를 출시된 앱에만 붙일 수 있는것으로 보이던데 맞을까요? 신규앱을 출시할때 광고를 언제 개발해서 붙이는지 공유 가능하실까요? 제가 이해한대로라면 출시하고 난뒤 빠르게 광고를 붙이시고 업데이트 할것 같은뎁, 궁금합니다. (요약: 앱을 출시전에도 광고를 붙일 수 있나요?)
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
(강의 외 질문입니다) 점프를 하면 캐릭터가 바닥 밑으로 사라집니다.
수업 시간에 배운 걸 토대로 애니메이션도 설정을 해보았습니다. 이동하는 것도 점프하는 것도 되는데 점프하고 나서 착지를 하면 캐릭터가 바닥을 뚫고? 사라졌다가 다시 올라옵니다. 말로 설명하기가 애매해서 사진을 첨부하겠습니다.(영상이 첨부가 안되어서..)이렇게 점프를 하면착지하면서 바닥을 뚫어버립니다. 그 후 갑자기 뿅하고 나타납니다..어떻게 해결을 해야할 지 모르겠습니다..
-
미해결개발자에게 필요한 로그 관리
예외발생하면 printstacktrace()를 사용하시나요 ?
구글에 쳐보니 예외가 터지면 printstacktrace()는 지양하고 getStackTrace() 를 사용하라는데의견이 궁금합니다 !
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
count에 volatile을 붙이는 이유
문제가 되는 부분은 main 쓰레드와 work 쓰레드에서 flag 변경/확인 타이밍이 맞지 않아서인데 왜 count에도 volatile 키워드를 붙여주는 것인가요? flag에만 volatile을 붙인 경우에도 정상 동작하긴 합니다..
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
try catch
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요.현재 '데이터베이스와 연결' 3:57를 보고있는데요화면과 똑같이 작성한 후 알트+ 엔터로 선생님과 같이 Surround로 시작하는 try/catch를 적용하려는데 저는 위 화면처럼 try catch가 아닌 try with resource block이 나오는데저걸 누른 후에도이런식으로 이해하기 어려운 제안이 생기고 catch가 없이 나오는데요어떤 연유로 이런식으로 되는건지 궁금합니다지금 이대로 가면 강의와 제가 쓴 코드가 다를 것 같아 직접 쳐보려고 하는데 뭐가 어떻게 바뀌어서 이렇게 되는지 알려주세요그리고 받아적는 와중에도이렇게 되는데 누르면강의처럼 cath(SQLException e) {e.printStackTrace();}이렇게가 아니라이렇게 되네요 도대체 뭐가 어떻게 바뀐거고 뭐가 맞는건지 모르겠습니다 ㅠ이부분에서 런타임익셉션으로 떤진다고 하셨는데 정작 적은 건 IllegalStateException(e);인데저는 런타임 익셉션으로 나옵니다 ㅠ
-
미해결Next + React Query로 SNS 서비스 만들기
재게시 관련 궁금한 사항
재게시를 클릭하면 Reposts 부분과 count부분을 수정하고 unShift함수를 사용해서 pages[0]에 글정보를 추가하게 되는데 재게시를 클릭할 때 마다 pages[0]에 {user:{},Original:{}} 부분이 계속 추가되는게 맞나요 ?인피니트쿼리는 한 페이지당 최대 10개의 객체를 받아오는 것으로 알고있는데 인피니트 쿼리랑은 상관 없는건가요 ?
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
MBR 분석 강의에서 궁금증이 있어서 질문드립니다^^
강의 35:00 이후에 MBR 파티션 테이블 구성중에 Starting LBA Addr 설명 해주시면서 데이터가 [ 00 08 00 00 ] 인데 이게 128번 섹터를 가리킨다라고 하셨는데 0x800 은 2048번 섹터인거 같은데 제꺼 USB로 실습할때도 제 데이터는 [ 38 00 00 00 ] 이였어서 0x38 = 56번 섹터 → 56 * 512 = 28,672 = 0x7000 해서 HxD 에서 0x7000 으로 이동하니깐 BR로 보이는 데이터가 나왔거든요! 그래서 2048번 섹터가 맞는거 같은데 제가 잘못이해한건지 아님 다른 이유가 있어서 128번 섹터가 되는건지 궁금합니다
-
해결됨Excel RPA로 데이터분석 자동화_웹스크래핑 편
이 강의를 실습과 활용하기에는 UiPath 무료 버전으로도 충분한가요?
선생님 안녕하세요.UiPath를 아직 해본 적이 없는데, UiPath는 요금제가 무료 버전과 유료 버전으로 나뉜다고 알고 있습니다.무료 버전은 개인이나 소규모 프로젝트에 적합하다고 들었는데,본 강의에서 다루는 내용을 실습하고 활용하기에는 UiPath 무료 버전으로도 충분한가요?이 강의를 배우고나서 실제 회사 실무에서 UiPath를 이용하려면 유료버전이 필수적인지가 궁금합니다.제가 말하는 회사 실무란 전사적인 업무 자동화 이런 건 아니고, 회사에서 담당 업무를 할 때 업무 효율 향상 정도 수준을 의미합니다. 이 정도 수준에는 UiPath 무료버전으로도 충분히 활용성이 좋은지요?향후 UiPath 활용을 위해 고민될 정도의 비용이 수반된다면, 오히려 처음부터 파이썬 등 다른 대안을 공부해 보려고 합니다. 감사합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ProductAdminEx | Switch 사용
package study.array.ex; import java.util.Scanner; public class ProductAdminEx { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] productNames = new String[10]; int[] productPrice = new int[10]; int productCount = 0; while (true) { System.out.println("1. 상품 등록 | 2. 상품 목록 | 3. 종료"); System.out.print("메뉴를 선택하세요 : "); int option = sc.nextInt(); sc.nextLine(); switch(option) { case 1: if(productCount != 10){ System.out.print("상품 이름을 입력하세요 : "); productNames[productCount] = sc.nextLine(); System.out.print("상품 가격을 입력하세요 : "); productPrice[productCount] = sc.nextInt(); productCount++; } else System.out.println("더 이상 상품을 등록할 수 없습니다."); break; case 2: if(productCount != 0) { for (int i = 0; i < productCount; i++) { System.out.print(productNames[i] + " -> " + productPrice[i]); System.out.println(); } } else { System.out.println("등록된 상품이 없습니다."); } break; case 3: System.out.println("프로그램을 종료합니다."); System.exit(0); } } } } 마지막 문제풀이때 for문을 사용하지 않고 switch문을 사용하여서 풀었는데 어떠한 상황에서 FOR문을 사용해야 더 개선된 코드인지 SWITCH문을 사용해야 더 개선된 코드인지 분별이 잘 안갑니다. 이런 문제풀이때는 어떤걸 사용해야 하나요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
FrontControllerV1 JSP 404 오류
FrontControllerV1에서 http://localhost:8080/front-controller/v1/members/new-form 접속해도 404 Not Found 오류가 뜹니다. 섹션 4에서 basic.html, index.html도 뜨지 않아서 resources/static 폴더 내부에 옮기니 잘 떴었습니다. 그런데 지금은 다시 webapp 폴더로 옮기고 나니 http://localhost:8080 으로 접속하면 "회원가입, 회원목록"들을 다루는 페이지가 떠야하는데 그 또한 안 뜨네요.. 그리고 질문&답변에서도 찾아보고 블로그들도 며칠동안 다 찾아봤는데도 해결이 안되어서 질문 남깁니다.. 코드는 구글 드라이브에 올려두었습니다!https://drive.google.com/drive/folders/1uQwA4Xl9kkChJB32kl-VGCZ2Xdg6YG-3?usp=drive_link
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ArrayExRef6 코드 질문있습니다.
[질문 내용]여기에 질문 내용을 남겨주세요.package study.array.ex; import java.util.Scanner; public class ArrayExRef6 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("입력받을 숫자의 개수를 입력하세요:"); int[] numbers = new int[scanner.nextInt()]; System.out.println(numbers.length +"개의 정수를 입력하세요:"); // 입력 for (int i = 0; i < numbers.length; i++) { numbers[i] = scanner.nextInt(); } int min, max; min = max = numbers[0]; // 가장 작은 정수 for (int number : numbers) { if(min > number) min = number; } // 가장 큰 정수 for (int number : numbers) { if(max < number) max = number; } // 출력 System.out.println("가장 작은 정수: " + min); System.out.println("가장 큰 정수: " + max); } } 선생님의 기존 코드와 비교했을때 이런 로직으로 짜는것은 가독성이나 효율성(비효율적인 반복문 사용)이 떨어지는 코드일까요??
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
image 3개
aws에 image push하면 영상에서는 하나가 뜨는데 저는 3개가 뜨네요 이렇게 동작해도 맞는건가요??
-
미해결실전! 스프링 데이터 JPA
트랜잭션 범위 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] @RestController @RequiredArgsConstructor public class MemberController { // 도메인 클래스 컨버터 private final MemberRepository memberRepository; @GetMapping("/members/{id}") public String findMember(@PathVariable("id") Long id){ Member member = memberRepository.findById(id).get(); return member.getUsername(); } @GetMapping("/members2/{id}") public String findMember2(@PathVariable("id") Member member){ return member.getUsername(); } @PostConstruct public void init(){ memberRepository.save(new Member("userA")); } } MemberController 에서 @PostConstruct 부분을 보면, save 메소드가 보입니다. 일반적인 경우를 생각해보면, 서비스 계층에 @Transactional 이 붙어있고, 트랜잭션이 걸려있는 메소드를 통해서 리포지토리의 save 를 호출하니 리포지토리에도 트랜잭션이 걸려있다고 할 수 있을 것 같습니다.그런데 위와 같은 경우에서는 리포지토리에 트랜잭션이 안 걸려있습니다. JpaRepository 의 상위 인터페이스나 클래스를 찾아가면서 save 에 트랜잭션이 걸려있는지 확인을 해보았으나 없었습니다. 그렇다면 트랜잭션이 걸려있지 않은데, 어떻게, 어떤 시점에 커밋이 이루어져서 db 에 반영이 된 것인지 궁금합니다.