24%
28,880원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
yml 설정에 오류가 발생합니다.
저 부분에 오류가 발생합니다.모두 똑같이 작성하고 부트 버전도 같은데어떤것 때문에 문제가 발생하는건가요?
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
active profile 칸이 없습니다.
active profile 칸을 dev라고 수정 후 실행했는데{"health":"ok","activeProfiles":[]}똑같이 빈칸이 나옵니다.잘못입력했나 확인하려고 다시 설정 들어갔는데처음에는 입력칸이 있었는데 다시가보니 active profile입력칸이 사라졌습니다.어떻게 해야되나요?
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
access token 생성 중 에러가 있어서 문의드립니다.
안녕하세요. 강의 잘 듣고 있습니다.access token 생성중에 에러가 생겨서 진행이 안되고 있어 문의드립니다.해당 부분에서 secret 임이의 문자열을 ES512 알로리즘 방식을 적용할 때 아래와 같은 에러가 발생합니다.Key bytes may only be specified for HMAC signatures. If using RSA or Elliptic Curve, use the signWith(SignatureAlgorithm, Key) method instead.ES256을 적용도 해보고 여러 시도를 해봤는데 동일한 에러가 발생하네요. 제가 실수한 부분이 있을까요?참고로 yml 설정은 강사님과 동일하게 맞췄습니다.조언 부탁드려요!==============================원인을 찾았습니다. HS512로 적용해야하는데 ES512로 적용했네요.ㅎㅎES512는 임의의 문자열을 알고리즘으로 변환을 못해 에러가 발생했는데 자세히는 모르겠네요.아시는 분 있으면 답글 부탁드립니다.ㅎㅎ
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
포스트맨으로 accesstoken 보내면 500에러
안녕하세요 수업보고 잘따라 하고 있었는데, 카카오 로그인은 잘되는데 포스트맨으로 headers에 Authorization칸에 Bearer + accesstoken 키 보내면 500 에러가 뜹니다. 소스 코드가 잘 못 되었나 싶어서 다시 찾아 봤지만, 아닌거 같아서 질문을 올립니다.
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
org.apache.commons:commons-text:1.8 보안 취약점 문제
보안 취약점이 발견되어 implementation 'org.apache.commons:commons-text:1.10.0'의존성을 변경하는 것이 좋아보입니다.
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
자주 나오는 질문 - DTO에 @Allargs, @Noargs 문제
실행할 때 IntelliJ IDEA 가 아닌 Gradle로 돌려야 합니다
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
open feign yml 세팅 관련
spring.cloud openFeign ver 4.0.* 이상 쓰시는분들은yml 세팅시 공식문서에 변경된 설정양식에 맞춰서 적용 하여야 합니다.https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
패키지 구성 질문 (api와 domain)
패키지 구성시 질문이 있습니다.member의 경우 api와 domain 두군데로 나누어 관리하게 해두셨는데,api 는 즉 user request를 처리하는 application 라고 생각하고 (controller와 dto 를처리), domain은 핵심 도메인 로직 (db entity, repository와 repository를 이용한 service 등)를 넣는 다고 생각하면 될까요?그러면 현재는 없는 infra는 어떤 용도로 생각하면 될까요?혹시 잘 구분해놓고 참고할만한 프로젝트 소스가 있을런지요?
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
XSS 문의
안녕하세요 강의 잘 들었습니다. XSS 관련해서 궁금한게 있는데요.실제 소스를 돌려보지 못하고 문의 드려서 죄송합니다.소스상으로 봤을때 xss lucy 필터를 적용할 경우 DB에 이스케이프 되어서 저장이 될거라고 예상 됩니다.다만 requestBody 경우 DB 에 저장하기 전에 이스케이프 되는게 아닌 출력 전에 이스케이프가 될거 같은데 맞을까요?맞다면 lucy 적용한 데이터는 db에 이스케이프가 되어 저장 되어 있고 requestbody로 받은 데이터는 db에 이스케이프 되어 있지 않고 저장 될거 같은데 그럼 문제가 있지 않나 싶어 문의 드립니다.
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
HttpServeletRequest 를 못가져오는 이슈
안녕하세요.강의중 AuditorAawareImpl.java 에서아래와 같이 의존성 주입하니@Autowiredprivate HttpServeltRequest httpServletRequest;-->"Autowired members must be defined in valid Spring bean.. " 이라고 에러가 납니다.Spring boot 2.7.7 버전인데요..어떻게 해야할지 문의드립니다..
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
JasyptTest 암호화
강사님 안녕하세요!! 암호화 진행하는 JasyptTest 테스트 클래스에 대해 궁금한 점이 있습니다.현재 이 파일에 vmOptions에 지정한 비밀번호 값이 들어가 있게 되는데, 이 파일을 깃허브에 올리려면 암호화를 진행해야 할 것 같아 질의드립니다.public class JasyptTest { @Value("${jasypt.password}") private String password; @Test public void jasyptTest() { // String password = "sakncksjallkasdkl#$@^#*asdsiajodias2737"; //vmOptions에 넣어둔 값으로 설정 PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); encryptor.setPoolSize(4); encryptor.setPassword(password); encryptor.setAlgorithm("PBEWithMD5AndTripleDES"); String content = "wjdehdrbtlsrjsdndleoruagkgjswlsrlachdldbdkstjchlrhdhfgksgoehekemfakanflwkfgktlrlfqkfkrpTtmqslek"; // 암호화 할 내용 String encryptedContent = encryptor.encrypt(content); // 암호화 String decryptedContent = encryptor.decrypt(encryptedContent); // 복호화 System.out.println("Enc : " + encryptedContent + ", Dec: " + decryptedContent); } }이런식으로 코드를 작성하게 되면 문제가 없지 않을까 생각이 되는데, 맞을까요?
- 해결됨생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
KakaoTokenDto 오류
안녕하세요 강사님!! 강의 정말 잘 듣고 있습니다. 다름이 아니라 템플릿 프로젝트를 기반으로 다른 프로젝트를 진행하고 있었는데, Spring Security를 적용하고 회원가입 구현을 조금 진행 해봤는데 localhost:8080/kakao/login 에서 카카오 로그인 버튼을 클릭하자 다음과 같은 에러 메시지가 출력되는 것을 확인하였습니다.feign.codec.DecodeException: Type definition error: [simple type, class com.server.seb41_main_11.web.kakaotoken.dto.KakaoTokenDto$Response]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.server.seb41_main_11.web.kakaotoken.dto.KakaoTokenDto$Response (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2]로그를 확인하고 KakaoTokenController의 requestKakaoToken 메서드를 통해 KakaoTokenDto.Response를 반환하는 문제가 생긴 것 같아해당 에러를 구글링 해봤는데, 기본 생성자를 추가해줘야 한다고 해서 @NoArgsConstructor를 rsponse 부분에 추가를 하고, Builder패턴을 사용하고 있으니 @AllArgsConstructor 어노테이션 또한 추가를 해주었습니다.변경한 코드입니다@ToString @NoArgsConstructor @AllArgsConstructor @Builder @Getter public static class Response { private String token_type; private String access_token; private Integer expires_in; private String refresh_token; private Integer refresh_token_expires_in; private String scope; }다음과 같이 수정하니 정상적으로 토큰을 반환받는 것을 확인하였습니다.따라서 어노테이션을 추가했을 때와 추가하지 않았을 때를 비교하기 위해서 build 폴더의 KakaoTokenDto.Response 구현 부분을 확인을 해봤는데, 어노테이션을 추가했을 때와 추가하지 않았을 때의 구현부가 같았습니다.해당 에러가 왜 생기는지 잘 모르겠고, 어노테이션을 붙였을 때 왜 해결이되는지도 잘 모르겠습니다 ㅠㅠ
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
SocialLoginApiServiceFactory 클래스
안녕하세요 강사님!! 강의 정말 잘 듣고있습니다, 강의를 다 들은 후 전체적으로 흐름을 따라가면서 확인을 해보고 있는데요, SocialLoginApiServiceFactory 클래스에서 이해가 잘 가지 않는 부분이 있어 질의드리고자 합니다.먼저 SocialLoginApiServiceFactory에서는socialLoginApiServices 이라는 map 자료구조에 키 값으로 빈 이름이, value 값에는 SocialLoginApiService를 구현한 impl(ex, KakaoLoginApiServiceImpl) 클래스가 들어가는 것으로 이해했습니다. 현재는 map에 value가 KakaoLoginApiServiceImpl 1개만 저장이 되어있고, 만약 네이버나 구글 등 다른 impl을 구현하면 갯수가 늘어나는 것으로 이해했는데 제가 이해한게 맞을까요??만약 제가 이해한 것이 맞다면, socialLoginApiServices에 key와 value가 어떤 방식으로 저장되는지 궁금합니다. 상속관계의 Bean에 대해서 Springboot에서 알아서 세팅을 해주는 것인가요?? 관련 코드 첨부하겠습니다 @Service public class SocialLoginApiServiceFactory { private static Map<String, SocialLoginApiService> socialLoginApiServices; // map에는 SocialLoginApiService 구현체가 각각 들어갈 것임 public SocialLoginApiServiceFactory(Map<String, SocialLoginApiService> socialLoginApiServices) { this.socialLoginApiServices = socialLoginApiServices; } public static SocialLoginApiService getSocialLoginApiService(MemberType memberType) { String socialLoginApiServiceBeanName = ""; if(MemberType.KAKAO.equals(memberType)) { //멤버 타입이 카카오면 socialLoginApiServiceBeanName = "kakaoLoginApiServiceImpl"; //빈 이름에 카카오 서비스 구현체 저장 } return socialLoginApiServices.get(socialLoginApiServiceBeanName); // 빈 이름을 키 값으로 활용하여 구현체(KakaoLoginApiServiceImpl) 반환 } }
- 해결됨생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
협업 진행 시 yml 파일
안녕하세요 강사님, 강의 잘 듣고 있습니다!다름이 아니라 프로젝트를 진행하면서 yml 암호화를 진행하고자 하는데요, VmOptions에 비밀번호만 똑같이 공유한다면 암호화된 yml 파일을 서로가 똑같이 사용한다 하더라도 문제 없이 진행되는 부분인지 여쭤보고 싶습니다
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
cors 설정
안녕하세요 학습 도중에 궁금한점이 생겨서 질문을 남겼습니다.만약에 프론트랑 csr 방식으로 협업을 한다고 가정했을 때,백엔드만 cors 설정을 하면 되는건가요?? 아니면 프론트 개발자들 또한 cors 설정을 건드려야 하는 건가요??
- 해결됨생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
카카오 토큰 발급하기(Bad Client Error)
안녕하세요강의와 자료를 보면서 차근차근 배워가고 있는 수강생입니다.카카오 토큰 발금하기 강의를 듣는 과정에서 토큰을 받을때 Bad Client error가 발생했고, 이 문제를 해결하지 못하고 있어서 질문을 남깁니다.현재 제가 작성한 코드 및 에러코드는 아래와 같습니다.{"errorCode":"500 INTERNAL_SERVER_ERROR","errorMessage":"[401 Unauthorized] during [POST] to [https://kauth.kakao.com/oauth/token] [KakaoTokenClient#requestKakaoToken(String,Request)]: [{\"error\":\"invalid_client\",\"error_description\":\"Bad client credentials\",\"error_code\":\"KOE010\"}]"} 아래와 같은 글을 참고하여 에러를 해결해 보려고 했으나 잘 해결되지 않아 3일째 삽질중에 있습니다.https://velog.io/@okhaeeumm/kakao-%EB%A1%9C%EA%B7%B8%EC%9D%B8-api-%EB%8F%84%EC%9E%85-%EC%A4%91-%EB%A7%88%EC%A3%BC%ED%95%9C-%EC%97%90%EB%9F%AC%EB%93%A4 혹시 시간이 괜찮으시다면, 에러 원인에 대해서 한번 봐주실 수 있는지 여쭤보고자 질문을 남기게 되었습니다.
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
AdminTestController 질문
안녕하세요. AdminTestController는 테스트 패키지로 구성하여 Mock객체로 테스트하지 않고 소스단 패키지로 구성하여 테스트 하시는 이유가 있으신지 문의 드립니다.
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Member에 refreshToken 질문 드립니다.
Member에 refreshToken 값이 칼럼으로 생성되어 있는데요. DB에 refreshToken이 최초 저장되는 시점이 언제인가요?@Column(length = 250) private String refreshToken; updateRefreshToken을 하게 되면 DB에는 따로 저장하지 않나요?public void updateRefreshToken(JwtTokenDto jwtTokenDto) { this.refreshToken = jwtTokenDto.getRefreshToken(); this.tokenExpirationTime = DateTimeUtils.convertToLocalDateTime(jwtTokenDto.getRefreshTokenExpireTime()); }Member에 tokenExpirationTime은 refresh token의 만료시간을 의미하는건가요?private LocalDateTime tokenExpirationTime;
- 해결됨생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
createJwtTokenDto 형태 질문
JWT 생성시 Header.Payload.Signature 형태로 생성 후 리턴하지는 않나요?return JwtTokenDto.builder() .grantType(GrantType.BEARER.getType()) .accessToken(accessToken) .accessTokenExpireTime(accessTokenExpireTime) .refreshToken(refreshToken) .refreshTokenExpireTime(refreshTokenExpireTime) .build();
- 미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Github Template Project 등록
안녕하세요.제 3자가 쓸 수 있게 하려면 해당 사람이 제 레포 fork 뜬 후에 사용해야 하나요?