묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
윈도우 shift + f6 을 해도 적용이 안돼요
shift + f6 을 해도 서비스에 적용이 안돼요 구글링해봐도아래와 같은 글 뿐인데 저는 안되네요 ㅠㅠ 뭐가 문제일까요? 맥 아닙니다!! 윈도우에요!
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
내부클래스 접근지정자
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]DTO 클래스를 내부클래스로 만들었는데, 접근지정자를 public으로 지정해주지 않으면 Class 'CreateMemberResponse' is exposed outside its defined visibility scopeClass 'CreateMemberRequest' is exposed outside its defined visibility scope 이런식으로 경고가 발생합니다.강의에서는 public으로 지정하지 않아도 경고창이 뜨지 않았는데 왜그런걸까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
자바 gradle 21호환 버전문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.기존에 자바 11버전 사용하다 21 버전으로 프로젝트생성했는데 빌드작업이 안되고 있습니다애러 로그는이렇게 떠서 gradle 버전 변경해주고 프로젝트 설정도 변경해줘도 해결이 안되서 올립니다 ㅠㅠ
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
교재 속 나 혼자 코딩 문제 답안관련 질문
안녕하세요, 은종 선생님 🙂 다름 아니라 책에 있는 '나 혼자 코딩!'문제의 답안이 자료실 제공이라고 나와있는데..! 혹시 자료실은 어디있을까요!?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
hibernate.hbm2ddl.auto가 안먹어요
안녕하세요.hibernate.hbm2ddl.auto가 처음에는 create 가 잘 작동했습니다. 그런데 table 생성되고 난 뒤 update 로 age 필드 추가 시도했는데 alter문이 실행되지 않고 필드 추가가 일어나지 않아서 테이블는 당연히 생성되지 않았는데 그 이후로 select 문에서는 추가된 필드 age가 조회되는 걸 확인 할 수 있었어요. 이상해서 validation 처리하니, 다음[1]과 같이 에러가 났구요. create 로 변경 후 다시 실행하려고 하니 drop 도 안되고 여전히 동일한 select만 실행됩니다. 인텔리제이를 껐다 다시 켜도 동일합니다. 어떻게 처리하면 좋을까요 ? main.classpackage jpaBasic; import javax.persistence.*; import java.util.List; public class Main { public static void main(String[] args) { //EntityMangerFactory 객체 : 웹 서비스 당 한개 생성하는 개념, 디비당 한개 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); //EntityManager 객체 : 고객 요청이 들어올 때 사용 했다가 사용 후 삭제 ( 1회성 ) EntityManager em = emf.createEntityManager(); //EntityTransaction 객체 : jpa 데이터 변경은 무조건 트랜잭션 안에서 실행 해야 한다. EntityTransaction tx = em.getTransaction(); tx.begin(); try{ // Jpql : jpa에서 지원하는 객체 지향 SQL // 일반 쿼리문과 비슷하지만 조회하는 대상이 테이블이 아닌 Member 의 객체를 조회 한다. List<Member> results = em.createQuery("select m from Member as m", Member.class) .getResultList(); for (Member member : results){ System.out.println("member.id " + member.getId()); System.out.println("member.name " + member.getName()); } tx.commit(); }catch (Exception e){ tx.rollback(); }finally { em.close(); } emf.close(); } }member.class package jpaBasic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity public class Member { @Id private Long id; @Column(name="USER_NM", unique = true, length = 10) private String name ; private int age ; public Member() { } public Member(Long id, String name) { this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } pesistence.xml<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jpashop"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>[1] Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1016) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:942) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpaBasic.Main.main(Main.java:9) Caused by: java.lang.IllegalArgumentException: Unrecognized legacy `hibernate.hbm2ddl.auto` value : validation at org.hibernate.tool.schema.Action.interpretHbm2ddlSetting(Action.java:181) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator$ActionGrouping.interpret(SchemaManagementToolCoordinator.java:489) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:52) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) ... 4 more
-
미해결스프링 시큐리티 OAuth2
OAuth2.0 코드 부여 방식 인가서버를 REST API 서버 형태로 구현 질문
안녕하세요.. 선생님.. 드디어 완강했습니다.시간 엄청 걸리고 좀 힘들었네요. 다름이 아니라.모바일에서 요청하기 위한 자체 인가서버 OAuth2.0 authorization code 부여 방식 구현을 REST API 서버 형태로 구현할 수 있는지요?사용자 인증 시 웹 페이지 형태의 응답이 아닌 REST API 형태로 요청하고 응답을 받을 수 있도록 구현하려고 합니다. 원래는 인가서버에 사용자 로그인을 하고 동의해야 code 발급받고 클라이언트로 redirect 하여 클라이언트 서버가 대신 인가서버로 access token을 발급 받게 되는데.. 문제가 이 부분이네요.Spring Security 수업에서 ajax 방식으로 API 서버에 요청하면 보통 redirect 없이 응답만 받는 구조이다라고 선생님이 알려주셨는데요. 이와같이 redirect 없이 REST API로 구현할 수 있는 방법이 있는지요?인가서버 로그인은 form login 방식을 사용하지 않고 html 응답 없이 front end 단에서 fetch나 ajax API를 이용해서 POST 전송, json 형태로 username과 password 를 넣어서 요청하고 응답 처리를 할 수 있도록 커스텀하게 구현은 할 수는 있을 것 같긴 해요.. 동의화면은 그냥 false로 해서 안 나오게 하거나 아니면 login 완료 후 json 응답으로 동의가 필요하다는 응답을 주고 다시 POST 방식으로 동의하면 될 것 같긴하네요.클라이언트 서버는 그냥 리소스서버 처럼 사용해서, front end에서 클라이언트 서버로 access token을 전달하여 사용자 정보를 json 응답으로 가져오면 될 것 같아요. 하지만 문제는 redirect 처리를 어떻게 해야 하는지 잘 모르겠네요.인가서버에 임시코드 요청 시 json 응답으로 code를 주고 redirect 없시 다시 인가서버로 access token을 요청하는 방식으로 구현해야 하는지요?질문하면서도 authorization code 부여 방식에서 이렇게 구현을 하는게 맞는지? 의문이 드네요..이런 REST API OAuth2 인가서버라는게 표준 spec에 맞는지도 의문이고..모바일에서 REST API 방식으로 요청하고 인가서버에서 json 형태의 응답이 표준 spec 이랑 안 맞는 것 같기도 하고.. 무조건 html 웹 페이지 형태의 응답 기반으로 구현해야 하는지요? 여기에는 resource owner password 방식이 딱 맞는 것 같긴 한데 Deprecated 되어서 구현하면 안될 것 같고. 일반적으로 어떻게 구현하는지 알고 싶네요. 이런 케이스가 있는지요?어떻게 하면 좋을지 선생님 의견을 듣고 싶네요..감사합니다. ps 질문2. 클라이언 서버, 리소스서버로 딱딱 나누지 않고, 클라이언트 서버를 리소스서버 형태로 구현해서.. 사용자 인증 방식을 form login이 아닌 JwtDecoder 방식으로 인증 처리하여 클라이언트 서버가 서비스 정보를 주는 형태로 구현해도 되는지요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
반복문에서 사용되는 변수 선언 위치
[질문 내용]강사님, 안녕하세요!반복문에서 사용되는 변수의 선언 위치에 대해 질문 드립니다.반복문에서 반복 사용될 변수의 경우에 저는 위의 코드처럼 반복문이 시작하기 전에 선언하는 편이었는데요, 반복문이 실행될 때마다 변수가 선언되면 메모리 낭비가 아닐까 해서였어요. 그런데 교안 정답을 보니 productName, price, quantity를 반복문 내에서 선언하고 바로 사용하는 식으로 사용하시는 것을 보고 궁금해져 질문 드립니다!변수를 생성하고 삭제하는 것 자체는 메모리 소모가 유의미하지 않기 때문에 반복문 내에서 생성-사용-삭제를 반복하게 해도 괜찮은 걸까요? 유익한 강의 감사합니다! :)
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
새로운 switch 문 default
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 새로운 switch 문 (java 14이상) 을 작성할 때 default 문은 무조건 있어야 하는건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
수업자료 오타(?) 제보입니다..!
섹션 2 "변수" 수업 자료중 프로그램은 한 줄씩 순서대로 실행된다. 어떻게 실행된 것인지 자세히 확인해보자. ```javaa = 10; //변수 초기화: a(10) //1. 변수 a에 10을 저장한다.System.out.println(a); //2. 변수 a의 값을 읽는다. a에는 10이 들어있다. 10을 출력한다.a = 50; //변수 값 변경: //3. 변수 a의 값을 50으로 변경한다. a(10 -> 50)System.out.println(a); //4. 변수 a의 값을 읽는다. a에는 50이 들어있다. 50을 출력한다. ``` 참고로 변수의 값을 변경하면 변수에 들어있던 기존 값은 값은 삭제된다."값은" 이 중복 되어 있어 올립니다..!
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 1 - UI Programming
andriod.R.layout 에러 발생
// 어뎁터를 생성한다. (접혀져 있을 때의 모양을 설정) ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, andriod.R.layout.simple_spinner_item, data1); andriod.R.layout 인식이 안됍니다.
-
미해결김영한의 실전 자바 - 기본편
static 메모리 영역
안녕하세요! 강의 수강 중인 학생입니다:)자바 메모리 구조와 static 강의에서 static은 메서드 영역에 저장된다고 배우며, static 관련하여 찾아보던 중 자바 8버전 이후부터는 힙 영역에서 관리된다는 글을 확인하게 되었습니다.이후, static이 메서드 영역에 저장되는 것인지 힙 영역에 저장되는 것인지 명확하게 파악할 수 없어 질문 남기게 되었습니다ㅜㅜ 어떤 부분에서 관리되는 것일까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@JsonIgnore
@JsonIgnore의 위치는 양방향 연관관계 중 아무곳이나 적어줘도 되는 건가요??
-
미해결스프링 시큐리티 OAuth2
backchannel에 대해서
안녕하세요 섬세하고 친절한 강의 잘 듣고 있습니다.다름이 아니라 백채널과 프론트채널이 있는데백채널은 어떤 암호화기법이 추가로 있는 통신망을 뜻하는건지요?구체적인 차이점을 알고 싶습니다.감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest.java를 다 만들었는데 항상 이 문구만 떠요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Expected java.lang.IllegalStateException to be thrown, but nothing was thrown 이게 문제인가요?이게 문제인가요? 중복처리에서 걸려야 하는데 안 걸려요
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이 and 이클립스 대해서 질문하려고 합니다
예전에 이클립스로 자바 수업을 듣고 공부했는데...이클립스 로 사용했던 자바 언어과 인텔리제이로 자바 언어과는 틀린가요?안틀리면은 이클립스로 공부하다가 취업 후 인텔리제이로 해보려고 합니다 지금은 프론트엔드 취준생입니다 답변을 부탁합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]findById의 리턴 값은 Optonal.ofNullable을 사용해서 값을 반환하는데findByName의 리턴 값은 왜 Optoinal.ofNullable을 사용하지 않나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
배열에 대한 질문
안녕하세요 강사님 배열에 대해서 정말 이해하기 쉽게 알려주셔서 정말 감사드립니다!students[0] = 90;students[1] = 80;students[2] = 70;students[3] = 60;students[4] = 50;이 선언문을 for문을 활용해서students[i]가 이전의 값을 계속 참조해서 10씩 증가즉,students[0] = 60;students[1] = 70;students[2] = 80;students[3] = 90;students[4] = 100;이렇게 응용한 코드를 작성해보려고 했는데 해당코드가 리펙토링이 잘 된 코드인지 컨펌을 받고 싶습니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Section3_01. 두 배열 합치기에서 런타임 에러 미해결
package Section3; import java.util.Scanner; public class Q1 { /** * 내가 구현한 방법 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] first = new int[N]; for (int i = 0; i < N; i++) { first[i] = sc.nextInt(); } int M = sc.nextInt(); int[] second = new int[M]; for (int i = 0; i < M; i++) { second[i] = sc.nextInt(); } int total = N + M; int p1 = 0, p2 = 0; int[] third = new int[total]; for (int i = 0; i < total; i++) { if (p1 < N && first[p1] < second[p2]) { third[i] = first[p1]; p1++; } else{ third[i] = second[p2]; p2++; } } for (int i = 0; i < total; i++) { System.out.print(third[i] + " "); } } }3_01. 두 배열 합치기 문제에 대한 답안 작성코드 입니다. IDE에서 예제1 케이스에 대해서 직접 대입해보면 정상 작동하고, 정답 출력과 동일하게 출력됩니다. 하지만, 채점을 받아보면 1번 케이스에서 런타임 에러가 발생합니다. 계속 수정하고, 고민해봐도 어느 부분에서 런타임 에러가 발생하는지 모르겠어서 질문 남깁니다 !
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
h2데이터베이스 연결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]내부 커넥션풀이 이상하다고 에러가 뜨는거 같은데 (jpa Main 실행시킴)어디가 잘못된건가요ㅠㅠ연결은 되는데 jpa로 생성한 테이블들이 생성이 안됩니다 ㅠ
-
미해결자바 코딩테스트 - it 대기업 유제
정렬해서 문제풀면
안녕하세요! hashset을 만들고 정렬한뒤 뒤를 확인하는 식으로 풀면 실제 코딩테스트 문제에서는 시간초과가 나타날까요?