묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발자에게 필요한 로그 관리
output이 제대로 작동하지 않는 것 같습니다.
output { elasticsearch { hosts => ["http://elasticsearch:9200"] index => "application-logs-%{+YYYY.MM.dd}" } }위에 있는 설정 대로라면 yellow open application .. << 이게 localhost9200에 나타나야하는데 안뜨고 하단의 에러가 나옵니다.14:24:25,530 |-WARN in net.logstash.logback.appender.LogstashTcpSocketAppender[LOGSTASH] - Log destination localhost/<unresolved>:5044: Waiting 29951ms before attempting reconnection. 해결할려고 시도한 방법은 hosts의 url을 ip를 주소로 같게 해서 시도해보았으나 안되었습니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
moveToList 질문드려요
상품쪽 moveToList에서 page하고 size추가 안해도 useCustomMove 이쪽에const page = getNum(queryParams.get('page'), 1) const size = getNum(queryParams.get('size'), 10)이렇게 되어있어서 따로 moveToList에서page하고 size를 안넣어도 잘 이동이 되던데잘못된걸까요??
-
미해결스프링 배치
[ 강좌 Git 브랜치 문의 ] 섹션 9 > JdbcCursorItemReader, JpaCursorItemReader
섹션 9 > JdbcCursorItemReader, JpaCursorItemReader 강좌 Git 브랜치 정보 문의드립니다. 계속 찾아봐도 못찾겠습니다. Part6.X.X 를 모두 뒤져도 안나옵니다.아시는분 댓글 부탁드립니다 ^^; 강의에서의 파일 중에 특히 리소스 폴더의 아래 2개 파일을 도저히 못찾겠습니다.data-mysql.sqlschema-mysql.sql
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
./gradlew build 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용].\gradlew build를 했더니 오류가 떠요PS C:\Users\chyt7\OneDrive\바탕 화면\study\hello-spring> .\gradlew build> Task :test FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/Users/chyt7/OneDrive/%EB%B0%94%ED%83%95%20%ED%99%94%EB%A9%B4/study/hello-spring/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.BUILD FAILED in 2s7 actionable tasks: 1 executed, 6 up-to-date
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
타임리프 에서 겹따옴표 내부에 홀따옴표 이후 변수 표기 방법
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]onclick=겹따옴표 내부에 홀따옴표 이후 변수가 제대로 표현이 안되는데 어떻게 해야 할까요?예를 들어 원하는건 다음과 같습니다.onclick="location.href='/edit/변수'"변수의 형태는 ${item.id} 입니다.아래와 같이 시도를 해보았습니다.th:onclick="|location.href='@{/edit/${item.id}}'|"위와 같이 시도를 해 보았는데 웹페이지 소스보기를 하면 아래와 같이 출력이 됩니다.onclick="location.href='/edit/${item.id}'"홀따옴표 앞에 역슬래시, 백틱 등등 해볼건 다 해보았는데 잘 안되네요. 뭔가 분명히 방법이 있을 것인데요. 조언 부탁 드립니다. 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JDBC URL 연동 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JDBC 연동 질문입니다. test.mv.db 가 C://USERS/USER/안에 만들어졌습니다. 하지만 인텔리제이에서 url로 진입시에 계속해서 Driver org.h2.Driver claims to not accept jdbcUrl 에러가 뜹니다. 다른 문의들 많이 참고해서 설정들도 꼼꼼히봤고, https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit?tab=t.0링크에 H2데이터베이스 접속 오류 해결방안2를 그대로 했지만h2콘솔에서는 접속이 잘되는 것 같은데 인텔리제이에서는 url 을 찾지 못하는 것 같습니다. 아래는 코드 입니다. 몇시간째 제자리라서 도움 부탁드립니다ㅜ
-
해결됨비전공자를 위한 Spring MVC 뽀개기 응용
오라클연동방법
선생님 질문있습니다현재 mvc초급편 강의 완료후강의가 좋다고 생각해서 mvc고급편 강의도 등록해서 수강중입니다. h2로 db사용중인데 오라클로 사용하고싶어서 변경하려고 하는데 문제가 생겨서 질문드립니다 zulu21 사용중이므로 ojdbc11.jar 다운받아서 라이브러리에 추가해줬습니다라이브러리 추가 방법은 project우클릭 build path를 통해서 libraries에서 classpath에 addExternal jars를 통해서 ojdbc11를 추가해줬습니다이후 pom.xml에 h2관련 디펜던시를 주석처리 하였고jdbcUtil.java에 Connection getConnection메서드 아래 try {// 연결에 필요한 정보// String user = "system";// String pw = "**";// String url = "jdbc:oracle:thin:@:1521:xe"; // 드라이버를 메모리에 할당Class.forName("oracle.jdbc.driver.OracleDriver"); // 연결된 객체 가져오기conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "**");} catch (ClassNotFoundException e) {System.out.println("드라이버 로딩 실패");// 드라이버 주소가 잘못됨} catch (SQLException e) {System.out.println("연결 실패");// url이 잘못됨} catch (Exception e) {System.out.println("알수 없는 오류");}return conn;위로직을 추가했습니다 추가후 서버 재기동후 테스트결과Cannot invoke "java.sql.Connection.prepareStatement(String)" because "this.conn" is null위 오류가 나타납니다드라이버 로딩이 실패했다고 해서 conn주소 localhost를 ip로 바꿔서 테스트를 해보았는데도 똑같은 오류가 발생합니다 JDBCUtil.java 변경이전에 jdbc설정부터 왠지 잘못된거같은데오라클(디벨로퍼)연동방법 한번 설명해주실수 있나요 ㅠ??그리고 로컬오라클에는 board, users 테이블 모두 생성했고 테이블에 insert도 한 상태입니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
메시지 이벤트 발행시 에러 발생 관련 질문이 있습니다.
이번에 면접을 보면서 확실하게 대답을 못해서 고민 끝에 선생님에게 질문 드립니다. 우선 시나리오 말씀드리자면 client 가 해당 게시글에 "좋아요" 등록을 하게 된다면 좋아요 등록 관련 DB 테이블에 insert 동시에 outbox 테이블에도 insert 하도록 설계 되어 있습니다. commit 이 정상적으로 발생되면 kafka 서버에게 이벤트 메시지를 발행 하게 되는데요. 만약 갑자기 이벤트 발행시 kafka 서버가 죽었다고 하면 복구 될때 까지 기다리다가 retry 통해 아직 메시지 발행 하지 못한 메시지 outbox 테이블에 조회해서 메시지 발행 하면 문제가 없을 것 같은데요. 하지만 다시 처음부터 설명하면 client 가 좋아요 등록 후 DB 서버가 죽어서 "좋아요" 관련 테이블 및 "outbox" 테이블에 insert 를 못했다고 가정 했을때 어떻게 대처 해야 하는지 역으로 질문 받았습니다. 일단 DB 서버가 죽었으면 빠르게 고객에게 에러 메시지를 전달과 동시에 담당 개발자에게 빠르게 전달 할 수 있도록 전달 해야 한다고 했습니다. (회사에서 slack 메신저 사용하면 메신저 통해 알림) 혹시 이것보다 더 좋은 방법이 있을까요? 재대로 대답하지 못해 찜찜해서 이렇게 선생님에게 질문 드리네요.
-
미해결비전공자를 위한 Spring MVC 뽀개기 응용
글 목록 기능 구현 vo 문의요
선생님 안녕하세요 질문있습니다vo.setSearchCondition(searchCondition);vo.setSearchchKeyword(searchKeyword); GetBoardListController를 수정중에 위 setSearchCondition, setSearchchKeyword 를 찾을 수 없다고 하는데 BoardVO에 선언을 해주어야 하는건가요?어디서 선언후 사용해야하는지 잘 모르겠습니다답변주시면 감사하겠습니다
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
InvalidUrl과 expiredUrl이 동시에 설정되있을때 Invalid가 우선되는 이유
강의를 듣다가 궁금해서 좀 찾아봤습니다(Perplxtiy에게 물어본거라 신뢰도가 100%는 아닙니다) 만료된 세션을 처리하려면 expiredUrl 설정이 필수여서 invalidUrl 설정 단독으로는 처리를 못한다고 합니다 그럼 2개가 다 설정되도 expiredUrl을 타는게 맞는것 같지만 Filter chain의 우선순위때문에 expiredUrl을 즉 만료된 세션을 invalidUrl로 간주하고 invalidUrl이 실행되는 것 같습니다
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join 관련 질문입니다
A : B = 1 : N , B : C = 1 : N , C : D = N : 1 현재 이런 구조인데 한번에 데이터를 땡겨오고싶으면 C를 기준으로 A, B, D 전부 fetch join으로 가져오면 되는걸까요? 아니면 이렇게 하면 문제가 있을까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
SecurityContext가 anonymous 를 판단하는 기준은 jsession 에 있을까요?
해당 강의를 학습하던 도중 indexController 의 다음 메서드가 어떻게 익명사용자인것을 알아채고 해당 토큰을 남기는 걸까 의문점이 생겨 질문을 남깁니다. @GetMapping("/anonymousContext") public String anonymousContext(@CurrentSecurityContext SecurityContext context) { return context.getAuthentication().getName(); } 해당의문을 해결하기 위해 localhost:8080/anonymousContext 가 호출될 때 서버는 어떤 과정을 거칠까 생각해보고 다음과 같은 결론을 냈습니다. 1. localhost:8080/anonymousContext 가 호출될 때, Authentication 이 null 값인 것을 확인한다2. AnonymousAuthenticationToken을 생성하여 SecurityContextHolder에 저장한다.3. Jsession이 없는 것을 확인하고 AnonymousAuthenticationToken이 저장된 SecurityContext를 파라미터로 넘긴다.4. 해당 포큰이 getName() 값이 출력된다.이러한 과정을 거칠거라 생각한 이유는 로그인 상태에서 localhost:8080/anonymousContext 를 호출하게 될 때, "user"라는 값이 출력되는 것을 확인했고 두 같은 요청값에 유일한 차이는 쿠키에 Jsession의 유무였기 때문입니다. SecurityContext가 anonymous 를 판단하는 기준이 제가 생각한 것과 같을까요?
-
미해결입문자를 위한 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에서 확인하기
-
미해결개발자에게 필요한 로그 관리
예외발생하면 printstacktrace()를 사용하시나요 ?
구글에 쳐보니 예외가 터지면 printstacktrace()는 지양하고 getStackTrace() 를 사용하라는데의견이 궁금합니다 !
-
미해결실전! 스프링 데이터 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 에 반영이 된 것인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바는 강의는 어느정도 학습해서 익히면 좋을까요 :?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]안녕하세요. 이번에 스프링을 듣고 있는 취준생입니다.자바 스프링으로 취업준비하기 위해 듣고 있는데스프링과 스프링부트 로드맵을 위주로 강의를 들으려고 하고 있습니다.근데 자바가 익숙치 않아서 김영한님의 자바강의를 보고 있는데자바는 어느정도 강의까지 들으면서 익혀야 스프링과 스프링부트 Jquery에 익숙하게 학습이 가능할까요? 너무 질문 수준이 낮아서 죄송합니다...
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
이 흐름이 맞을까요??
클라이언트에서 카카오 로그인 요청(요청 주소는 loginForm에 있는 a 태그) -> a태그의 redirectUrl로 code가 내려오고 요청폼에 맞춰서 DTO를 만들고 카카오 AccessToken을 발급 받음 -> 그럼 클라이언트는 로그인 완료 -> 그 후 나의 Application을 이용하기 위한 JWT 토큰을 별도로 발급그럼 서버쪽에서는 카카오 로그인이 완료되면 우리쪽의 Application을 이용하기 위한 JWT토큰을 발급해주면 되고, 우리쪽 JWT 토큰을 헤더에 넣어서 요청하면 API를 사용할 수 있다. 해당 흐름이 맞나요? 이렇게 이해하면 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 cmd gradlew build 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (네) <- 해결이 안 됨3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.윈도우에서 gradlew build 오류가 뜨는데 해결 방법을 모르겠습니다. 자바 버전이 문제인가 싶어 확인해 봤는데, 인텔리제이랑 cmd에선 21 버전으로 뜹니다. 근데 gradlew build 명령어를 입력하면 작동이 되지 않습니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Memberrepository작성후 memberRepositoryTest에서 오류발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]mememberrepository를 작성한 이후 memberrepository에서 오류가 발생하고 있습니다
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
OpenFeign을 어떤 상황에서 어떻게 사용하는지 감이 안옵니다...
OpenFeign을 어떤 상황에서 어떻게 사용하는지 감이 안옵니다... 단 한번도 프로젝트를 진행하면서 사용해본적이 없는 기술이여서 감이 와닿지 않는데 어떤 상황에서 유용하게 쓸 수 있는 기술인걸까요??