inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

생성자를 2개 둘 경우 @Autowired

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 구글링을 해보면 생성자 주입이 아닌 @Autowired(필드주입), setter 는 final로 선언이 불가하다고 찾았습니다. private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy 이 경우에 @RequiredArgsConstructor를 사용해서 생성자를 하나만 사용할 경우 @Autowired를 안 써도 된다고 강의에서 말하셨는데 그럼 @Autowired가 생략됐을 뿐 final과 같이 쓰고있다고 생각이 드는데 그럼 생성자가 2개일 경우엔 final 과 함께 @Autowired를 생성자 1개당 1개씩 쓰나요? final과 @Autowired 선언이 불가하다라는 것은 무슨 뜻인가요??

  • spring
  • oop
이시영 댓글 1 좋아요 0 조회수 638

토비의 스프링

해결됨

토비의 스프링 부트 - 이해와 원리

이 강의를 듣기 위해서 강사님께서 작성하신 토비의 스프링 3.1 책을 반드시 선행으로 필독해야 하나요?

  • spring-boot
  • spring
  • spring-jdbc
김낙영 댓글 1 좋아요 0 조회수 1884

분기별 매출 보고서 작성 시 해당 분기에 매출이 없는 항목은 삭제하는 방법

미해결

업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우

안녕하세요, 강의 너무 도움이 많이 되고 참고하며 업무 진행하고 있습니다. 감사합니다. 다름이 아니라, 분기별 매출 보고서 작성 강의를 참고하다가 해당 분기에 매출이 없는 항목은 자동으로 삭제하는 방법을 여쭈어보고 싶어서 질문글을 남깁니다. 예를 들어 4분기 설정시 해당 분기에 매출이 없는 항목은 보고서에서 자동으로 안보이게 숨김 처리가 되었으면 합니다. 답글 남겨주신다면 정말 큰 도움이 될듯 합니다. 감사합니다.

  • excel
  • ms-office
정노을 댓글 1 좋아요 0 조회수 313

?: (staticfiles.W004) The directory '/static/' in the STATICFILES_DIRS setting does not exist.

해결됨

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

강사님 안녕하세요! 오늘도 뭔가 따라하다가 ?: (staticfiles.W004) The directory '/static/' in the STATICFILES_DIRS setting does not exist. 라는 에러가 나더라구요. python manage.py runserver 자체는 되는데요. 어떻게 해결하는게 좋을까요? 참고로 강사님을 따라했다가 안되서 "버전이 제가 4버전을 써서 그런가.. 싶어서 3버전으로도 시도를 해봤는데 안되는 부분이 있어서 구글링 후 기존의 경로인 'static' 이런거를 '/static/'이런식으로 바꿔주긴 했습니다! (그런데 또 이게 문제가 될까? 싶기도해서요 ㅠㅠ 시도한 이후에 다시 장고4버전으로 변경했습니다.! 부분적으로 필요한 정보를 공유드립니다! #1 common.py 파일 BASE_DIR = Path(__file__).resolve().parent.parent ... TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR, 'templates') # BASE_DIR / 'templates' ], ... DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } ... STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, '/static/') ] STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # Default primary key field type # https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' INTERNAL_IPS = ['127.0.0.1'] 바로 위의 질문의 연장선상의 문제라고 보이는데요. admin 페이지 경로자체도 없어졌습니다! 어떻게 해결하는게 좋을까요? ㅠㅠ

  • error
  • docker
  • react
  • django
  • python
최다니엘 댓글 1 좋아요 1 조회수 2124

spacing 직접 지정

해결됨

퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)

안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 padding 혹은 margin을 직접 크기를 주고 싶을 땐 어떻게 해야 할까요? 다른 프레임워크에서는 보통 뒤에 -숫자를 넣으면 해당 숫자만큼 margin 혹은 padding이 되던데 Quasar에서는 어떻게 되는지 궁금합니다.

  • quasar
  • vuejs
밤의멜로디 댓글 1 좋아요 0 조회수 288

Module not found: Can't resolve 'fs' 오류

미해결

만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)

제선에서 할 수 있는 방법은 다 해본거 같은데 모르겠습니다.. config 수정 node v 18- >14 fs오류때문에 강의 진행이 안되고있습니다 ㅠ 해결방법이 무엇일까요

  • Next.js
댓글 1 좋아요 0 조회수 2173

형변화 오버로딩을 어떤식으로 이해해야 할지모르겠습니다.

해결됨

홍정모의 따라하며 배우는 C++

안녕하세요. 9.8 형 변환 강의를 듣던 중 이해가 되지 않는 부분이 있어서 질문합니다. 19~23줄에 있는 int형 변환 함수에 리턴타입이 없는이유가 궁금합니다. 함수가 클래스 내부변수에 이미 멤버로 정의가 되어있어서 변수에 접근할 수 있기 때문에 따로 리턴타입을 정의하지 않은건가요? 19줄 operator int 뒤에 있는 ()의 의미가 궁금합니다. 예를 들어 아래는 9-6 수업 첨자연산자 오버로딩의 예 입니다. int& operator [] (const int index) { return m_list[index]; } 그런데 이경우는 매개변수도 정의가 되어있고 리턴타입도 정의가 되어있어서 [ ] 안에 값을 넣음으로서 이러한 기능이 작동하는것으로 알고있었습니다. 그런데 19줄은 매개변수가 없어서 int뒤에오는 ()가 매개변수를 담는 ()인지 아니면 위 예에서 [ ]같이 사용되는것인지 모르겠습니다. [ ] 처럼사용되는것이라면 47줄에는 ( )안에 Cents가 아닌 int가 들어가있는데 어째서 정상작동하는것인지 모르겠습니다. 앞서 1,2번의 궁금증을 해결하기보다는 그냥 오버로딩이 이러한 형식으로 작동하고 47~49줄 처럼 형태는 다르지만 오버로딩을 배우기전 알고있던 기본적인 형변환방식에 모두 적용이된다 라고만 이해하고있으면 될까요?

  • C++
mankaru 댓글 1 좋아요 0 조회수 523

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

함수 호출을 하다가 리턴하기 전에 eip가 널이 되면 어떻게 동작하는지 궁금해서 한번 시도해봤는데요. 예를 들면 main() 함수에서 A() 함수를 호출하고 또 A() 함수에서 중간에 B() 함수를 호출하는데 B() 함수를 리턴하기 전에 eip 값을 0x00000000과 같은 널 값으로 고쳐보았습니다. 이렇게 하면 리턴하고나서 뭔가 에러?엑세스 위반? 이라는 게 뜨는 것 같더라구요 근데 만약 이렇게 해서 엑세스 위반이 났을 때 어떤 함수를 호출할 때 잘못됐는지 디버깅 상에서 추적하려면 어떤 순서로 추적해야하는지 궁금합니다!

  • 함수호출
  • 스택프레임
  • C++
dbdmswl5218 댓글 1 좋아요 0 조회수 337

Case 피봇 리트코드 문제 문의

미해결

[백문이불여일타] 데이터 분석을 위한 중급 SQL

항상 좋은 답변 주셔서 감사드려요! 리트코드 문제 풀다가 궁금한 점이 있는데요.. 아래 캡쳐는 문제 풀이 전에 제가 짜본 코드인데요. 월별 Revenue를 구하려면 Case를 Sum으로 묶어주면 된다고 하셨는데, 이 테이블 값들은 어차피 월별로 ID&revenue가 겹치는 값이 없어서, 제가 캡쳐한 내용과 같이 SUM으로 묶어주지 않아도 값들이 출력되어야 할 것 같은데... SUM으로 묶어 주지 않으면 FEB, MAR의 ID=1인 revenue 값이 누락됩니다ㅠㅠ 집계함수를 묶어줄 떄와 묶어주지 않았을 때 왜 이런 차이가 생기는 걸까요?ㅠㅠ 뭔가 그룹핑하는 것과 관련이 있는 것 같은데 잘 모르겠네요...ㅠㅠ

  • sql
khjsj 댓글 1 좋아요 0 조회수 444

스프링부트 db에 저장된 데이터 html에 리스트로 뿌리기

미해결

↑↑↑↑↑↑↑↑↑↑↑↑↑mysql 에 들어있는 데이터 5개를 위처럼 db안의 데이터를 html화면에 리스트로 뿌리려고 합니다 컨트롤러 -------------------------------------------------------------------------------------- import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Controller public class reviewController { private final reviewService reviewService; @RequestMapping("/AAA2") public String review() { return "AAA2"; } @GetMapping("/form-action02") public String list( @RequestParam String reviewStar, @RequestParam String id, @RequestParam String reviewContents, Model model) { List<review> reviewList = this.reviewService.getList(); model.addAttribute("reviewList",reviewList); return "AAA2"; } } -------------------------------------------------------------------------------------- 레파지토리 -------------------------------------------------------------------------------------- import java.util.List; import org.springframework.data .jpa.repository.JpaRepository; import org.springframework.data .jpa.repository.Query; import org.springframework.stereotype.Repository; @Repository public interface reviewRepository extends JpaRepository<review, String>{ @Query(value = "SELECT * FROM REVIEW_LIST", nativeQuery = true) List<review> findAll(); } -------------------------------------------------------------------------------------- 서비스 -------------------------------------------------------------------------------------- import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Service public class reviewService { @Autowired private final reviewRepository reviewRepository; public List<review> getList() { return this.reviewRepository.findAll(); } } -------------------------------------------------------------------------------------- 엔티티 -------------------------------------------------------------------------------------- import java.time.LocalDateTime; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id ; import jakarta.persistence.Table; import lombok.Getter; @Entity @Getter @Table(name = "REVIEW_LIST") public class review { @Id @Column private int sortnum; @Column private String id; @Column private String reviewContents; @Column private String reviewStar; @Column private LocalDateTime createDate; } -------------------------------------------------------------------------------------- html -------------------------------------------------------------------------------------- <form action="form-action02" name="myform" id="myform" method="get"> <fieldset> <span class="text-bold">평점을 선택해주세요</span> <input type="radio" name="reviewStar" value="★★★★★" id="rate1"><label for="rate1">★</label> <input type="radio" name="reviewStar" value="★★★★☆" id="rate2"><label for="rate2">★</label> <input type="radio" name="reviewStar" value="★★★☆☆" id="rate3"><label for="rate3">★</label> <input type="radio" name="reviewStar" value="★★☆☆☆" id="rate4"><label for="rate4">★</label> <input type="radio" name="reviewStar" value="★☆☆☆☆" id="rate5"><label for="rate5">★</label> </fieldset> <div> <input type="text" name="id" placeholder="닉네임 입력"><br><br> <textarea class="col-auto form-control" type="text" name="reviewContents" id="reviewContents" value="<?php echo $reviewContents?>" placeholder="리뷰 작성란"></textarea> </div> <div class="mainPage02"><br><br> <input type="submit" value = "작성"> </div> </form> <table class="courseTable" style="border-left: none; border-right: none;"> <thead> <tr> <th style="border-left: none;">평점</th> <th>닉네임</th> <th>내용</th> <th style="border-right: none;">작성일자</th> </tr> </thead> <tbody> <tr th:each="list : ${reviewList}"> <td style="border-left: none;" th:text="${list.reviewStar}"></td> <td th:text="${ list.id }"></td> <td th:text="${list.reviewContents}"></td> <td style="border-right: none;"> <td th:text="${list.createDate}"></td> </tr> </tbody> </table> -------------------------------------------------------------------------------------- 제가 짠 코드인데 아무리해도 리스트가 출력이 안됩니다.. 도와주십시오

임여명 댓글 0 좋아요 0 조회수 899

chap12 -05 동기화 질문

해결됨

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

package chap_12; import chap_12.clean.Room; public class _05_Synchronization { public static void main(String[] args) { Room room = new Room(); Runnable cleaner1 = () -> { System.out.println("-- 직원1 청소 시작 --"); for (int i = 1; i <= 5; i++) { room.clean("직원1"); } System.out.println("직원1 청소 끝!"); }; Runnable cleaner2 = () -> { System.out.println("-- 직원2 청소 시작 --"); for (int i = 1; i <= 5; i++) { room.clean("직원2"); } System.out.println("직원2 청소 끝!"); }; Thread cleanerThread1 = new Thread(cleaner1); Thread cleanerThread2 = new Thread(cleaner2); cleanerThread1.start(); cleanerThread2.start(); } } package chap_12.clean; public class Room { public int number = 1; synchronized public void clean(String name) { System.out.println(name + " : " + number + "번방 청소 중!"); number++; } } Room class 에서 synchronized 를 빼면 실행할때마다 직원 1, 2 가 섞여서 나오는데 동기화를 넣어주면 아무리 여러번 실행하더라도 -- 직원1 청소 시작 -- -- 직원2 청소 시작 -- 직원1 : 1번방 청소 중! 직원1 : 2번방 청소 중! 직원1 : 3번방 청소 중! 직원1 : 4번방 청소 중! 직원1 : 5번방 청소 중! 직원1 청소 끝! 직원2 : 6번방 청소 중! 직원2 : 7번방 청소 중! 직원2 : 8번방 청소 중! 직원2 : 9번방 청소 중! 직원2 : 10번방 청소 중! 직원2 청소 끝! 의 결과 밖에 나오지 않습니다. 제 코드에서 문제 되는 부분이 있을가요? ㅠㅠ

  • oop
  • java
쿰창쿰창 댓글 1 좋아요 0 조회수 266

BP_GameMode가 안보입니다.

미해결

[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문

다른 블루프린트 클래스들은 콘텐츠 브라우저에 제가 저장한 위치에 보이는데, GameModeBase를 상속받아서 만든 BP_GameMode는 언리얼을 껐다 키면 콘텐츠 브라우저에서 사라집니다. 월드 세팅에서 게임모드 오버라이드 항목에 BP_GameMode를 선택할 수 있지만, 정작 BP_GameMode가 콘텐츠 브라우저에 나타나지 않아 BP_GameMode를 수정할 수 없습니다. 파일 탐색기에서 언리얼 프로젝트가 저장 되어 있는 폴더에 들어가서 보면, 다른 블루프린트 클래스 들과 같이 BP_GameMode.uasset 이라고 파일이 있지만 언리얼 콘텐츠 브라우저에만 표시가 안되는데 왜 그럴까요?

  • blueprint
  • unreal
sohu0121 댓글 1 좋아요 0 조회수 495

블로그 포스팅 문의

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요 강사님? 혹시 제공해주시는 문제랑 풀이를 블로그에 포스팅해도 괜찮을까요? 개인 공부 기록을 목적으로 합니다. 강의 잘 듣고 있습니다. 항상 건강 유의하시길 바랍니다. 공익규 드림.

  • python
  • 코테 준비 같이 해요!
공익규 댓글 1 좋아요 0 조회수 402

멤버변수 뿐만 아니라 메소드도 그대로 상속되는 것은 알겠는데요. 질문이 있습니다

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

# 일반 유닛 class Unit: def __init__(self, name, hp): self.name = name self.hp = hp print(f"{name} 유닛이 생성 되었습니다.") print(f"체력 {hp}") # 공격 유닛은 일반 유닛을 상속받아서 만들어짐 class AttackUnit(Unit): def __init__(self, name, hp, damage): Unit.__init__(self, name, hp) self.damage = damage print(f"공격력 {damage}") 이렇게 출력이 되는데, 저는 공격유닛은 체력 50, 공격력 16으로 출력하고 싶은데 어떻게 하나요?

  • 클래스
  • 상속
  • python
  • 메소드
Ambition 댓글 0 좋아요 0 조회수 274

스프링 빈 자동 등록과 수동 등록시 빈 이름의 차이

미해결

스프링 핵심 원리 - 기본편

안녕하세요 빈 등록 관련하여 질문이 있습니다 컴포넌트 스캔 쪽을 공부하고 나서 생긴 의문인데요 MemberServiceImpl 클래스를 빈으로 등록하고자 할 때, (수동등록) @Configuration public class AppConfig { @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } (자동등록) @Configuration // 컴포넌트 스캔 시 AppConfig와 TestConfig 등 다른 설정 정보는 등록되지 않도록 하기 위함 @ComponentScan( basePackages = "hello.core", basePackageClasses = AutoAppConfig.class, excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { } @Component public class MemberServiceImpl implements MemberService{ // MemberServiceImpl 구현 코드 ~ } 를 통하여 진행되는데요 이때 수동등록에서는 MemberServiceImpl 클래스 스프링 빈의 이름이 MemberServiceImpl을 생성하는 메서드 이름인 "memberService"이고, 자동등록에서는 클래스의 이름을 따서 "memberServiceImpl" 인 것을 확인했습니다 (수동등록 테스트) public class ConfigurationSingletonTest { @Test void configurationTest() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); Assertions.assertThat(memberService).isInstanceOf(MemberService.class); } } (자동등록 테스트) public class AutoAppConfigTest { @Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService1 = ac.getBean("memberServiceImpl", MemberService.class); Assertions.assertThat(memberService1).isInstanceOf(MemberService.class); } } 같은 스프링 빈이지만 등록 과정에 따라서 이렇게 이름이 차이가 나는 이유가 따로 있을까요?? 그냥 스프링의 관습으로 이해하고 넘어가야할까요 ^^? 감사합니다~

  • spring
  • oop
스프링터 댓글 1 좋아요 0 조회수 721

BBox 좌표 Training관련 문의드립니다.

미해결

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

안녕하세요. 늘 감사한 마음으로 수업을 듣고 있습니다. 답변도 늘 달아주셔서 감사합니다. 제가 직관적으로 이해가 되지 않아서 문의드립니다. two-stage object detection의 경우 S.S 를 거치든, RPN을 거치든 Region proposal 된 Image들을 Resize 한 후, 그 이미지들만 다음 단계의 feature extractor를 통하고 그 값들을 classification하던가 bbox regression 하는 것으로 이해했는데요 classification이야 잘라진 object 이미지가 들어가니 학습 가능하다고 이해되도 bbox의 경우 잘라진 이미지만 들어가고 전체 이미지나 상대적 위치 정보가 input에 들어있지 않은데, 뭘 가지고 학습하는 건지 직관적으로 이해되지 않습니다. 그냥 이미지에 따른 라벨 외우기인가요? 예를 들어 차(car)라는 영역만 짤려서 들어가는데 원래 그림에서 어느 위치에 있는지 위치 정보 찾으라는게 가능한가 해서요. (원래 이미지는 보여주지 않은채) training image마다 object 위치 값을 외우는 식의 학습인가 해서 문의드립니다.

  • 머신러닝 배워볼래요?
  • 컴퓨터-비전
  • 딥러닝
  • keras
  • python
  • tensorflow
Eunmi 댓글 1 좋아요 0 조회수 541

App.vue 물결 표시 제거 방법

해결됨

Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"

lecture 6 강의 들으면서 위와 같은 현상이 발생하는데 해결법이 궁금해서 문의 남겨요.

  • vuejs
sungmin_hwang 댓글 1 좋아요 0 조회수 406

join에 대해 질문있습니다.

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

public List<Order> findAllWithMemberDelivery() { return em.createQuery("select o from Order o ", Order.class).getResultList(); } 이렇게 order만 select해줘도 @GetMapping("api/v3.1/orders") private List<OrderDto>ordersV3_page(){ List<Order>orders=orderRepository.findAllWithMemberDelivery(); List<OrderDto>result=new ArrayList<>(); for(Order order:orders){ result.add(new OrderDto(order)); } return result; } 강의자료와 동일하게 설계해서 뿌려주면 //postman의 결과 [ { "orderId": 4, "name": "userA", "orderDate": "2023-01-19T14:02:41.723635", "address": { "city": "서울", "street": "1", "zipcode": "1111" }, "orderStatus": "ORDER", "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 1 } ] }, { "orderId": 11, "name": "userB", "orderDate": "2023-01-19T14:02:41.79964", "address": { "city": "진주", "street": "2", "zipcode": "2222" }, "orderStatus": "ORDER", "orderItems": [ { "itemName": "SPRING1 BOOK", "orderPrice": 20000, "count": 3 }, { "itemName": "SPRING2 BOOK", "orderPrice": 40000, "count": 4 } ] } ] 이렇게 원하는 결과가 나옵니다.(물론 item id가 없습니다.) 즉 Order만 select해도 Dto에 설계한대로 정보가 잘 나오는데 o.member 등을 join하는 이유는 item id 등이 필요할 때가 있어서 그런건가요?

  • java
  • spring-boot
  • JPA
  • spring
gogoDevelop 댓글 1 좋아요 0 조회수 1017

안녕하세요 질문이있습니다

해결됨

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

스프링입문강의를듣고있습니다 7강을듣다가 깊은내용위주보다도 큰틀로설명해주신다고했는데 혹시 깊은내용이나 강의하신게있으시다면 듣고싶은데 스프링에대한 깊은강의도있을까요?

  • java
  • spring-boot
  • spring
  • MVC
whdxoddl999 댓글 1 좋아요 0 조회수 354

인기 태그

인프런 TOP Writers

주간 인기글