월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
19강 JSON create 메서드 질문이여!!
package com.example.firstproject.api;import com.example.firstproject.dto.ArticleForm;import com.example.firstproject.entity.Article;import com.example.firstproject.repository.ArticleRepository;// import lombok.AllArgsConstructor;// import lombok.NoArgsConstructor;// import lombok.RequiredArgsConstructor;import org.springframework.web.bind.annotation.*;import java.util.List;@RestControllerpublic class ArticleApiController {private ArticleRepository articleRepository;private ArticleForm dto;@GetMapping("/api/articles")public List<Article> index() {return articleRepository.findAll();}@GetMapping("/api/articles/{id}")public Article index(@PathVariable Long id) {return articleRepository.findById(id).orElse(null);}@PostMapping("/api/articles")public Article create(@RequestBody ArticleForm dto) {Article article = dto.toEntity();return articleRepository.save(article);}} PostMapping하고 있는데, Talend API Tester에서 아래와 같이 실행시키면 안돼여에러메시지는 아래와 같습니다Cannot invoke "com.example.firstproject.repository.ArticleRepository.save(Object)" because "this.articleRepository" is null라고 떠여... 그래서 ArticleRepository를 확인해보면ArticleRepository는package com.example.firstproject.repository;import com.example.firstproject.entity.Article;import org.springframework.data.repository.CrudRepository;import java.util.ArrayList;public interface ArticleRepository extends CrudRepository<Article, Long> {@OverrideArrayList<Article> findAll();}으로 썜이랑 똑같이 작성했어요 쌤.... 제가 뭘 잘못 했나여............뭘 고치면 되나여......... 살려주십셔.,,,,,,,,,,,,,.
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
15강 data.sql코드가 작동하지 않습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. h2에서 article테이블이 잘 조회되며,그러고 나서 resources > data.sql을 선생님처럼 해준뒤,서버를 실행하면, 위와 같은 에러가 발생합니다. 테이블명을 대문자로 바꿔서 작성해도 똑같이 에러가 납니다. 어떻게 해결해야하나요?
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
@Transactional 어노테이션 위치에 관하여 질문합니다 :)
홍빡 선생님 반갑습니다. 덕분에 스프링 부트에 대한 개념과 전체적인 흐름이 잘잡히고 있습니다. 아직 너무도 부족한.... ㅠㅠ 1인 그래도 부지런히 따라 가겠습니다.다름이 아니라 선생님이 하신 코드를 따라 치면서 생각하다가 이렇게도 해도 괜찮을것같은데혹여나 문제가 발생하면 안될거 같아서 정확히 알고자 질문드리빈다.우선 기존에 짜셨던 코드입니다.@SpringBootTestclass ArticleServiceTest {@Autowired ArticleService articleService; @Transactional @Test void index() {// 예상 Article a = new Article(1L, "가가가가", "1111"); Article b = new Article(2L, "나나나나", "2222"); Article c = new Article(3L, "다다다다", "3333"); List<Article> expected = new ArrayList<Article>(Arrays.asList(a,b,c)); // 실제 List<Article> articles = articleService.index(); // 검증 assertEquals(expected.toString(), articles.toString()); } @Transactional@Test void show_성공____존재하는_id_입력() {// 예상 Long id = 1L; Article expected = new Article(id, "가가가가", "1111"); // 실제 Article article = articleService.show(id); // 검증 assertEquals(expected.toString(), article.toString()); }제가 말씀드리고 싶은 부분은 저 롤백역할을 하려는 Transactional 어노테이션?? 에 관한 이야기인데요. 테스트 코드가 랜덤으로 진행이 되는건지는 정확히 모르겠습니다.그런데 Transactional을 초반에 설정하면 어떨까요 ? 우선 그렇게 해서 2번을 돌려보았는데 테스트 코드 2번 다 성공했습니다.예를들어서 @Trasactional@SpringBootTestclass ArticleServiceTest {@Autowired ArticleService articleService; @Test void index() {// 예상 Article a = new Article(1L, "가가가가", "1111"); Article b = new Article(2L, "나나나나", "2222"); Article c = new Article(3L, "다다다다", "3333"); List<Article> expected = new ArrayList<Article>(Arrays.asList(a,b,c)); // 실제 List<Article> articles = articleService.index(); // 검증 assertEquals(expected.toString(), articles.toString()); }@Test void show_성공____존재하는_id_입력() {// 예상 Long id = 1L; Article expected = new Article(id, "가가가가", "1111"); // 실제 Article article = articleService.show(id); // 검증 assertEquals(expected.toString(), article.toString()); } 이런식으로요!! 그러면 일일이 작업을 안해도될것같은데혹시나 이게 잘못될수도 있을까봐 질문드려봅니다!
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
강의 일부내용을 블로그에 작성 해도되나요?
강의 내용중에 그림으로 설명하는부분을 혹시 캡쳐해서 블로그에 저장해도 될까요?
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
강의수강 연장이 가능할까요?
안녕하세요 강사님 지난 연말연초에 일이 있어 그동안 강의를 많이 듣지 못했는데 강의가 오늘까지더라구요. 혹시 수강기간 연장이 가능할까요? 꼭 완강하고 싶습니다..
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
30강 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.선생님여기서 리턴값이 왜 object 타입으로 받는거에요 ??@AfterReturning("cut()") public void loggingRetrunValue(JoinPoint joinPoint, // cut()의 대상 메소드 Object returnObj){ //리턴값
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
30강 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하세요! 30강에서 간단하게 질문드릴께있어서요~~요로코롬 입력값 가져올때 왜 Object 타입인건가요 ?Object 는 객체타입 아닌가요 ? //입력값 가져오기 Object[] args = joinPoint.getArgs();
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
23강 흐..너무어려워요...
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 분명 articleservice 에서는더미 테이블에 들어있는 글목록을 가져올때.엔티티를 -> dto로 변경안했거든요 ?dto -> 엔티티로 변경하는건 왜하는건지 알겠는데.근데왜 23강commentServic 에서는댓글 목록가져오는데엔티티를 -> dto로 변경해요 ? 그전강의에서는 바꾼적없잖아요 선생님
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
21강 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.@Test @Transactional void delete_성공____존재하는_id_입력() { //예시 Long id = 1L; Article expected = null; //실제 Article deleted = articleservice.delete(id); //비교 assertEquals(expected,deleted); }//이렇게 작성하여 //비교를했는데.. //결과는 Expected :null Actual :Article(id=1, title=가가가가, content=1111) //이렇습니다 articleservice.delete(id); // 이거 삭제되어서 null 이 나오는거 아닌가요ㅕ ??..
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
20강 질문드립니다 홍팍쌤
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 포스트 맵핑에서 Article created = dto.toEntity(); 이걸 왜 .. articleService.create(dto) 로 바꿔주신건가요 ??
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
15강 hidden
15강에서 hidden 이건 왜 쓴건가요 ...???? 숨겨서 넣은건 알겠는데 왜 넣은건지 이해가 안돼서요.. 뷰에 나오지도 않게 히든 쓴건알겠는데 저걸 왜 써준건지 이해가안가요 ..
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
22강 강의 관련 에러로 문의 드립니다.
.갑자기 이런 오류가 뜨면서 실행이 안되네요아래는 작성한 코드들 입니다혹시 몰라서 스프링 부트 버전도 2.4.1로 바꿨는데도 안됩니다 ㅠㅠ
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
30강 log.info 에러
안녕하세요log.info()에 빨간줄이 그어지면서 에러가 났었습니다.저와 동일한 문제가 발생하신 분들께 도움이 될까 글 남깁니다.@Slf4j 어노테이션을 달아주니 log.info에 빨간줄이 사라지면서 작동하였습니다.다른 좋은 해결방법이 있다면 알려주세요!(참고 : https://okky.kr/articles/532274)
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
28강 application.properties 설정
안녕하세요 선생님강의에서 알려주신 설정들 중spring.datasource.data=classpath:/data.sql spring.datasource.initialization-mode=always두개가 Deprecated 라고 표시되면서 대체해서 사용할 수 있는 걸 알려주는데 이렇게 사용해도 될까요?변경 후 서버를 실행해보면 돌아갑니다.변경 전 ↓변경 후 ↓
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
ArticleControlloer, ArticleApiController 차이
안녕하세요 선생님24강에서 댓글 목록을 뷰페이지에 적용시키기위해서다시 ArticleController를 수정하였는데ArticleController는 페이지 이동을 위한 컨트롤러이고ArticleApiController 는 기능을 위한 컨트롤러라고 생각하면될까요?
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
인텔리제이에 firsproject를 불러오는데 뭔가 자꾸 오류가 뜨네요...
강의 그대로 다 따라했는데 어느 부분에서 이러는지 ㅁ르겠습니다...
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
22강 에러 - org.springframework.dao.InvalidDataAccessApiUsageException
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 22강 테스트 중 아래와 같은 에러가 발생org.springframework.dao.InvalidDataAccessApiUsageException해결 → articleId 앞에 Param을 붙여줌.@Query(value = "SELECT * " + "FROM comment " + "WHERE article_id = :articleId", nativeQuery = true) List<Comment> findByArticleId(@Param("articleId") Long articleId);
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
addAttribute 입력시
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. rttr.addFlashAttribute("msg","삭제가 완료되었습니다"); 위 처럼 입력할 때 뒤에 attributeName, attributeValuerr가 붙는데 어떨때는 attributeValue가 먼저 붙기도 하던데 왜 이런지 알 수 있을까요?
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
19강 @PatchMapping
선생님 안녀하세요!강의보던 도중 헷갈리는 부분이 있어서 질문남깁니다.수정을 할 때1. 수정용 엔티티를 생성2. 대상 엔티티를 조회순서인데이때 1. 수정용 엔티티를 생성 -> 받아온 새로운 데이터 엔티티2. 대상 엔티티를 조회 -> 기존에 저장되어있던 엔티티이렇게 이해해도 맞는걸까요?// PATCH @PatchMapping("/api/articles/{id}") public ResponseEntity<Article> update(@PathVariable Long id, @RequestBody ArticleForm dto){ // 1. 수정 용 엔티티 생성 Article article = dto.toEntity(); // 2. 대상 엔티티를 조회 Article target = articleRepository.findById(id).orElse(null); // 3. 잘못된 요청 처리(대상이 없거나, id가 달느 경우) if (target == null || id != article.getId()){ // 400, 잘못된 요청 응답! return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } // 4. 업데이트 및 정상응답(200) target.patch(article); Article updated = articleRepository.save(target); return ResponseEntity.status(HttpStatus.OK).body(updated); }
- 미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
17강 ID 자동 생성 안됨 해결
스프링부트 2.7.7, h2 2.1.214 버전@GeneratedValue(strategy = GenerationType.IDENTITY)이렇게 생성하게 둬도 글을 새로만들면 id가 1로 만들어져아이디 중복이라 오류가 뜨길래 INSERT INTO article( title, content) VALUES( '가가가가', '1111'); INSERT INTO article( title, content) VALUES( '나나나나', '2222'); INSERT INTO article( title, content) VALUES( '다다다다', '3333');이렇게 data.sql에 id 지정값을 빼니 알아서 id 4로 해주며 잘 작동하네요 혹시 최신버전으로 하시는 분들중 오류가 있으면 참고하세요DB 버전문제인거같은데 왜그런지는 잘 모르겠네요..최신버전에서는 id를 지정해주면 IDENTITY가 작동안하는거 같기도 하네요