묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
void의 사용에 대해
메소드 강의에서 3분 24초 쯤 void를 이용하는데 왜 갑자기 void를 쓰는지에 대한 설명이 없어서 헷갈려서 질문드립니다. 어떨 때 void를 쓰는지 ( 제가 알기론 반환 값이 없을 때 사용 ) 그리고 위의 부분들과 어떠한 점이 달라서 void를 쓰게 되었는지를 잘 모르겠습니다... 객체 듣다가 너무 어려워서 객체 파트만 2번째 듣는데 너무 어렵네요 ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
의존관계주입에 관하여 질문이 있씁니다!
스프링 부트를 사용하여 프로젝트를 진행한 경험이 있습니다. 스프링 이론에 대한 전반적인 이해가 부족하여 이번 강의를 듣게 되었습니다.스프링 부트에서 프로젝트를 진행할 때는 구현체와 인터페이스를 구분하여 클래스를 생성하지 않고 구현체만 생성해서 진행했습니다. 따라서 MemberService를 직접 MemberController에서 호출해서 사용했습니다. 이 때, new를 하지 않고 바로 메서드 사용이 가능했습니다. 이는 스프링 부트가 @Autowired를 하지 않아도 자동으로 빈등록을 해줘서 가능한건지 궁금합니다.또한 매 프로젝트를 진행할 때마다 구현체와 인터페이스를 분리하여 진행하는 것이 좋은 개발인지도 궁금합니다!마지막으로 구현체와 인터페이스를 하나의 패키지에 관리하는 것인지 아니면 구현체는 구현체끼리 인터페이스는 인터페이스끼리 관리하는 것인지도 궁금합니다!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈1번
String busName = "전주08"; System.out.println( "버스 번호는 " + busName + "입니다."); int leftTime = Integer.parseInt("5"); System.out.println("남은 시간은 " + leftTime + "분 입니다"); double leftDistance = Double.parseDouble("1.5"); System.out.println("남은 거리는 " + leftDistance + "Km 입니다");String busNo = "전주08"int minutes = 5; 이렇게 만드는 거랑 위의 방법으로 만드는 거랑 출력은 같아 보여도 컴퓨터가 인식했을 때 다른가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
블로그에 정리해서 올려도 될까요?
안녕하세요 나도 코딩님 강의 잘 듣고 있고 배운지 꽤 되서 감을 잊고있었는데 되새김질이 되서 좋습니다. 제가 또 잊어버릴까봐 걱정되서 그러는데 혹시 제가 블로그에 정리해도 되나요???퀴즈에 대한 강의는 나도 코딩님의 지적 재산이니 일절 올리지 않을것이고 강의로 인해 배운 지식에 대해서만 올리겠습니다.기본 예시에 대한 문제라면 제가 어레인지해서 올리도록하겠습니다. 허락 부탁드립니다...!!!!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz6에 대한 피드백 부탁드립니다(이번 문제는 배열이 아니라 String 클래스라서 "*" 처리하는데 굉장히 애먹었네요 ㅎㅎ;;)
package chap_06; public class _Quiz_06 { public static String getHiddenData(String src, int index) { // 1. substring()을 이용하면 문자열의 일부를 자를 수 있음 // 2. length()를 이용하면 문자열의 길이를 알 수 있음 // 알고리즘: src의 길이를 파악한 후, substring()으로 문자열을 먼저 잘라보자 String temp = src.substring(index); // index부터 슬라이싱 String hiddenStr = temp.replaceAll("[코딩]", "*"); // 나** String hiddenNum = hiddenStr.replaceAll("[0-9]", "*"); // 0~9까지의 모든숫자를 *로 만들겠다 String ori = src.substring(0, index); return ori + hiddenNum; } public static void main(String[] args) { // 1. 개인정보를 비공개로 전환하는 메소드 작성 // 2. 하나의 메소드에서 모든 동작 처리( getHiddenData(name, 1) ) // 3. 각 정보는 아래 위치부터 비공개 적용 String name = "나코딩"; // 이름 String id = "990130-1234567"; // 주민등록번호 String phone = "010-1234-5678"; // 전화번호 System.out.println("이름 : " + getHiddenData(name, 1)); // 개인정보, 비공개 시작 위치 System.out.println("주민등록번호 : " + getHiddenData(id, 8)); System.out.println("전화번호 : " + getHiddenData(phone, 9)); } }추가로, str.replaceAll() 메소드는 oldstring를 []와 같이 정규표현식(regular expression)으로 사용하여, []안에 있는 모든 값을 newstring으로 바꾸겠다는 의미입니다.https://jamesdreaming.tistory.com/85str.replace()는 예를 들어, str.replace("코딩, "*")을 하면 나*만 나오는데 비해, str.replaceAll("[코딩]", "*")을 하면 나**로 나오는 것으로 보아, 정규식에 포함하는 리터럴 상수를 하나씩 *로 바꿔주는 것 같습니다.
-
미해결스프링 핵심 원리 - 기본편
close()메서드는 왜 호출되어야 작동하나요?
init()과 다르게 호출되어야 작동하는게 단순 궁금해서 질문합니다
-
미해결스프링 핵심 원리 - 기본편
강의를 수강하는 순서에 대해 질문 드립니다.
안녕하세요 현재 백엔드 개발자 취준생으로 스프링 로드맵을 전체 결제 후 로드맵 순서 대로스프링 입문편 -> 스프링 기초편 까지 수강하였습니다.그런데 강의의 마지막 목차인 다음으로에서 JPA를 수강하고 나머지 스프링 부트를 수강하는게 더 좋을 것이다 라는 느낌을 받았는데로드맵 순서대로가 아닌 현재에서 JPA 로드맵을 수강신청후 듣고나서 나머지 남은 스프링 강의들을 수강해야할까요 ??로드맵을 신청하기전에 김영한님의 유튜브 로드맵 영상을 봤을 때는 스프링 부트 로드맵을 끝낸 뒤 -> JPA 로드맵 수강 이 순서라 생각해 먼저 스프링 부트 로드맵을 다 수강신청 해 스프링 부트를 다 끝내고 JPA를 수강할 예정이였는데어떤 순서로 들어야할 지 햇갈려서 질문드립니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
2가지 이상 자료형을 가지는 변수는 받을 수 없나요?
2가지 이상 자료형을 가지는 변수는 받을 수 없나요?String | int 이렇게 두가지를 같이 선언 불가한가요?
-
미해결스프링 핵심 원리 - 기본편
NoUniqueBeanDefinitionException가 안발생해요
[질문 내용]같은 타입의 빈을 컨테이너에 2개 이상 등록하면 NoUniqueBeanDefinitionException가 발생해야하는데 테스트가 문제없이 돌아가요. 검색해보니 제가 자식클래스를 직접 빈에 등록해서 생긴것같은데 이걸 해결해도 계속 문제가 발생하지 않네요.. 뭐가 문제일까요
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
int size = 120;
int size = 120;size = size + 10; System.out.println(size)int는 자료형의 변수 size와 아래 코드에 있는 size는 다른 건가요? size라는 덩어리에 값을 담는 다는 건 알고 있습니다.
-
미해결스프링 핵심 원리 - 기본편
java 17버전으로 사용하면 안되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 11로 변경하기가 어려워서요 ㅠㅠ17로 사용해도 괜찮을까요?
-
미해결스프링 핵심 원리 - 기본편
RateDiscountPolicyTest 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]int discount = discountPolicy.discount(member, 10000); 여기에서 member부분이 오류가 납니다.java: cannot find symbol symbol: variable member location: class hello.core.discount.RateDiscountPolicyTest이렇게 나오는데 뭐가 문제인가요?
-
미해결스프링 핵심 원리 - 기본편
getInstance()와 DIP
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]싱글톤은 DIP를 위반한다는 설명에서(기존)public MemberService memberService(){ return new MemberServiceImpl(memberserviceRepository());}(싱글톤 패턴 적용 시)public MemberService memberService(){ return MemberServiceImpl.getInstance();}에서 구체 클래스에 의존하기 때문에 DIP를 위반한다고 하셨습니다. 하지만 AppConfig에는 객체 인스턴스를 연결하기 위해 어차피 구체클래스를 사용하는데, DIP를 위반한다고 하는 이유가 뭔지 궁금합니다!
-
미해결스프링 핵심 원리 - 기본편
생성자 주입을 잘 이해하지 못했어요.
강의 수강 중 궁금한 부분이 있어 질문 남깁니다.빈이 두개 일때를 가정한다면필드 주입의 경우 @primary 기준으로 우선순위를 정해 사용하겠지만생성자 주입을 사용하게 될 경우 외부에서 객체를 주입하게 되어 @primary가 의미 없게 되지 않나요??OrderServiceImpl orderService = new OrderServiceIm 또한 생성자 주입을 사용할 시 인스턴스를 생성할 때마다 객체를 주입해야하게 되는데, 그렇다면 주입할 객체를 변경하게 될때 모든 코드를 수정해야하는 단점이 있는거 아닌가요?? 어느 부분을 놓친건지 모르겠네요 ㅠㅠ
-
해결됨스프링 핵심 원리 - 기본편
MemberServiceTest에서 Assertions부분이 궁금합니다.
assertThat과 isEqualTo로 각각 member, findMember 객체를 비교해 주셨는데테스트를 진행하면 객체 안의 id, name, grade가 각각 대조되어 비교된다 라고 이해해도 될까요?
-
미해결스프링 핵심 원리 - 기본편
@autowired 사용 시 @configruation 필요 여부
안녕하세요 강의 듣던 중 궁금함이 생겨 문의드립니다. @Configuration은 CGLIB을 이용하여 스프링컨테이너의 싱글톤을 보장해준다로 이해하였습니다.그런데 "@Autowired은 타입이 같은 bean을 찾아 자동주입해준다"를 듣고보니 Autowired가 있을 경우에도 싱글톤이 보장될 거 같아 테스트를 해보니 실제로 싱글톤을 보장해주고 있었습니다. 그렇다면 @Componentscan과 @autowired를 조합할 경우 configuration은 불필요한 애노테이션인가요?아래 코드에서 Service와 Member에 주입된 Repo 인스턴스가 동일한 인스턴스였습니다.package mytest; public class MyTestClass{ @ComponentScan static class MyAutoConfig{ } @Component static class Repo{ public Repo(){ System.out.println("Created!"); } } @Component static class Service{ private final Repo repo; @Autowired public Service(Repo repo){ this.repo = repo; } public Repo getRepo(){ return this.repo; } } @Component static class Member{ private final Repo repo; @Autowired public Member(Repo repo){ this.repo = repo; } public Repo getRepo(){ return this.repo; } }
-
해결됨스프링 핵심 원리 - 기본편
dip 의존관계 역전 원칙을 보고 질문드립니다.
memberservice가 memberRepository 인터페이를 바라보게 한다는것은 결국 범용성을 좋게해서 다른 객체로 갈아끼우기 쉽게 하기위함인건가요?
-
해결됨스프링 핵심 원리 - 기본편
OrderServiceTest 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.OrderServiceTest 실행 시 NullPointException이 발생합니다.(OrderServiceTest)orderService.createOrder() 부분에서 발생하는데, 더 파고들면, discount() 메서드에서 발생합니다.(OrderServiceImpl)강의와 똑같이 코드를 작성하였는데, 오류가 계속 뜨네요. 제가 생각한 오류의 이유는 test 클래스 작성 시 MemberServiceImpl에서 생성하는 MemoryMemberRepository 객체와 OrderServiceImpl에서 생성하는 MemoryMemberRepository 객체가 일치하지 않기 때문에, 서로 다른 객체에서 memberId를 저장하고 조회하기 때문에 오류가 발생하는 것으로 보입니다.해서 객체 주소를 찍어보는 코드를 넣어보았는데요,(OrderServiceImpl)(MemberServiceImpl)이렇게 해서 test를 실행하면 다음과 같이 나옵니다.위 두 줄 마지막에 MemberServiceImpl에서 생성한 MemberRepository 객체와 OrderServiceImpl에서 생성한 MemberRepository 객체가 상이합니다. 이와 관련하여 코드를 변경해야 한다면, 어떻게 변경하여 적용하는 것이 좋을지 조언 부탁드립니다.혹시 제가 놓친 부분이 있으면 말씀 부탁드립니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
@PreDestory 가 없어도 실행되는 이유 및 사용하는 경우
@PostConstruct의 경우 주석처리 하면 init 메서드가 실행되지 않더라구요. 근데 @PreDestory의 경우 주석처리를 해도 close 메서드가 실행되던데 @Bean 애노테이션을 이용하여 NetworkClient를 등록 할 때 destoryMethod가 생략됐고, 추론형이 발동해서? 실행되는 거 맞나요? 그렇다면 반대로 @PostConstruct의 경우에는 추론형이 없을까요? 없다면 이유는 무엇인가요? 이 @Postconstruct와 @PreDestory는 언제 사용하나요? Bean의 생명 주기를 알아야 할 필요가 있을까요?
-
미해결스프링 핵심 원리 - 기본편
인테리 j에서도 오픈콜하이라키 기능이 있나요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]반복적으로 복습을 하고있는상황인데요 특정 메서드 호출하여 사용하는 클래스 위치 알아내는 방법이 있을까요?