inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

PrincipalDetails, PrincipalDetailsService에 대한 질문

해결됨

스프링부트 시큐리티 & JWT 강의

PrincipalDetails 시큐리티가 /login을 낚아채서 로그인을 진행시킨다. PrincipalDetailsService 시큐리티 설정에서 loginProcessingUrl("/login") 처리 이게 view를 리턴하는 방식에서는 formLogin을 처리해줘서 이렇게 여기서 작성하면 controller에서 기능을 구현하지 않아도 login을 시큐리티가 알아서 해주는 걸로 알고 있는데요. 그러면 REST API 방식일때는 SecurityConfig에 formLogin.disable()로 처리하는 걸로 알고 있는데 그러면 PrincipalDetails, PrincipalDetailsService은 REST 방식에서는 작성하지 않는건가요? 근데 그러면 의문이 저 2개의 클래스를 생성하지 않으면 @Data public class PrincipalDetails implements UserDetails, OAuth2User { private User user; private Map<String, Object> attributes; // 일반 로그인 public PrincipalDetails(User user) { this.user = user; } // Oauth 로그인 public PrincipalDetails(User user, Map<String, Object> attributes) { this.user = user; this.attributes = attributes; } // 해당 User의 권한을 리턴하는 곳 @Override public Collection<? extends GrantedAuthority> getAuthorities() { Collection<GrantedAuthority> collection = new ArrayList<>(); collection.add(new GrantedAuthority() { @Override public String getAuthority() { return user.getRole(); } }); return collection; } // 사용자의 패스워드를 반환 @Override public String getPassword() { return user.getPassword(); } @Override public String getUsername() { return user.getEmail(); } // 계정 만료 여부 반환 @Override public boolean isAccountNonExpired() { // 만료되었는지 확인하는 로직 // true = 만료되지 않음 return true; } // 계정 잠금 여부 반환 @Override public boolean isAccountNonLocked() { // true = 잠금되지 않음 return true; } // 패스워드의 만료 여부 반환 @Override public boolean isCredentialsNonExpired() { // 패스워드가 만료되었는지 확인하는 로직 // true = 만료되지 않음 return true; } // 계정 사용 가능 여부 반환 @Override public boolean isEnabled() { // 계정이 사용 가능한지 확인하는 로직 // true = 사용 가능 return true; } @Override public Map<String, Object> getAttributes() { return attributes; } @Override public String getName() { return null; } } 여기서 UserDtails, OAuth2User을 상속받아서 Override하는 부분은 어떻게 구현하나요?

  • spring
  • spring-security
  • jwt
유요한 댓글 1 좋아요 1 조회수 1461

엔티티 매니저 프록시 역할

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요! 질문 좀 드리려고 합니다 엔티티 매니저 프록시는 프록시를 싱글톤으로 주입해서 동시성 문제를 해결하고 실제 엔티티 매니저 인스턴스를 ThreadLocal로 관리하는 역할 정도로 생각해도 괜찮을까요? 추가적으로 실제 엔티티 매니저는 @Transactional을 사용하면 JpaTransactionManager에서 생성이 되는데 @Transactional을 사용하지 않으면 처음 엔티티 매니저를 사용할 때 생성이 되나요?

  • java
  • jpa
code-tree 댓글 1 좋아요 0 조회수 442

1012 - 반례를 모르겠습니다. JAVA

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 큰돌님 강의 잘 보고있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int[][] board; static boolean[][] visited; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int yLen; static int xLen; static int cnt; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while (n-- > 0) { int[] given = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); if (given[2] == 1) { sb.append(1).append(System.lineSeparator()); continue; } board = new int[given[0]][given[1]]; visited = new boolean[given[0]][given[1]]; yLen = given[0]; xLen = given[1]; for (int i = 0; i < given[2]; i++) { String[] numStr = br.readLine().split(" "); int y = Integer.parseInt(numStr[0]); int x = Integer.parseInt(numStr[1]); board[y][x] = 1; } for (int i = 0; i < yLen; i++) { for (int j = 0; j < xLen; j++) { if (!visited[i][j] && board[i][j] == 1) { dfs(i, j); cnt++; } } } sb.append(cnt).append(System.lineSeparator()); } System.out.print(sb.substring(0, sb.length() - 1)); } public static void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= yLen || nx < 0 || nx >= xLen) continue; if (visited[ny][nx] || board[ny][nx] == 0) continue; dfs(ny, nx); } } } 위 코드를 실행하면 12%, ArrayIndexOutOfBounds가 발생하는데 어떤 부분인지 알 수 있을까요?

  • c++
  • 코딩-테스트
  • java
최찬호 댓글 2 좋아요 0 조회수 322

강사님께 말씀드립니다.

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 먼저 본 강의는 88000 원에 책정되어 있음을 알려 드립니다. 어디에 13만원으로 되어 있는가요? 현재 강의를 1섹센을 듣고 계시는 중인데 그 중에 현재 5개 강의를 학습한 걸로 나옵니다. 참고로 1섹션과 2섹션은 개념과 이론을 학습하는 부분이라 원래부터 강의 소스 자체를 제공하지 않고 있습니다. 5개의 강의를 들으셨는데 이미 완성된 소스라고 말씀하시는 기준이 무엇인가요? 1섹션에서는 이미 완성된 소스라는 개념 자체가 성립이 되질 않습니다. 강의소스는 깃헙에 섹션 3부터 브랜치 별로 제공되고 있습니다. 혹시 master 브랜치만 보고서 말씀하시는건지 모르겠지만 글을 작성하실 때는 정확히 사실에 기반해서 작성해 주시길 정중히 요청드립니다. 라고 수강평에 글을 올려주셨는데 제가 구매할 당시에는 이 강의는 8만8천원이 할인가였고 정가는 13만원이었습니다. 정확한 사실이고요. 섹션 1,2만 수강했다고 하는데, 지금 섹션3강의에 첫번째 강의를 듣다가 글 올렸습니다. 그러니 강사님께는 조회가 되지 않겠네요? 섹션3에서 강의를 열자마자 이미 소스가 어느정도 완성된 상태에서 강의를 진행하시잖아요? 사실에 기반하여 작성하고 있는 것 맞구요. 브랜치마다 소스도 어느정도 완성되어서 글을 올려주시잖습니까? "먼저 죄송한 말씀 드립니다. 강의 소스가 강의 챕터별로 제공되지 못해 불편을 겪고 계시리라 생각합니다. 제가 강의 소스를 당시 브랜치별로 만들었는데 master 를 제외하고 실수로 날려버렸습니다. 다행이 얼마전 복구가 되었는데 좀 오래전이라 강의에 사용되던거와 완전 일치하지는 않을 것 같습니다. 실전 프로젝트편 소스입니다. 여기 가시면 브랜치별로 생성이 되어 있습니다. 다만 브랜치명이 숫자로 되어 있어서 각 브랜치가 어떤 강의에 해당되는지 찾으셔야 할 것 같습니다. 실전프로젝트 편 챕터순으로 되어 있으니 찾기가 그렇게 어렵지는 않을 것 같습니다. 불편을 드려서 거듭 죄송합니다." 그리고 위와 같이 글을 작성해주셨는데, 강의를 구매한 사람에게 제대로된 서비스를 해주시고 계신것 맞습니까? 브랜치에 제대로 이름이 적혀있지도 않구요. 챕터순으로 되어있다는데 브랜치에 CH가 섹션입니까? 제가 이런걸 하나하나 게시판에 글을 올려서 확인받고 소스를 확인해야하나요? 애초에 제대로 공지해주시면 이렇게 되새김질 하지 않는데요. 제대로 서비스를 제공해주시고 계시지 않다고 생각 안드시나요?

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 2 좋아요 0 조회수 500

강사님? 섹션3의 있는 실전 프로젝트 생성강의에서

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 실전 프로젝트 생성강의에서 이미 코드가 admin, user쪽 모두 생성되어있는것같은데 깃허브 링크로 알려주세요. https://github.com/onjsdnjs/corespringsecurity이거 말구요~ 어느 브랜치인지 정확히 말씀주셔요^^

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 1 좋아요 0 조회수 555

강사님께 얘기합니다.

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님. 소스코드를 날렸더라면, 강의 소스코드를 다시 만들어주시던가 하셔야하지 않을까요? 얼마전 복구가 되었다하더라도 완전히 일치하지 않는다는게 '나몰라라'식이라서 수강하는 입장에서는 괜히 학습했다는 입장입니다. 브랜치가 챕터순으로 되어있다는데, 저희는 섹션순으로 학습을 합니다만, 무슨 말씀인지 이해가 안되네요. 불편을 주셨다면 이에 대해 강사님이 다시 소스를 올려주시던가 해야하지 않나요? 8만 8천원이나 금액 측정하셨다면 그에 대한 학습 퀄리티도 그만큼 준비하시는게 맞는데 뭐하자는 겁니까. 아무리 스스로 학습하라고 하지만, 이에 대해 강의에 있는 소스와 전혀 다른데 뭘 어떻게 학습하란 얘기입니까. 어떤 브랜치인지 정확히 기재해주던가 하세요. 이런거 기재도 못해주시나요?

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 1 좋아요 0 조회수 511

DDD 적용시 JPA 설계에 대해 궁금한 사항

해결됨

실전! 스프링 데이터 JPA

안녕하십니까 강사님. 좋은 강의 정말 감사합니다. 이번에 강사님께 강의를 듣고 현업에 적용하는 도중 궁금한 사항이 있어 문의하게 되었습니다. 저희는 현재 DDD 를 적용하려고 합니다. DDD 에서는 애그리거트끼리의 관계를 맵핑하는 것을 지양하는 것으로 알고 있습니다. 따라서 저희는 ERD 기준으로 도메인을 설계해보니 실제 나온 도메인을 보면 테이블이 전부 도메인 클래스가 되었고 서로간의 관계를 코딩으로 맺는 부분 (@ManyToOne 등)이 존재 하지 않습니다. 현업에서도 ERD 를 기준으로 도메인 클래스를 나누면 테이블 당 하나의 애그리거트가 나오는 것이 보편적인 사항일까요? DDD 로 개발하다보면 도메인 클래스에 관계를 맺는 부분이 없는게 보편적일까요?

  • java
  • spring
  • spring-boot
  • jpa
김가가가 댓글 2 좋아요 0 조회수 1311

IoC != DI에 대한 질문입니다.

해결됨

Java/Spring 주니어 개발자를 위한 오답노트

안녕하세요,선생님 습하고 더운 여름 몸 건강히 계시길 바랍니다. 강의를 듣는 도중 궁금한 부분이 생겼습니다. DIP와 IoC가 다르다고 말씀하신 부분이, DIP가 의존성 주입을 역전함으로써 제어의 흐름을 바꾸지만 IoC가 의존성을 주입해주는 것은 아니어서 그렇다고 이해되는데 제대로 이해한 게 맞을까요? ㅜㅜ 또, Open-Closed 법칙을 설명해주시는 1:32초 부분에 수정에는 열려있어야 한다는 말씀을 하셨는데 수정 시 많은 메소드 혹은 클래스를 수정해야 하는 경우가 수정에 열려있는 것이 아닌지요 ㅜㅜ... 제가 잘 모르다보니 헷갈려서 질문드립니다!

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
nsonestudy2 댓글 2 좋아요 1 조회수 855

안녕하세요. 호돌맨님. 서비스 정책 로직 위치에 대해 궁금한 점이 있습니다.

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

좋은 강의 정말 감사드립니다. 강의 수강 도중 서비스 로직 관련 궁금한 점이 있어 문의드리게 되었습니다. 제가 DDD 를 공부하면서 알게된 부분이 DDD 에서는 비즈니스 로직을 도메인에 몰아서 작성하라고 했는데 본 강의에서는 절대 서비스 정책을 도메인에 둬서는 안된다고 말씀하신 걸로 알고 있습니다. 호돌맨님께서 말씀하신 서비스 정책을 두지 말라는 조언은 DDD를 적용하지 않았기 때문인지 두지 말라고 하신건지 알고 싶습니다. (서비스 정책 == 비즈니스 로직으로 이해했습니다. 혹시 제가 이해한 부분이 잘못 됐을까요?) 감사합니다.

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
김가가가 댓글 1 좋아요 0 조회수 673

예외 처리 리팩토링 질문

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요. 강의 들으며 재밌고 공부하고 있습니다. 감사합니다. 예외 처리를 util패지키에 모아서 처리하는 것은 이해했습니다. 약간 궁금증 생겨서 문의 남겨봅니다! BookService의 코드 일부분 입니다. 여기서 보면 UserRepository 와 BookRepository 의 findByName 에서 모두 fail()로 예외 처리를 하는데요, 이걸 그냥 리포지토리 계층의 메서드 자체에서 예외를 처리해주면 더 깔끔하지 않을까 하는 궁금증이 생겼습니다. 제가 지금까지 공부하면서는 리포지토리 계층에서 디폴트 메서드를 통해서 처리하는 코드도 봤고, 서비스 계층에서 처리하는 코드도 봐서 어떤 방식을 선호하시는지, 권장 하시는지 궁금합니다! 좋은 강의 감사합니다!

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
장대영 댓글 1 좋아요 4 조회수 937

언제 db에 값을 넣었나요?

미해결

스프링부트 시큐리티 & JWT 강의

언제 db에 값을 넣었나요? 강의중에 넣은 영상을 본적이 없었던 것 같아서요

  • spring
  • spring-security
  • jwt
코딩코딩코딩코 댓글 2 좋아요 0 조회수 661

인텔리제이 같이 설치하는 과정부터 좀 알려주시면 안될까요 너무 답답하고 짜증나죽겠습니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 몰라요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. 처음하는 초심자 입장에서 너무 어렵습니다 일단 설치부터 jdk까지는 꾸역꾸역 구글링해서 깔고했는데 인텔리제이를 설치하고 설치하는 과정에서 어떤 체크사항을 체크해야하고 어디에 저장하고 하는지 하나도 모르고 그냥 "인텔리제이 설치하시오", "자바 jdk 설치하시오" 미리 준비물로 딸랑 해놓고 지금 혼자 깔고 인텔리제이 실행해서 강사님이랑 똑같이 하려는데 처음 run하는것부터 run이 보이지도 않고 막히네요 무료강의도 아니고 돈내고 듣는데 너무 짜증나고 답답합니다 이 질문도 한참있다가 질문답변이 달릴테고... 극초심자를위한 설치부터 하나하나 같이 알려주고 하는방법좀 설명해주셨으면 좋겠습니다 시간아깝고 짜증납니다 정말

  • java
  • spring
  • mvc
  • spring-boot
임규영 댓글 0 좋아요 2 조회수 1026

인터셉터 활용?

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

안녕하세요 호돌맨님! JWT 관련 강의에서 ArgumentResolver를 활용해 토큰 검증을 하고 사용자 정보를 추출해 반환하셨는데, 만약 프로젝트를 진행할 때 로그인을 해야 모든 URL에 접근할 수 있다고 한다면 아래 코드처럼 인터셉터에서 토큰 검증을 하고 ArgumentResolver에선 별다른 검증 없이 subject만 추출해서 반환해도 문제가 없을까요? 혹시 제가 접근 자체를 잘못하고 있다면 알려주시면 감사하겠습니다 @Slf4j @RequiredArgsConstructor public class LoginCheckInterceptor implements HandlerInterceptor { private final JwtService jwtService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { String requestURI = request.getRequestURI(); log.info("인증 체크 인터셉터 실행 {}", requestURI); String accessToken = request.getHeader("Authorization"); jwtService.validateAccessToken(accessToken); try { jwtService.getSubject(accessToken); } catch (JwtException e) { throw new Unauthorized(); } return true; } } @RequiredArgsConstructor public class JwtArgumentResolver implements HandlerMethodArgumentResolver { private final JwtService jwtService; @Override public boolean supportsParameter(MethodParameter parameter) { boolean hasLoginAnnotation = parameter.hasParameterAnnotation(Login.class); boolean hasLoginType = LoginUser.class.isAssignableFrom(parameter.getParameterType()); return hasLoginAnnotation && hasLoginType; } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { String accessToken = webRequest.getHeader("Authorization"); Long userId = jwtService.getSubject(accessToken); log.info("userId = {}", userId); return new LoginUser(userId); } }

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
민혁 댓글 2 좋아요 0 조회수 739

41강 아이디 중복확인 Ajax 질문이 있습니다

미해결

스프링 프레임워크는 내 손에 [스프1탄]

안녕하세요 선생님 41강 아이디 중복확인 섹션에서 Interface인 MemberMapper.java 에서 public Member registerCheck(String memID); 위처럼 선언해주었고, MemberMapper.xml 에서 <select id="registerCheck" resultType="srv.ges.entity.Member"> SELECT * FROM mem_tbl WHERE memID = #{memID} </select> 위처럼 select문에 resultType만 작성하셨는데, 'memID'를 Parameter로 넘기니 ParameterType도 작성해야 하는 것 아닌가요?

  • jsp
  • spring
  • mvc
  • spring-security
장재영 댓글 2 좋아요 0 조회수 467

낙관 락 vs 비관 락 실무에서 구체적인 예시를 들어주실 수 있을까요?

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

낙관 락과 비관 락을 정확히 언제 사용하는지 궁금한데요, 충돌이 잦을 때는 비관 락을 사용한다고 이해하기엔 막연한 느낌이 있어서요, 혹시 실무에서 구체적인 예시를 들어주실 수 있을까요?? 비관적 락이 구현이 훨씬 간단할 것 같은데, 실제로 실무에서 비관적 락이 아닌 낙관적 락을 직접 구현해서 사용할 일이 있는지도 궁금합니다. 충돌이 빈번하게 일어난다면 비관적 락이 더 적합할 수 있다고 하셨는데 이유가 뭔가요? 어떤 부분에서 성능상 이점이 있는지 궁금합니다. 자세하게 설명해주시면 정말 감사할 것 같습니다. 감사합니다!!

  • java
  • spring
  • 동시성
니나니노 댓글 2 좋아요 0 조회수 5566

userDetailService

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. userDetailService를 강의에서 만들지도 않았는데 의존주입하는건 처음보네요; 깃허브 소스에도 없구요. 어떻게 구현하라는 뜻인가요. 진짜 환불하고싶습니다. 내용도 너무 어렵게 설명하구요.

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 3 좋아요 -4 조회수 507

UserDetailService

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. UserDetailService를 해당강의에서 만드신적도 없는데 의존주입을 하시네요? 깃허브 소스에도 없고;; 도대체 어떻게 이해하란 말씀이십니까.. 그리고 내용도 너무 어려워서 환불하고 싶어죽겠네요 하아 강의자료를 왜 다운받아서.. 여튼 라이브코딩도 아니고 참.. UserDetailService를 보여주셔야할것같네요;

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 2 좋아요 0 조회수 307

userDetailService를 작성한 적이 없는데;

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님.. 너무 강의 못하시는거아닙니까.. userDetailService를 만든적도 없고 깃허브관련 소스들어가니까 있지도않은데;; 진짜 환불하고싶습니다.. 따라가기에 너무 어렵구요;;

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 2 좋아요 -3 조회수 479

1 - k 반례가 무엇인지 모르겠습니다. (JAVA)

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 큰돌님 강의 잘 듣고있습니다. 다름이 아니라 아래 코드에서 어떠한 이유로 통과가 안되는지 이유를 모르겠습니다. 감사합니다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] cnt = new int[26]; br.readLine().chars().forEach(i -> cnt[i - 'A']++); boolean checkOdd = false; char oddChar = '0'; StringBuilder sb = new StringBuilder(); for (int i = cnt.length - 1; i >= 0; i--) { if (cnt[i] == 0) continue; if (checkOdd && (cnt[i] & 1) == 1) { sb.setLength(0); // sb.append("I'm Sorry Hansoo"); break; } if ((cnt[i] & 1) == 1) { oddChar = (char) (i + 'A'); checkOdd = true; cnt[i]--; } for (int j = 0; j < cnt[i] / 2; j++) { sb.append((char) (i + 'A')); sb.insert(0, (char) (i + 'A')); } } if (Character.isLetter(oddChar)) { sb.insert(sb.length() / 2, oddChar); } System.out.print(sb.toString()); }

  • c++
  • 코딩-테스트
  • java
최찬호 댓글 2 좋아요 0 조회수 513

오류 질문입니다.

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이런 오류가 뜨는데,, 어떻게 해결해야하나요..?

  • java
  • spring-boot
  • spring-security
qkrtngus116 댓글 1 좋아요 -3 조회수 450

인기 태그

인프런 TOP Writers

주간 인기글