inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

itemSteam open update close 질문

미해결

스프링 배치

안녕하세요 강의 중 궁금한 사항이 있어 질문드립니다. chunkSize 가 만약 5이고 데이터 사이즈가 10이라면 step을 실행할 때 최초 reader, writer 의 open 메서드를 실행시키고 최초 update 실행 후 chunk process (read, process, write) 5번 주기로 update를 실행, 마지막으로 reader, writer close 해주는걸로 알고 있는데요 여기서 update는 총 3번 진행되는게 맞는건가요? -> 최초 1회, 5번일 때 1회, 10번일때 1회

  • spring-boot
  • spring-batch
hoonseung 댓글 1 좋아요 0 조회수 146

public void changeTeam 함수

해결됨

실전! 스프링 데이터 JPA

안녕하세요. Member가 team이 바뀌면 this.team = team; team.getMembers().add(this); team이 변경되어서 현재 멤버의 팀 정보를 업데이트하고 새로운 팀에 새로운 멤버를 넣는다라고 이해했는데요, 기존 팀에 속해있던 멤버 정보는 안지워도 되는걸까요? 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
rmsid1312 댓글 2 좋아요 0 조회수 118

git 사용 오류 질문 드립니다

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

강의 내용대로 진행 후 commit 창과 git 창을 열었을 때 제가 이전에 작업했던 파일들 (D: 루트 디렉토리 안에 있는 이전에 git에 업로드한 적 있는 모든 파일들)이 함께 보입니다 파일 경로를 모두 열어보면 선택해서 진행할 수는 있지만 해당 프로젝트의 git 시작 디렉토리가 제대로 설정되지 않은 것 같아 어떻게 해결하는지 질문 드립니다

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
KUMU 댓글 2 좋아요 0 조회수 274

@JopScope, stepScope 지연 초기화 관련 질문

미해결

스프링 배치

안녕하세요 강사님 스코프 객체 지연 초기화에 대해 질문이 있습니다. 해당 어노테이션을 사용하면 스프링 컨텍스트 초기화 시점에 실제 객체 지연 초기화를 위해 컨테이너에 프록시 객체를 미리 등록해 놓고 해당 객체의 메서드 사용 시점에 실제 객체가 생성되는 것으로 알고 있는데요 이 때 실제 객체를 생성하면은 스프링 컨테이너에 빈으로 또 다시 등록하나요? 아니면 실제 객체 생성 후에 참조만 프록시에게 넘겨주어 동작하게 되는건가요?

  • spring-boot
  • spring-batch
hoonseung 댓글 1 좋아요 1 조회수 159

jwt login flow에 대해서 질문드립니다.

미해결

스프링 시큐리티 OAuth2

현재 login post 요청만 되는 것으로 확인이 됩니다. 1. login post요청만 받을 수 있도록 설정되어 있는 클래스가 궁금합니다. 2. 기존에 있던 loginfilter가 사라지고 현재는 어떤 필터로 대체 되었는지 알고 싶습니다. 3. http.addFilterBefore(jwtAuthenticationFilter(macSecuritySigner, octetSequenceKey), UsernamePasswordAuthenticationFilter.class); http.addFilterBefore(jwtAuthorizationMacFilter(octetSequenceKey), UsernamePasswordAuthenticationFilter.class); 현재 이렇게 코드가 있는데, 인증일 경우 jwtAuthenticationFilter만 권한 검증일 경우 jwtAuthorizationMacFilter로 가는지 여부 결정하는 과정에 대해서 설명부탁드립니다.

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

초기 설정 오류 및 실행 안 됨

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 자바 버전 17 스프링 부트 3.3.4 위와 같이 오류가 뜨며 run 버튼이 나타나지 않습니다. 첫 번째 오류 메시지 Cause: class jdk.internal.loader.ClassLoaders$PlatformClassLoader cannot be cast to class java.net .URLClassLoader (jdk.internal.loader.ClassLoaders$PlatformClassLoader and java.net .URLClassLoader are in module java.base of loader 'bootstrap') 두 번째 오류 메시지 Could not configure services using BuildScopeServices.configure(). > Could not configure services using BuildScopeCompileServices.configure(). * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 35ms .gradle 에서 캐시 삭제 해봤습니다. intellij 재설치 해봤습니다. 프로젝트를 열 때 build.gradle 파일을 선택하였습니다. 어떻게 해결하면 좋을까요...

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 794

hello-mvc와 hello-template

해결됨

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

hello-template으로 return해서 hello-template.html에서 thymeleaft에 로직 처리가 되는것은 이해했으나 그걸 다시 변환후에 주소창에 보면 hello-template에서 처리를 하였는데 왜 hello-template?name=spring가 아닌 hello-mvc?name=spring가 되는건지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 1 좋아요 0 조회수 303

csrf POST 요청 시에 토큰값 넣어도 안되는 경우 확인해보세요

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

_csrf 파라미터 이름과 값 사이에 공백이 있는지 확인해보세요 공백이 있을 경우 아래와 같이 공백을 지우고 다시 시도하시면 정상 작동됩니다 ### POST request with a header POST http://localhost:8080/csrf Content-Type: application/x-www-form-urlencoded _csrf=6LGfk2d_v1r5vsNT5VxTiI_8HIvuqSEMwVrVRCCQUXXhiSxyjNSppF5Jjz_Uiftmg3FnurzEMbONyhkhpD-wfROnYUTUuE5E

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
시나모롤 댓글 1 좋아요 0 조회수 348

제가 이해를 제대로 했는지 궁금해서 질문드립니다

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

클라이언트 응답후 SecurityContextHolder는 계속 clear된다고 이해했습니다. 그럼 결국 Session에는 SecurityContext 가 저장되서 유지되는거고, 인증이 필요할때 해당 Session에서 SecurityContext를 꺼내 해당 요청동안에 SecurityContextHolder에 저장해서 사용한다고 이해하면 될까요?

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
kyb1208tg 댓글 2 좋아요 0 조회수 158

오류가 자꾸 나는데 왜이러는 걸까요?ㅠㅠ

해결됨

스프링 부트 웹 개발 입문 - 따라하며 배우기

server: port: 8081 spring: thymeleaf: prefix: classpath:/templates suffix: .html cache: false devtools: livereload: enabled: true restart: enabled: false datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/boot username: root password: mybatis: mapper-locations: classpath:sqlmap/**/*.xml configuration: map-underscore-to-camel-case: true package hello.sailing.v1.service; import hello.sailing.v1.dao.MenuDao; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Log4j2 public class MenuSvc { @Autowired MenuDao menuDao; public MenuSvc() { log.info("===== MenuSvc , 생성자 ====="); } public List<Map<String, Object>> doMenu() { List<Map<String, Object>> list = menuDao.doMenu(); log.info(list); return list; } public List<Map<String, Object>> dolistOld() { List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("No","1"); map.put("name","아이스아메리카노"); map.put("kind","커피"); map.put("price","2,000"); map.put("reg_day","2020.10.29"); map.put("mod_day","2021.10.29"); list.add(map); Map<String, Object> map2 = new HashMap<>(); map2.put("No","2"); map2.put("name","아이스초코"); map2.put("kind","음료"); map2.put("price","4,000"); map2.put("reg_day","2020.10.29"); map2.put("mod_day","2021.10.29"); list.add(map2); Map<String, Object> map3 = new HashMap<>(); map3.put("No","3"); map3.put("name","아이스불샷"); map3.put("kind","음료"); map3.put("price","4,500"); map3.put("reg_day","2020.10.29"); map3.put("mod_day","2021.10.29"); list.add(map3); log.info(list); return list; } } package hello.sailing.v1.dao; import org.apache.ibatis.annotations.Mapper; import org.mybatis.spring.annotation.MapperScan; import java.util.List; import java.util.Map; @Mapper @MapperScan("hello.sailing.v1.dao") public interface MenuDao { List<Map<String, Object>> doMenu(); } package hello.sailing.v1.controller; import hello.sailing.v1.service.MenuSvc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; import java.util.Map; @Controller public class MenuCon { @Autowired MenuSvc menuSvc; @RequestMapping("/v1/menu") public String doMenu(Model model){ //Data 만들기, List, Map List<Map<String, Object>> list = menuSvc.doMenu(); //Data 송부 model.addAttribute("list",list); model.addAttribute("hello","========= MenuCon ========"); return "/v1/menu/menu"; } } package hello.sailing.v1.dao; import org.apache.ibatis.annotations.Mapper; import org.mybatis.spring.annotation.MapperScan; import java.util.List; import java.util.Map; @Mapper @MapperScan("hello.sailing.v1.dao") public interface MenuDao { List<Map<String, Object>> doMenu(); } 2024-09-27T14:34:44.599+09:00 ERROR 5176 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): hello.sailing.v1.dao.MenuDao.doMenu] with root cause org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): hello.sailing.v1.dao.MenuDao.doMenu 오류를 어떻게 수정해야 할지 모르겠어요.. BindindException이 왜 터질까요? id값도 맞게 써줬는데

  • spring
  • mvc
  • spring-boot
mins199600 댓글 5 좋아요 0 조회수 367

team.getMembers().add(this);

미해결

실전! 스프링 데이터 JPA

Member 클래스 안의 changeTeam 메소드 관련 질문있습니다. 해당 메소드안에 team.getMembers().add(this); 이 부분이 들어가게 되면 팀의 멤버를 찾는 쿼리가 한 번 더 나가게 될 것 같은데, 확인 결과 쿼리가 안나가는 것으로 보이는데 어떤부분을 알아보면 될까요?

  • java
  • spring
  • spring-boot
  • jpa
이충현 댓글 2 좋아요 0 조회수 154

영속성 컨텍스트와 id 생성의 관계

미해결

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

안녕하세요. JPA활용1 강의 중 상품 리포지토리 개발 부분에서 궁금한 점이 생겨 질문드립니다. 첫 번째 사진은 ItemRepository의 save함수이고 두 번째 사진은 ItemService의 join함수입니다. save함수의 경우 persist(item)을 하였을 때, DB에 바로 저장되는 것이 아니라 트랜잭션이 커밋될 때까지 영속성 컨택스트에 들어있는 것으로 알고 있습니다. item의 id는 DB에서 부여하는 것이니 트랜잭션이 끝날 때가지 id값은 null일 것이라고 생각했습니다. 그런데 join함수를 보면 트랜잭션이 끝나기 전 item의 id를 return하는 부분이 있고, 실제 테스트를 했을 때도 id값이 1로 존재하는 것을 확인했습니다. 저는 item 엔티티를 만들 때 @GeneratedValue전략으로 SEQUENCE를 사용한 것도 아니고,return을 하는 시점은 아직 트랜잭션이 끝나기 전이라 DB에서 id를 부여한 것도 아닌데, 왜 id값이 존재하는지 궁금합니다. 아래와 같이 테스트를 진행했을 때 성공하였는데, 혹시 테스트를 잘못한 것일까요?

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

Section2 - 회원등록 API

미해결

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

안녕하세요. 실전! 스프링 부트와 JPA 활용 1편 강의를 수강하면서 작성한 코드에서 api라는 개념이 나와서 조금 헷갈려서 질문드립니다. 1) postman 사용은 단위 테스트처럼 사용하는건가요? 개발한 코드에서 입력값을 넣고 함수가 잘 동작하는지 확인하는 용도인지 궁금합니다. 2) 외부 api를 다른 팀으로 제공을 한다고 말씀주셨는데 팀 간의 관계가 궁금합니다. 1편에서는 html로 작성해서 데이터를 localhost 에서 입력해서 받아온 후에 Controller에서 처리를 했었는데, 2편시작에서는 controller api는 1편의 Controller의 차이점을 잘 모르겠습니다. 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
rmsid1312 댓글 1 좋아요 0 조회수 99

4:28 build.gradle 수정 시 kotlin-reflect관련 implementation 추가 해야할까요?

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

build.gradle에 plugin만 추가하니 오류나고 아래 내용이 추가되니 오류가 사라지고 정상 동작하였습니다. implementation "org.jetbrains.kotlin:kotlin-reflect" 정확한 원인은 모르겠는데 contextLoads할때 부터 error가 나서 kotlin으로 만든 Book을 Entity로 인식하지 못하는 것 같았습니다. 이렇게 해결하는게 맞는건지 궁금합니다. windows10 / java11 / intellij 사용중입니다! [오류원문] Failed to resolve parameter [com.group.libraryapp.service.book.BookService bookService] in constructor [public com.group.libraryapp.service.book.BookServiceTest(com.group.libraryapp.service.book.BookService,com.group.libraryapp.domain.book.BookRepository,com.group.libraryapp.domain.user.UserRepository,com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository)]: Failed to load ApplicationContext org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [com.group.libraryapp.service.book.BookService bookService] in constructor [public com.group.libraryapp.service.book.BookServiceTest(com.group.libraryapp.service.book.BookService,com.group.libraryapp.domain.book.BookRepository,com.group.libraryapp.domain.user.UserRepository,com.group.libraryapp.domain.user.loanhistory.UserLoanHistoryRepository)]: Failed to load ApplicationContext at app//org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameter(ExecutableInvoker.java:239) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameters(ExecutableInvoker.java:183) at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:74) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:355) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:302) at app//org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:79) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:280) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) at java.base@11.0.24/java.util.Optional.orElseGet(Optional.java:369) at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) at app//org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) 이하 생략..

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
댓글 3 좋아요 0 조회수 367

H2 database 테이블이 생성되지 않습니다.

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. users/dlwns 에 test3.mv .db 를 만들고 터미널에 입력을 하여 연결을 했습니다. spring: datasource: url: jdbc:h2:tcp://localhost/~/test3 username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true logging: level: org.hibernate.SQL: debug 그리고 Test를 진행했을 때, h2 database에 접근하면 table이 생성되지 않습니다. 어떤 점이 문제인지 알고 싶습니다. 감사합니다.

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

오류가 왜 나는건지 모르겠어요

미해결

스프링 부트 웹 개발 입문 - 따라하며 배우기

package hello.sailing.v1.service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MenuSvc { public List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); map.put("No","1"); map.put("name","아이스아메리카노"); map.put("kind","커피"); map.put("price","2,000"); map.put("reg_day","2020.10.29"); map.put("mod_day","2021.10.29"); list.add(map); Map<String, Object> map2 = new HashMap<>(); map2.put("No","2"); map2.put("name","아이스초코"); map2.put("kind","음료"); map2.put("price","4,000"); map2.put("reg_day","2020.10.29"); map2.put("mod_day","2021.10.29"); list.add(map2); return list; } put이랑 add 부분이랑 list.add 하는 부분이 오류가 나요ㅕ 왜그런거죠?

  • spring
  • mvc
  • spring-boot
mins199600 댓글 2 좋아요 0 조회수 205

질문있습니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

스프링을 이용해서 플로터로 만든 안드로이드에 mysql정보를 넘길 수 있는 서버를 만들고 싶은데 가능 할까요?

  • java
  • spring
  • mysql
  • spring-boot
  • jpa
  • 플로터
  • 안드로이드
통신 10106 방경오 댓글 2 좋아요 0 조회수 141

스프링 부트 버전

해결됨

스프링 부트 웹 개발 입문 - 따라하며 배우기

스프링 부트 3.3.4 버전에 자바 17버전 사용해도 될까요? 어떤 강의를 봐도 전부 다 2버전 대 던데...2버전이 서비스가 종료가 되어서 버전 맞추는게 너무 힘드네요ㅠㅠ저는 ultimate 버전을 사용하고 있는데 괜찮을까요?

  • spring
  • mvc
  • spring-boot
mins199600 댓글 2 좋아요 0 조회수 224

테스트 코드에서 em.flush를 해줘야 dirtyChecking이 일어나는 이유가 궁금합니다.

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 4:30 쯤에 dirtyChecking이 일어나게 하기 위해서, em.flush();를 꼭 해줘야하는 이유가 있을까요? 선생님 다른 강의에서는 find로 찾아온 객체를 setter를 통해 변경 후 따로 em.flush(); 를 하지 않았어도 transaction 끝나는 시점에 자동으로 update쿼리가 나갔던 것으로 기억하는데요. 혹시 junit을 이용한 테스트코드이어서 동작 방식이 다른걸까요? 감사합니다~

  • java
  • spring
  • spring-boot
  • jpa
gunwoong1129 댓글 2 좋아요 0 조회수 199

공부 순서(자바, 스프링)

미해결

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

이제 회원관리 예제 들어가기 시작했는데 인터페이스나 Map등 자세히 모르는 단어들이 많이 나오는데 수강을 중단하고 자바 개념 및 자료구조 공부 후 다시 수강 하는 게 좋을까요 아니면 그대로 진행하면서 모르는 개념만 그때그때 공부하는 것이 좋을까요..? 답변 간절합니다 ㅜㅜ

  • java
  • spring
  • mvc
  • spring-boot
김태희 댓글 2 좋아요 0 조회수 311

인기 태그

인프런 TOP Writers

주간 인기글