티스토리

코딩 일기
검색하기

블로그 홈

코딩 일기

duck-cow.tistory.com/m

DuckCow 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • Spring boot 게시글 이미지 업로드 spring boot 3.0.2 환경에서 작성되었습니다. 게시글 하나에 여러장의 이미지를 업로드할 수 있어야 했기 때문에, Photo:Article=N:1의 관계가 된다. https://velog.io/@yu-jin-song/SpringBoot-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EA%B5%AC%ED%98%84-4-MultipartFile-%EB%8B%A4%EC%A4%91-%ED%8C%8C%EC%9D%BC%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C https://velog.io/@yu-jin-song/Spring-Boot-게시판-구현-5-게시글-수정-및-삭제-다중-파일이미지-반환-및-조회-처리-MultipartFile 을 참고하여 코.. 공감수 0 댓글수 0 2023. 5. 17.
  • Spring boot Junit5 Test mysql 연결 및 에러:Failed to load ApplicationContext for / Failed to replace DataSource with an embedded database for tests. 해결 spring boot 3.0.2 환경에서 웹페이지를 만들기위해 Junit5 테스트를 작성했다. @DisplayName("JPA 연결 테스트") @Import(JpaRepositoryTest.TestJpaConfig.class) @DataJpaTest class JpaRepositoryTest { private final ArticleRepository articleRepository; private final ArticleCommentRepository articleCommentRepository; private final UserAccountRepository userAccountRepository; public JpaRepositoryTest( @Autowired ArticleRepository ar.. 공감수 1 댓글수 0 2023. 3. 24.
  • spring boot 게시판 pagination/검색 바 구현 https://rebornbb.tistory.com/entry/Springboot-%EA%B2%8C%EC%8B%9C%ED%8C%90%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B08-%EA%B2%80%EC%83%89-%EA%B8%B0%EB%8A%A5-%E2%9C%94%EC%A0%95%EB%A6%AC [Springboot] 게시판따라하기(8) - 검색 기능 ✔정리 원본 영상 링크: https://www.youtube.com/watch?v=Y7S1xXsKy_w&list=PLZzruF3-_clsWF2aULPsUPomgolJ-idGJ&index=8 JPA Repository findBy(컬럼이름) → 컬럼에서 키워드를 넣어서 찾겠다 *정확하게 키워드가 일치하는 데이터만 검 rebornbb.tis.. 공감수 0 댓글수 0 2023. 3. 21.
  • spring boot 3.0.2 thymeleaf 게시글 제목 하이퍼 링크 구현 https://vprog1215.tistory.com/282 [Spring] 웹페이지 만들어 보기 웹페이지 만들어 보기 배운내용으로 실제 웹페이지를 만들어 본다. 들어가기전 타임리프 핵심을 공부하고 가보자 핵심1 th:xxx 가 붙은 부분은 서버사이드에선 렌더링이 된다; - 즉 원래 정의되어 vprog1215.tistory.com 를 참고 제목 공감수 0 댓글수 0 2023. 3. 15.
  • spring boot 3.0.2 thyme leaf , bootstrap 적용 1.먼저 bootstrap 사이트 들어가서 내가 원하는 버전을 선택한다. 나는 v5.2.3 을 선택. 2. 그 다음 download 탭으로 이동하여 css, js 파일을 설치한 후, intellij 에 static 폴더 아래에 둔다. 3.securityConfig 내 securtyFilterChaing에 대해 "/css/**" 을 permitAll() 처리 해준후, bootstrap 사이트에 instruction 탭을 들어가 다시 bootstrap 내 해당 버전의 CDN links 를 복사 한다. css cdn 링크: js cdn 링크: 4. Hello, world! css 링크는 안에, js 는 안에 각각 추가한다. 이때, 화면을 먼저 띄우고 js는 나중에 하기 위해 css를 먼저 추가하고,, 나중에 .. 공감수 0 댓글수 0 2023. 3. 13.
  • Error:Could not create query for public abstract/ No property '' found for type '' 해결 ArticleRepository에 articleId 와 email을 받아 delete 하는 메소드를 추가했더니, Could not create query for public abstract/ No property '' found for type '' 에러가 나타났다. 찾아보니, https://csy7792.tistory.com/18 [spring boot jpa] Failed to create query for method public abstract java.util.List 오류 이렇게 하고 실행을하면 될것같지만 막상 실행을 시켜보면 Failed to create query for method public abstract java.util.List 오류가 난다. 긴 오류들을 읽어보면 매칭할 컬럼이나 .. 공감수 0 댓글수 0 2023. 3. 2.
  • spring boot 3.0.2: 웹페이지 게시글 update, delete 구현 A. update 를 처음 구현한 코드는 updateArticleForm @GetMapping("/{articleId}/form") public String updateArticleForm( ModelMap map, @PathVariable("articleId") Long articleId, ){ ArticleDto articleDto=articleService.getArticle(articleId); map.addAttribute("article",articleDto); map.addAttribute("formStatus", FormStatus.UPDATE); return "articles/form"; } 기존에 구현했던 getArticle를 통해 전달받은 articleId를 활용하여 바로 dto 로 .. 공감수 0 댓글수 0 2023. 2. 21.
  • Spring boot 3.0.2: 게시글 페이지 pagination 구현 ArticleRepository @RepositoryRestResource public interface ArticleRepository extends JpaRepository { } ArticleRepository가 JpaRepository를 상속받고 있는데, JpaRepository의 경우 PagingAndSortingRepository 를 상속받아 paging 과 sorting 관련 기능을 사용할 수 있다. ArticleService public Page searchArticle(Pageable pageable) { return articleRepository.findAll(pageable); } ArticleController @GetMapping public String articles(Page.. 공감수 0 댓글수 0 2023. 2. 18.
  • spring boot 3.0.2: security 구현 #spring boot 3.0.2 , java 17 버전으로 웹페이지를 구현한 글입니다. A. SecurityFilterChain @Configuration public class SecurityConfiguration { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ return http. authorizeHttpRequests(authorize -> authorize .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .requestMatchers( HttpMethod.GET, "/", "/articles",.. 공감수 0 댓글수 0 2023. 2. 18.
  • Spring boot : Error executing DDL "create index 에러 해결 쿼리를 날려 db에 data를 넣으려 했으나.. 위와 같은 에러가 발생했고, 나는 늘 그랬듯이 구글링으로 찾아봤다. 처음에는 데이터베이스 예약어를 column 명으로 넣어서 발생하는 에러(https://csy7792.tistory.com/66)인가 싶었지만, 예약어를 사용하지 않았기 때문에 다른 곳에서 문제가 발생한 것 같았다. https://stackoverflow.com/questions/43191294/hibernate-error-executing-ddl-via-jdbc-statementhttps://github.com/jojoldu/freelec-springboot2-webservice/issues/67. 를 참고한 결과, application.yml 에 설정한 dialect 관련 문제일 수 있겠.. 공감수 0 댓글수 0 2023. 2. 16.
  • spring boot : table doesn't exist 에러 data.sql 파일을 intellij datagrip 을 통해 넣으려 했으나, table 이 존재하지 않는다는 에러만 돌아올 뿐이었다. 분명이, ddl-auto 도 create 로 설정했는데, 되지 않아 이것저것 3시간 가량 찾아봤지만 되지 않았다. jpa: hibernate: ddl-auto: update database-platform: org.hibernate.dialect.MySQL5Dialect update 로 바꿔도 보고 https://twoicefish-secu.tistory.com/405 을 참고해 여러 가지를 넣어봤다. 그런데, 생각해보니 service, application 자체를 작동시키지 않은 채 query를 실행하고 있었던 것이다. application 을 실행하자 마자 잘 작동.. 공감수 0 댓글수 0 2023. 2. 16.
  • spring boot - thymeleaf layout dialect 적용 https://wildeveloperetrain.tistory.com/136 Spring Boot 타임리프 Thymeleaf layout 적용하는 방법 타임리프(Thymeleaf)에 대해서 간단하게, 타임리프는 서버 사이드 템플릿 엔진(Template Engine)의 한 종류로, 쉽게 컨트롤러가 전달하는 데이터를 이용하여 동적으로 화면을 구성할 수 있게 해주는 역 wildeveloperetrain.tistory.com https://blog.outsider.ne.kr/1004 Thymeleaf에서 레이아웃 기능을 지원하는 Thymeleaf Layout Dialect :: Outsider's Dev Story 전에 [Thymeleaf에 대한 얘기를 올렸었지만](http://blog.outsider.ne.k.. 공감수 0 댓글수 0 2023. 2. 16.
  • spring boot template 파일 내 html 파일 인식 에러 문제 한창 신나게 웹페이지를 만들던 중, 기본적인 templates 파일 내 html 파일을 인식하지 못하고 404 에러가 발생했다. 그래서, https://bottom-to-top.tistory.com/38 Spring Boot HTML 파일 templates에서도 읽도록 설정하기 static 아닌 폴더에서 정적 정보 읽어오기 스프링 부트에 web 의존성을 추가하고 localhost:8080으로 접근하면 기본적으로 resources 폴더에 있는 static 에 위치한 index.html 파일을 읽게됩니다. 프로젝트를 bottom-to-top.tistory.com 을 참고하여 addResourceHandler 를 오버라이딩 해 추가했지만 해결되지 않았다. 그런데, 문득 이런 생각이 들었다. static 파일과.. 공감수 0 댓글수 0 2023. 2. 14.
  • CRUD Repository 와 Optional 그리고 dto 앞서 웹페이지 만들기 강의를 따라간 것을 토대로 스스로 웹페이지 만들기를 하던 중, 다음과 같은 상황이 발생했다. findById 가 articleId를 토대로 Article 을 반환하는 줄 알았는데 아니네? 그렇다. CRUD repository interface method인 findById 는 Optional 을 반환한다. 그렇다면, Optional이 과연 무엇인가? 참고:https://mangkyu.tistory.com/70 [Java] Optional이란? Optional 개념 및 사용법 - (1/2) 이번에는 Java8부터 지원하는 Optional 클래스에 대해 알아보도록 하겠습니다. 1. Optional이란? Optional 개념 및 사용법 [ NPE(NullPointerException) 이.. 공감수 0 댓글수 0 2023. 2. 13.
  • spring boot @RepositoryRestResource, @RepositoryResourceController 디펜던시 추가 https://docs.spring.io/spring-data/rest/docs/current/reference/html/#repository-resources Spring Data REST Reference Guide Spring Data REST presents a default view of the domain model you export. However, sometimes, you may need to alter the view of that model for various reasons. This section covers how to define projections and excerpts to serve up simplified and reduced vie docs.spring.io 를 참.. 공감수 0 댓글수 0 2023. 2. 13.
  • 웹페이지 만들기1 :환경 설정 spring boot 3.0 부터는 java 17기반으로 변경된다. java 17을 선택한 이유? 다음 세대 플래폼 호환성 나는 해당 웹페이지를 오랜 기간동안 운영할 수 있다고 보기 때문에, 다음 세대와의 호환성 역시 중요했다. 참고:https://techblog.gccompany.co.kr/%EC%9A%B0%EB%A6%AC%ED%8C%80%EC%9D%B4-jdk-17%EC%9D%84-%EB%8F%84%EC%9E%85%ED%95%9C-%EC%9D%B4%EC%9C%A0-ced2b754cd7 dependencies 일단 필수적인 것들만 추가해놓고 추후 필요한 것은 그때 그때 추가하기로 했다. 공감수 0 댓글수 0 2023. 2. 10.
  • spring "Argument are different!" 해결 수업을 들으며, 해당 메소드를 구현한 후 테스트를 실행했더니 엥 위와 같은에러가 나왔다. 내가 이해한 바로는 @WithUserDetails(value = "unoTest", setupBefore = TestExecutionEvent.TEST_EXECUTION) 을 통해 미리 setup 해둔 "unoTest" 관련 User 정보가 ArticleControllerTest class에서 @import(TestSecurityConfig.class)를 하고, 해당 TestSecurityConfig.class에서 구현한 @BeforeTestMethod public void securitySetUp(){ given(userAccountRepository.findById(anyString())).willReturn(O.. 공감수 0 댓글수 0 2023. 2. 9.
  • Spring boot: pageable, getReferencedId 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. part 2.2.4:게시판 페이지 기능 구현 수강을 하며 기록한 내용입니다. A. map() 을 통해 findAll(pageable)로 찾은 Article 을 ArticleDto로 형변환 ArticleDto::from을 통해 일종의 mapper 역할을 하는 것. 참고:[배워보자 Spring Data JPA] JPA 에서 Pageable 을 이용한 페이징과 정렬 (tistory.com) B. ArticleServiceTest 의 getReferenceById getReferenceById(dto.id); sd C.ArticleService 이때 articleRepository.save(article); 은 필요없음.. 공감수 0 댓글수 0 2023. 2. 6.
  • Spring Security - @WebSecurityConfigurerAdapter 변경(+ spring security dependencies 설정) #### 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. PART 2.10 로그인 페이지 만들기 을 수강한 내용을 토대로 작성한 내용입니다. A. Spring security 관련 dependencies 설정 spring security 만 설정하면 security 관련 dependency : implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' 가 안뜰 수 있으니 반드시 저 셋을 같이 dependencies로 잡아 추가할 것 B. 혼자 Spring security를 공부할 때, @WebSecurityConfigurerAdapter를 상속받아 configure를 구현하는 방식을 사용했는데.. 공감수 0 댓글수 0 2023. 2. 2.
  • Thymeleaf 와 뷰 템플릿 엔진 원리 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 들으면서, thymeleaf가 다시 등장했다. 전에 공부할 때도, thymeleaf를 써본 적이 있는데, 의문이 들었다. Thymeleaf 가 정확히 뭔데? Tymeleaf 란? 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 만들어 주는 뷰 템플릿 엔진이다. Spring MVC - 타임리프(Thymeleaf)에 대한 간단한 정리 :: IT 개발자들의 울타리 (tistory.com) 서버를 가동하지 않으면 순수 html, 가동하면 동적 html 을 확인할 수 있다. 순수 html (정적 웹페이지) 동적 html(동적 웹페이지) get 요청이 웹 브라우저로부터 오면 왔을 때, 내장 톰캣 서버가 그것을 받아서 s.. 공감수 0 댓글수 0 2023. 2. 2.
  • spring 과 Rest API 에 대해 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. PART2 를 수강하던 중, implementation 'org.springframework.boot:spring-boot-starter-data-rest' 코드를 dependecies 에 추가하고, Repository들에 @RepositoryRestResource를 달자 rest api가 만들어지며 HAL explorer를 통해 crud 가 동작하는 것을 확인할 수 있었다. 이전까지만 해도 일일이 mapping해서 crud를 구현했던 나는 의문이 들었다. Rest API가 뭐지? @RepositoryRestResource 는 뭐고 어떻게 Rest API 가 만들어지는 거지? 내가 강의로 듣고 있는 내용을 나중에.. 공감수 0 댓글수 0 2023. 2. 1.
  • 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 2.2.6: API 구현 ~ 7:뷰 엔드포인트 정의 A. @RepositoryRestResource public interface ArticleRepository extends JpaRepository, QuerydslPredicateExecutor, QuerydslBinderCustomizer { } QuerydslPredicateExecutor Entity 안에 있는 모든 field 에 대한 기본 검사 기능을 추가해준다. QuerydslBinderCustomizer QuerydslPredicateExecutor만으로는 exact match만 가능하여, 부분 검색도 가능하게 하기 위해 이것을 추가. QuerydslPredicateExecutor을 Article 과 ArticleComment class 에 extend 로 각각 추가해줬을 때, build... 공감수 0 댓글수 3 2023. 2. 1.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.