inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

제네릭 코드에서 new 키워드를 사용할 수 없다면 불변 객체를 어떻게 활용할 수 있나요?

미해결

김영한의 실전 자바 - 중급 2편

불변 객체는 내부 필드에 변경이 생길 경우 새로운 객체를 반환해줘야 한다고 배웠습니다. 제네릭 타입은 타입 소거 문제 때문에 new 키워드를 사용할 수 없는데... 이 경우 제네릭과 불변 객체는 공존할 수 없는 건가요? 아래 코드와 같이 실습을 해봤는데 주석 처리한 부분을 어떻게 해결해야 할지 잘 모르겠습니다 ㅠㅠ public class Box<T extends Animal> { private final T value; public Box(T value) { this.value = value; } public T get() { return value; } public Box<T> withName(String name) { //이 부분을 어떻게 처리해야할까요..? } } public class Animal { private final String name; private final int size; public Animal(String name, int size) { this.name = name; this.size = size; } public Animal withName(String name) { return new Animal(name, size); } public class Dog extends Animal { public Dog(String name, int size) { super(name, size); } @Override public Dog withName(String name) { return new Dog(name, getSize()); } }

  • java
  • 객체지향
  • 제네릭
  • 불변
싱숭생숭 댓글 1 좋아요 0 조회수 207

지하철 노선도 미션 VPC IP 대역 질문

해결됨

인프라공방 - 그럴듯한 서비스 만들기

지하철 노선도 미션의 망 구성하기 에서 처음 VPC를 생성할 때, 할당하는 CIDR 블록도 결국은 프라이빗 IP 주소라고 이해하는게 맞는건가요? 제가 이해한 내용은 다음과 같습니다. VPC에 할당된 CIDR 블록 (192.168.0.0/24) 및 내부에 속한 4개의 서브넷 IP 대역은 모두 VPC 내에서만 사용되는 프라이빗 IP 주소다. 퍼블릭 서브넷 자체는 프라이빗 IP 주소로 할당되어 있지만, 퍼블릭 서브넷인 이유는 IGW와 연결되어 인터넷 접속이 가능하기 때문이다. (인터넷 통신을 할 때, NAT를 통해 프라이빗 IP 주소가 IGW의 퍼블릭 IP 주소로 변환된다) 제가 이해한 내용이 맞는지 혹시 이 중에서 틀린 내용이 있는지 알고 싶습니다!

  • 네트워크
  • linux
  • aws
  • mysql
  • spring-boot
cho766 댓글 1 좋아요 1 조회수 262

Controller에서 Repository 참조

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 잘 보고 있습니다. 컨트롤러에서 Repository에 바로 의존성이 있는 방식으로 사용하는 예제를 알려주셨는데 간단한 예시를 들어주시느라 사용하신 패턴이신가요? 아니면 어차피 페이징 기능은 레포지토리 단의 간단한 메서드로 충분히 수행되므로 서비스 레이어를 통한 매핑이 불필요해서 그러신건가요??

  • java
  • spring
  • spring-boot
  • jpa
김해찬 댓글 2 좋아요 0 조회수 144

fetchjoin 미적용 쿼리

미해결

실전! Querydsl

@PersistenceUnit EntityManagerFactory emf; @Test public void fetchJoinNo() { em.flush(); em.clear(); Member findMember = queryFactory.selectFrom(member).where(member.name.eq("kim")).fetchOne(); boolean loaded = emf.getPersistenceUnitUtil().isLoaded(findMember.getCart()); assertThat(loaded).as("패치조인미적용").isFalse(); } // select // m1_0.member_id, // m1_0.city, // m1_0.street, // m1_0.zipcode, // m1_0.cart_id, // m1_0.member_login_id, // m1_0.member_login_pw, // m1_0.name // from // member m1_0 // where // m1_0.name=? // -> 분명히 fetch join 미적용인데 select 절에 연관 entity 가 같이 조회되는 이유를 모르겠습니다. 현재 Cart 엔티티는 member 와 @OneToOne 관계이고 @FetchJoin.LAZY 로 설정되어 있습니다.

  • java
  • jpa
수빈 댓글 2 좋아요 0 조회수 176

POSIX named semaphore 자원이 제대로 해지되지 못한 상태로 프로세스가 종료됐을 때 해당 semaphore 재사용 방법

미해결

리눅스 IPC 프로그래밍 - 이론과 실습

안녕하세요. 커리어를 위해 해당 업무를 수강하는 개린이(개발자 어린이)입니다. 구현 중 해결되지 못한 사항이 있어 질문 남깁니다. 현재 구현하고 있는 상황은 두 개의 프로세스(A.exe, B.exe)가 임계영역에 접근하기 위해 posix named semaphore를 사용해 동시성을 지키고 있는 예제를 만들었습니다. named semaphore를 1개 만들어 두 개의 프로세스에 번갈아 소유권을 넘겨 임계영역에 접근하는 예제입니다. 따라서 두 프로세스의 코드는 동일합니다. 같은 이름으로 만들어진 named semaphore가 있다면 EEXIST 에러를 조건문으로 걸어 이미 생성된 named semaphore를 사용하도록 예외처리를 해놓은 상태입니다. 여기서 하나의 프로세스(B.exe)가 named semaphore의 소유권을 가지고 있던 상태에서 갑작스러운 상황에 비정상적으로 종료된다면, 즉 named semaphore의 자원을 정상적으로 sem_post(sem) 하지 못한 상태에서 프로세스가 종료되는 상황에서 다시 해당 프로세스를 동작시켰을 때, 기존에 사용됐던 named semaphore가 정상 동작하지 않는 것을 확인했습니다. 제가 생각했을 땐 비정상적으로 프로세스가 종료되면서 메모리 어딘가에 해당 named semaphore 주소값이 있고 그 주소값을 가져오지 못해 생기는 메모리 낭비의 영역인 것 같습니다. 이런 경우에, 프로세스가 비정상적으로 종료된 경우에 같은이름으로 선언된 naemd semaphore를 재사용하는 방법이나 예외처리나 파라미터 flag 값들이 있다면 지식을 나눠주시면 감사하겠습니다.

  • linux
  • 프로세스불안정종료
  • 자원사용불가능
damingu 댓글 2 좋아요 0 조회수 243

인증 코드를 통해 발급 받은 토큰의 관리

미해결

스프링 시큐리티 OAuth2

안녕하세요 강사님 OAuth2 로그인을 구현하고 회원 탈퇴를 위해 구글과 카카오의 unlink API를 호출하려는데, 소셜 로그인 과정을 시큐리티가 자동으로 처리해주고 있어서 API 호출에 필요한 토큰이 관리되고 있지 않은 상황입니다. 이럴 때 어떤 방식으로 토큰을 받아야 하는지 궁금합니다. 제가 생각해본 방법은 다음 두가지가 있습니다. 첫 번째 방법 : 인증 코드를 직접 요청하고, 반환 받은 인증 코드로 토큰 또한 직접 요청 두 번째 방법 : 설정해둔 리다이렉트 URI에 대한 처리를 직접 구현 후, 인증 코드를 받고, 해당 인증 코드로 토큰을 직접 요청 혹시 이중에 맞는 방법이 있는지, 아니면 시큐리티의 자연스러운 흐름안에서 토큰을 받을 방법이 있을까요? 보통 어떤식으로 토큰 값을 받는지 궁금합니다!

  • java
  • spring
  • spring-boot
  • oauth
댓글 1 좋아요 0 조회수 213

pojo 에 setter 가 없는 경우가 있을까요?

해결됨

실전 jOOQ! Type Safe SQL with Java

안녕하세요 강사님. jooq 강의 잘 듣고 있습니다. 현재 update 부분 강의를 들으면서 실습해보고 있는데 Actor 에 setter 메소드들이 없어서 dao 를 통한 update를 하는데 다소 어려움이 생겼습니다. insert 의 경우는 생성자에 데이터를 넣어서 잘 넘어갔는데, update 에서는 setter 가 없으니까, insert 한 값을 Actor 객체로 반환 받아서 그 객체에 있는 setter 를 이용해 update 하는 방식이 불가능하다 보니 "setter 는 어디로 갔는가?" 생각이 들더라구요. 실습중인 jooq 버전은 3.19.5 이고, 아래는 Actor pojo 파일 구조 입니다.

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
창랑 댓글 1 좋아요 1 조회수 217

한국어 더빙이 안되는것 같네요~

해결됨

[인프런 X VMware Tanzu] Spring Boot 밋업 with Josh Long

한국어 더빙이 안되는것 같은데요~ 다른 언어는 다 되는데 한국어를 선택하면 영어로 나오네요~

  • java
  • spring
  • spring-boot
이종석 댓글 1 좋아요 0 조회수 199

이상한게 있습니다..

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. Team team = new Team(); team.setTeamNm("Team"); em.persist(team); Members members = new Members(); members.setName("good"); members.setHelloTeam(team); em.persist(members); em.flush(); em.clear(); Members finMembers = em.find(Members.class, members.getId()); List<Members> result = finMembers.getHelloTeam().getMembers(); System.out.println("aaaaaaaaaaaaaaaaaaaa="+result.size()); 뭔가 이상해요 em.flush(); em.clear(); 을 안쓰면 finMembers까지는 null 이 아닌데 results 까지는 null입니다. 왜 이런거예요 ???

  • java
  • jpa
junil jeong 댓글 2 좋아요 1 조회수 165

질문의 질 문의

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

전에 질문 드린바와 같이(아래 링크 참조) https://www.inflearn.com/community/questions/1427027?focusComment=380094 private Date deliveryPlanDate; @Column(name = "delivery_plan_date") private Date planDate; 개발하는데 있어서 이런거에 너무 집착하는게 아닐까 걱정됩니다. 제가 경력이 4년(php만 사용)이어도 자바 백엔드 개발자로 농담삼아서 신분세탁하러 이직한다고 퇴사하고 자바, 스프링 공부 한답시고 직접 개발하면서 부족한 부분이 무엇인지 파악하고 복습하는 식으로 하는데, 저런 네이밍 규칙때문에 너무 발목을 잡고 있는거 같아 자괴감이 듭니다. 너무 쓸데 없는거에 집착하는건지 현실적으로 피드백 주시면 감사하겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 2 좋아요 0 조회수 75

db컬럼 명과 class 멤버 명 통일성

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

class Delivery { private Date deliveryPlanDate; @Column(name = "delivery_plan_date") private Date planDate; } 이럴땐 둘 중 어떤게 더 효율적인가요:?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 2 좋아요 0 조회수 108

OCP에서 궁금한게 있습니다.

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] OCP를 공부하면서 궁금한점이 있습니다. Car 인터페이스를 implements 하는 GoodCar이라는 클래스에 Nav() 라는 네비게이션 기능을 추가하려면 Car 인터페이스에도 Nav()라는 함수를 추가해야 Driver가 사용가능할거 같습니다. 이러면 기존의 Car을 implements하는 클래스들이 매서드 미구현으로 에러가 발생합니다. 그래서 Car 인터페이스를 안바꾸려면 앞서 배운 fly 인터페이스처럼 따로 인터페이스를 만들면 구현은 가능할거 같은데, 이런 경우 OCP를 지킨다고 할 수 있나요? 아니면 다른 방법이 있을까요?

  • java
  • 객체지향
유승현 댓글 1 좋아요 0 조회수 98

부모 객체, 자식 객체에 대한 질문

미해결

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

안녕하세요. 이번에 JPA 로드맵을 다시 한번 복습을 하면서 부모 객체, 자식 객체에 대한 궁금한 점이 생겼습니다. 부모 객체, 자식 객체 관계의 용어는 어떤 상황에서 사용해야 하는 건가요? 연관 관계도 아닌 것 같고.. 상속 관계도 아닌 것 같고.. (자바, 스프링 로드맵에서 강사님이 항상 강조하시는 말씀이 있죠. 부모는 ~ 품을 수 있지만 자식은 ~ 품을 수 없다. 근데 JPA에서는 전혀 다른 상황인 것 같아서요.) cascade와 orphanRemoval 기능을 사용하기 위해 cascade와 orphanRemoval 코드를 내부에 적은 객체 자체가 부모 객체가 되는 건가요? 예를 들면 @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = LAZY) @JoinColumn(name = "member_id") private Member member; @JsonIgnore @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true) private List<OrderItem> orderItems = new ArrayList<>(); @JsonIgnore @OneToOne(fetch = LAZY, cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "delivery_id") private Delivery delivery; ... ​위의 코드에서 cascade = CascadeType.ALL, orphanRemoval = true 기능을 사용해서 생명주기의 책임이 있는 Order 엔티티 객체가 부모 객체가 되고 OrderItem과 Delivery 엔티티 객체가 자식 객체가 되는건가요?

  • java
  • jpa
sparkyoon 댓글 1 좋아요 1 조회수 88

고급1편 안 듣고 고급2편 들어도 되나요?

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

고급2편 내용 먼저 들으려는데 멀티스레드 동시성 이거 무조건 들어야 고급 2편 들을 수 잇을까요?

  • java
  • 네트워크
  • 객체지향
tkadnd2242 댓글 2 좋아요 0 조회수 408

@Override

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 자식 클래스에서 부모 클래스를 상속받아 변수를 새로 재정의 할 때 왜 변수에는 @Override 어노테이션을 사용 할 수 없는 건가요? 생각해보니까 메소드 오버라이딩은 있어도 자식클래스에서 부모클래스의 동일한 변수는 왜 재정의가 안되는 거죠?

  • java
  • 객체지향
soojinkimss 댓글 1 좋아요 0 조회수 109

재생이 안됩니다ㅠㅠ

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

갑자기 모든 강의가 재생이 안됩니다ㅠㅠ

  • java
  • 객체지향
tjdals4358 댓글 2 좋아요 0 조회수 128

인텔리제이 SDK 오류

미해결

김영한의 실전 자바 - 중급 2편

인텔리제이에서 java-mid2 폴더를 열면 파일들이 안보이는데 SDK 오류 같습니다. 어떤 버전의 SDK 써야 오류 안나나요? 지금은 Eclipse Termurin 21.0.4 -aarch64 설정되어 있네요

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
최연승 댓글 2 좋아요 0 조회수 181

한 엔티티에 같은 JoinColumn name이 있을경우 어떻게 처리하는지 궁금합니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User createUser; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User lastModifyUser; DB 한 테이블에 글 등록 유저 정보와 마지막 수정 유저 정보를 넣도록 설계했는데 아래와 같이 안되면 이럴때는 보통 설계를 어떻게 하나요?? Caused by: org.hibernate.MappingException : Column 'user_id' is duplicated in mapping for entity 'study.factory.domain.Order' (use '@Column(insertable=false, updatable=false)' when mapping multiple properties to the same column)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 93

engine = new Engine(this) 는 어떤 식으로 인스턴스화가 이루어지나요?

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. private String model; private int chargeLevel; private Engine engine; public Car(String model, int chargeLevel) { this.model = model; this.chargeLevel = chargeLevel; engine = new Engine(this); } Car 를 생성하는 도중에 Engine 객체를 생성하기 위해 this 로 자기 자신을 넘겨주게 되면 어떤 순서로 객체가 만들어지는 건가요? - 초기화가 제대로 이루어지지 않은 Car 객체를 Engine에 넘겨주는 건가요? - 아니면 객체의 필드를 초기화하고 생성하기 이전에 참조 값만 생성해서 넘겨주는 건가요?

  • java
  • 객체지향
싱숭생숭 댓글 1 좋아요 0 조회수 170

members 화면 출력시 생기는 문제

해결됨

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

코드 복붙하였고 3 jpa 4 가나다로 결과가 안나옵니다

  • java
  • spring
  • mvc
  • spring-boot
peter 댓글 2 좋아요 1 조회수 166

인기 태그

인프런 TOP Writers

주간 인기글