묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티 OAuth2
강의에서 사용하는 keycloak 버전인 19.0.1 다운로드 URI 공유
강의를 매끄럽게 따라하려면 똑같은 keycloak 버전을 사용하셔야 합니다.2x.x.x 버전 사용 시 openid를 강제로 사용해야 할 수 있습니다. 다운로드 URI : https://github.com/keycloak/keycloak/releases/download/19.0.1/keycloak-19.0.1.tar.gz
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
적성....
냉정하게 적성이 없지만 꾸역꾸역 만들어가고 있는 사람입니다.. 여러분 화이팅!!!!!!!!!!!!
-
미해결스프링 시큐리티 OAuth2
Missing parameter: code 에러
Oauth 2.0 User 모델 소개(2)영상에서 assessToken 호출을 위한 과정을 진행하는데 발생한 문제입니다.keycloack 버전이 달라 발생한 문제인지 질문드립니다.현재 keycloack 버전 21.1.2 입니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Transactional이 필요한곳과 필요없는곳
안녕하세요 service 관련 코드를 공부하다가 질문이 생겨서 문의드립니다.제가 지금까지 봤던 코드들은 @Transactional(readOnly = true) 는 Read할 때 사용을 하고 @Transactional은 Read를 제외한 CUD일 때 사용을 한다고 알고있는데, 인터넷을 찾아보니 "모든 CUD 관련 코드에 @Transactional을 무분별하게 사용하면 성능에 저하가 올 수 있다. 트랜잭션은 묶음의 처리입니다. 단건의 INSERT, DELETE, UPDATE 는 Transaction 이 필요하지 않습니다." 라고 블로그에서 보았습니다. 모든 CUD 관련 코드에다가 @Transactional을 붙이면 안되는건가요? 또한 @Transactional(readOnly = true) 는 Read 관련 코드에 붙이는게 필수는 아닌가요? 어떤 방식으로 코드를 짜는게 좋은 코드인지 궁금합니다.
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
this 질문
그러면 main 메소드 내에Thread thread1 = new Thread(..);Thread thread2 = new Thread(..); 이걸 실행하면main 스택프레임내에 참조변수가 저장이될텐데thread1,thread2가 아닌 this로 저장된다는건가요? 그러면 예를들어, 참조변수 a의 메소드를 실행하게된다면 먼저 스택프레임내에서 참조변수에서 실제 인스턴스가 저장된 힙 주소를 꺼내어서 그 힙주소로 간다음 메소드를 가져오는게 아니라 참조변수 a가 아닌 this 인거죠?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
강의 자료 어디에서 받아볼 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]수업자료 (문제풀이)만 보면서 직접 풀어보고 싶은데 자료는 어디서 받아볼 수 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
findBy 로 조회 시에, 조회 조건으로 PK vs Unique 제약조건 컬럼
테이블은 한 게시글 당 게시글 이미지를 여러 개 저장할 수 있도록 하는 postImage 테이블이고pk는 autoincrement인 Long 타입 postImageId입니다.그리고 unique한 조건은 @ManyToOne으로 매핑된 post(not null)와 imageUrl(not null) 컬럼의 조합입니다.이 때, postImage 엔티티를 조회하기 위해서는 pk인 postImageId로 조회하는게 좋을까요? 아니면unique 제약조건인 post+imageUrl로 조회하는게 좋을까요?실무에서 더 선호되는 방식이나 성능적, 설계적으로 좋은 방식이 궁금합니다
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드와 메모리영역 질문
1:31 경에 쓰레드1,2,3 3개의 객체를 만들고 실행하잖아요 그러면 1:49 그림에서 3개의 인스턴스가 그려져야하는거 아닌가요?반복문을 통해 Thread를 100개 실행하고 있습니다. 여기서, thread 참조변수에 Thread 객체를 생성하고 있던데, 그렇다면 for문 순회하나하고 블록 종료시점에 스택프레임이 제거되어 thread 참조변수는 제거될것이고 힙영역에 Thread 객체가 존재하다가 나중에 GC 실행시점에 Thread 객체가 지워질것으로 보이는데 맞나요? 만약 그렇게 Thread 객체가 지워진다면 실행중이던 스레드도 중단되나요?
-
미해결스프링 시큐리티 OAuth2
프론트엔드 + 서버 oauth2 연동
안녕하세요, 좋은 강의 감사합니다. 현재 제가 개발중인 react 로 된 SPA 어플리케이션이 있는데요, 프론트엔드에서 직접 authorization server 로 access token 을 가져오자니 페이지가 새로고침 될때 날라가는 현상이 발생합니다. 이를 localStorage, sessionStorage, cookie 등에 저장하는것도 안전하지 않아서 (혹시 안전하게 하는 방법이 있나요?)아예 "로그인"만 서버쪽에서 수행하고 access token, refresh token 을 프론트로 전달해줘서 refresh token 만 httpOnly Cookie 에 넣으려고 합니다. 이제 새로고침 될때마다 서버에 access token 요청을 refresh token 으로 한다음, 그 access token 을 사용하려고 합니다. 혹시 이 같은 방식이 쓰이는지 알 수 있을까요? 아니면 추천해 주시고 싶은 방식이 있으신가요? 2. 서버 사이드 view 를 통해 로그인만 oauth2Login 으로 수행하고, 로그인 후 나머지는 SPA 프론트엔드로 리다이렉트 가 가능한가요? 혹은 이렇게 쓰기도 하나요?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
메서드 영역에 static 변수?
자바 8부터 Heap 영역에 Static Object(Static Variable, static객체 , static method)이 존재하고MetaSpace에는 static reference만 저장한다고 아래 글에서 읽었습니다.https://openjdk.org/jeps/122어떤게 맞는건가요? 제가 오역한거같지는 않은게 다른 분들도 그렇게 말씀하시는것 같습니다.https://jgrammer.tistory.com/entry/JAVA-Java8%EB%B6%80%ED%84%B0%EB%8A%94-static%EC%9D%B4-heap%EC%98%81%EC%97%AD%EC%97%90-%EC%A0%80%EC%9E%A5%EB%90%9C%EB%8B%A4
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
12장 퀴즈 runnableSet 질문
퀴즈 풀이 진행시저는 _03_JOIN 에서 사용한 것 처럼 클래스 내부에 함수를 만들어서 호출해서 사용하는 방식을 했습니다. 코드package chap_12; public class _Quiz_12 { public static void main(String[] args) { Pkg pkg1 = new Pkg(); Pkg pkg2 = new Pkg(); Runnable a = new Runnable() { @Override public void run() { String name = "A"; int number = 1; for (int i = 1; i <= 5; i++) { pkg1.pack("A"); } System.out.println(" -- A 상품 준비 완료 -- "); } }; Runnable b = new Runnable() { @Override public void run() { String name = "B"; int number = 1; for (int i = 1; i <= 5; i++) { pkg2.pack("B"); } System.out.println(" -- B 상품 준비 완료 -- "); } }; Thread pkgA = new Thread(a); Thread pkgB = new Thread(b); pkgA.start(); pkgB.start(); try { pkgA.join(); pkgB.join(); } catch (InterruptedException e) { throw new RuntimeException(e); } Dmz(); } public static void Dmz() { for (int i = 1; i <= 5; i++) { System.out.println("세트 상품 포장 시작 " + i + "/5"); } System.out.println(" == 세트 상품 포장 완료 == "); } } class Pkg { public int number = 1; public void pack(String name) { // 직원 1 : 3번방 청소 완료 System.out.println(name + "상품 준비 " + number + "/5"); number++; } } 영상에서는 이전과 다르게 Runnable 인터페이스를 구현하여서? 하는걸 보았습니다결과는 똑같이 나오는데 기능적으로나 프로그램적으로 어떠한 차이가 있는지 알려주시면 감사하겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Team 클래스에서 member를 List로 저장하는 이유
안녕하세요 강의 잘 보고있습니다!다름아니라 Member 클래스에서는 List를 쓰지않고 Team team으로 객체를 저장하셨는데Team 클래스에서는 List를 사용하여 member를 저장하는 이유가 궁금합니다.팀이 1이고 멤버가 N이여서 팀에 여러명의 멤버가 들어갈 수 있으므로 List를 사용하신걸까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
한 부모테이블에 속한 자식 테이블들의 칼럼이 전부 NOT NULL일 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Item 부모 클래스를 Album , Book , Movie 자식 클래스들이 상속받는 상황에서 해당 자식 테이블들 칼럼들이 전부 NOT NULL일 경우 단일 테이블 전략을 쓰고 데이터를 삽입할 경우 다른 자식 객체에 값에 NULL이 들어감으로써 NOT NULL 조건을 위배하여 오류가 발생즉 이럴 경우 JOINED 전략을 통해 칼럼들이 NOT NULL이어도 테이블이 자식 별로 분리돼서 생성됨에 따라 NOT NULL 조건을 위반하지 않고 원활하게 삽입될 수 있습니다.[핵심 질문]하지만 규모가 크지 않은 프로젝트에서 선생님께서는 단일 테이블 전략이 좋다고 하셨는데, 규모가 크지 않은 프로젝트에서라도 일반적으로 칼럼들이 NOT NULL로 설정되는 경우가 많은데 이런 경우에는 불가피하게 무조건적으로 조인 전략(JOINED)을 채택해야하는지 여쭙고 싶습니다 !
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
붙여넣기 후 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 순수 JDBC영상 7분30초 쯤 파일참고해서 붙여넣기를 했더니 빨간줄이 어마무시하게 많이 그였습니다.원인좀 알려주실 수 있을까요https://drive.google.com/file/d/16hfb328rA7fdLiE6oxILNIjL-gpDYSPL/view?usp=sharing
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
동적 의존성 주입과 Volatile
[질문]2024.08.07 까지는 정액할인, 2024.08.08 부터는 비율할인 정책이 반영되어야 하는 비즈니스 로직이 있고, 이를 스케줄러를 활용하여 2024.08.08 00:00:00에 Setter를 활용하여 비율할인을 구현한 Bean을 Injection 하여 처리하도록 구현했다고 가정하면, 이런 경우에도 아주 아주 엄밀하게 00:00:00에 모든 할인 정책이 완벽히 적용되어야 한다면, 인스턴스 변수에 volatile을 반드시 명시해줘야 하는 것인가요? 경험이 미천하여 웹프로그래밍 할 때 volatile를 사용한 것을 거의 보지 못하였고, 위의 가정처럼 아주 엄밀한 동작을 요구하는 경우는 없었고 그간 별다른 일도 없긴 하였는데, 개념을 듣고 복기해보니 장애의 요인이 될 수 있을 것 같아 여쭙습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Controller를 통한 페이지 화면이 안 보입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]정적 페이지는 잘 랜딩되는데, Controller를 통해 랜딩하는 페이지들은 에러 페이지라고 뜹니다.8080/ 페이지만 잘 나오고, 나머지 controller를 통한건 다 안 나옵니다.
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요 scope function 에 receiver 가 없는 경우
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.아래 처럼 receiver 없이 사용이 가능하더라구요? 근데, apply 시그니처는 분명히 확장함수인데, receiver 를 안주는 경우, SomeTest 클래스의 인스턴스가 receiver 로 되는거 같아요. 아무리 찾아봐도, 이런 동작에 대해서는 공식문서상에 안보이는거 같은데, 왜 이런건지 알 수 있을까요? (레퍼런스도 같이 제공해주시면 저도 한번 보고싶습니다 ㅠㅠ) class SomeTest { @Test fun test() { val found = apply { hello() val user = User("kim") println(user) } } fun hello() { println("hello") } } data class User( val userName: String, )
-
미해결김영한의 실전 자바 - 기본편
다형성에 관련된 질문입니다
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. package poly.ex3.car0; public class CarDrive { private Driver driver; public void setDriver(Driver driver){ //Driver driver = K3car k3 = new k3Car() System.out.println("자동차를 설정합니다 :" + driver); this.driver=driver; } public void drive(){ System.out.println("자동차를 운전합니다"); driver.stop(); driver.move(); driver.engine(); } }public class CarMain { public static void main(String[] args) { CarDrive car=new CarDrive(); K3Car k3=new K3Car(); car.setDriver(k3); car.drive(); Driver porches =new Porche(); car.setDriver(porches); car.drive();main 함수에서 porches는 Driver 타입으로 업케스팅을해서 넘어가고 K3Car는 업케스팅을하지않은상태로 setDriver 함수에 넘어갑니다 그리고 setDriver 함수의 매개변수인 (Driver driver)에서 첫번쨰인 k3는 업케스팅이 이루어지고 Driver driver=new K3Car();두번쨰인 porches 는 이미 업케스팅이 이루어진 Driver 타입 객체이기때문에 그냥 넘어가는것으로 이해했는데 이게 맞는건지 햇갈려서 질문드립니다 그리고 이렇게 미리 두번쨰처럼 업케스팅을해서 매개변수로 넘겨주는것이 올바른접근법인지도 궁금합니다
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
다운로드 소스코드 질문입니다,
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다운로드 소스코드 실행하는데 사진과 같이 오류가 뜨는데 이미 사용되고 있다던데 왜 이런 오류가 뜨는지 잘모르겠습니다
-
미해결김영한의 실전 자바 - 중급 1편
랜덤함수 질문드립니다.
이렇게 처리했을때 콘솔화면 처럼 숫자가 0이 나오는데 왜그런지 알 수있을까요?아래는 메인 소스입니다.