일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- d
- resttemplate
- /etc/network/interfaces
- 구멍가게코딩단
- 친절한SQL튜닝
- 선형대수
- 페이징
- 이터레이터
- 처음 만나는 AI 수학 with Python
- 리눅스
- 티스토리 쿠키 삭제
- 데비안
- Kernighan의 C언어 프로그래밍
- 서버설정
- network configuration
- 알파회계
- 자료구조와 함께 배우는 알고리즘 입문
- 스프링 시큐리티
- 코드로배우는스프링웹프로젝트
- 네트워크 설정
- ㅒ
- 처음 만나는 AI수학 with Python
- 코드로배우는스프링부트웹프로젝트
- 자료구조와함께배우는알고리즘입문
- 목록처리
- 자바편
- 스프링부트핵심가이드
- iterator
- baeldung
- GIT
- Today
- Total
목록Projects (57)
bright jazz music
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/r5x6Z/btrXCpapXlb/ekjN1PmlC6dxKyk8tDQCuk/img.png)
참고: node.js가 설치돼 있어야 한다. 나는 설치돼 있어서 생략했다. 설치 시 아래 블로그의 포스팅 참고 https://codest.tistory.com/15 [Error] Node.js 설치 / npm install / bash: npm: command not found 에러 안녕하세요! 이번 포스팅에서는 Node.js를 설치하고 로컬 환경에서 npm install 명령어를 사용할 수 있도록 환경변수 편집까지 해보겠습니다. 우선 Node.js를 설치해줍니다. https://nodejs.org/ko/ Node.js Node. codest.tistory.com 노드 설치 - 환경변수 설정까지 해주었다. "'vite' is not recognized as an internal or external co..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7e6tT/btrXnIipIit/l3HJBqky3UkdEFw7iJ7wY1/img.png)
11. git merge --no-ff --log : fast forward를 사용하지 않고 merge log를 포함해서 현재 사용중인 main 브랜치에 mybranch를 머지하기. git merge --no-ff --log mybranch 입력하면 아래와 같이 vi로 들어간다. 커밋 메시지를 확인하고 q 또는 wq를 입력하여 나온다. 이를 소스트리와 같은 툴에서 확인하면 차이를 확인할 수 있다. 이전 포스팅의 9번 항목에서 merge했을 때에는 브랜치의 분기가 보이지 않았다. 그러나 이번의 경우는 브랜치가 분기 됐다가 다시 합쳐지는 모습을 확인할 수 있다. 그런 다음 git push해서 원격 리포지토리로 커밋 사항을 push한다. 12. 충돌이 발생 경우 1 1. testbranch라는 브랜치를 만들었..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c6j84L/btrXt80JP1C/Tu2tbeDBSAnykZ2rkkQKAK/img.png)
깃을 쓰는 경우 처음부터 CLI 환경에서의 사용을 추천 소스트리와 같은 도구를 사용하는 경우 문제가 생겼을 때의 원인을 파악하기 어려운 경우가 존재. git status git log git push git push -u origin 푸시할브랜치명 git add 파일명 git add . git checkout git checkout -b 새로운브랜치명 git branch -D 삭제할브랜치명 git commit git commit -m "커밋메시지" git commit -a -m "커밋메시지" git merge git merge --no-ff --log 머지할브랜치명 git rebase 리베이스할브랜치명 git rebase --continue git rebase --abort git reset git re..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VReqx/btrXoocorCx/a8lB5WvDswqalcedBvsKKK/img.png)
1. SSH를 사용한 통신 환경 설정 1-1 github 로그인 https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh About SSH - GitHub Docs You can access and write data in repositories on GitHub.com using SSH (Secure Shell Protocol). When you connect via SSH, you authenticate using a private key file on your local machine. For more information about SSH, see Secure Shell on Wikipedia. When yo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2F4XX/btrXo4R9c9b/lvXvzT4UeRoOe1HIVGKBWk/img.png)
지금까지 만든 것은 글 조회와 등록의 구분이 되지 않았음. 따라서 정리 필요. 글 조회는 post-inquiry로 변경, 글 등록은 post-create로 변경 //PostControllerDocTest.java package com.endofma.blog.controller; import com.endofma.blog.domain.Post; import com.endofma.blog.repository.PostRepository; import com.endofma.blog.request.PostCreate; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.BeforeEach; import org.junit...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lZAvX/btrWlmACHLG/u6ZygMqE2EsLq4KXQEaOp0/img.png)
8080 포트 바꿔주기. 여러 가지 방법이 있지만 어노테이션 부착이 가장 쉽다.. @AutoConfigureRestDocs(uriScheme = "https", uriHost = "api.blog.com", uriPort = 443) 클래스 선언부 위에 달아준다. @AutoConfigureRestDocs도 달아주었다. @BeforeEach를 포함한 관련 초기 설정 관련 코드들을 주석처리해 주었다. //PostControllerDocTest.java package com.endofma.blog.controller; import com.endofma.blog.domain.Post; import com.endofma.blog.repository.PostRepository; import org.junit.jup..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/COMfr/btrWgijrfvb/dKajG6KN2D65bV42XtiqZK/img.png)
API를 설명하기 위한 문서 작성 라이브러리는 스웨거를 포함하여 다수이다. 여기서는 Spring REST docs를 사용한다. https://spring.io/projects/spring-restdocs Spring REST Docs It helps you to produce documentation that is accurate, concise, and well-structured. This documentation then allows your users to get the information they need with a minimum of fuss. spring.io Spring REST Doc의 장점 운영 코드에 영향이 없다. 다른 라이브러리는 운영 중인 코드에 어노테이션 또는 xml을 사용해..
현재 예외에 대한 응답은 아래와 같이 반환되고 있다. MockHttpServletResponse: Status = 400 Error message = null Headers = [Content-Type:"application/json"] Content type = application/json Body = {"code":"400","message":"잘못된 요청입니다.","validation":{}} Forwarded URL = null Redirected URL = null Cookies = [] 요청의 성공과 실패 여부만 나타낼 뿐, 검증에 관한 이유를 밝히고 있지는 않다. 지금까지 우리가 작성한 코드 중에서는 validation에 값을 넣어 준 적이 없기 때문이다. 따라서 이번에는 validatio..
그런데 원래대로라면 InvalidRequest를 ExceptionController에 추가해 줘야한다.그러나 애플리케이션이 커지면서 예외도 늘어나게 된다. 따라서 다른 방법을 사용해 본다. 자바에서 기본 제공해주는 예외들은 기존처럼 따로 만들어준다. 그리고 자바에서 제공되지는 않지만 애플리케이션 운영에서 발생하는 공통적으로 처리해야 하는 예외들은 하나의 클래스를 만들어 대응한다. 프로그램 전체에서 사용할 Exception클래스를 하나 만들어서 그것으로 하여금 에러들을 처리하게 하는 것이다. 여기서는 그 BlogException이라는 추상 클래스를 생성하여 그것으로 하여금 모든 에러를 처리하게 할 것이다. 앞선 예제들에서는 각각의 에러 클래스들이 RuntimeException 클래스를 상속하였다. 이제부터..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/M9AGX/btrV5favv3X/N6UpXjK7SyWbfdW54ec8V1/img.png)
예외처리 1에서는 정상적이지 않은 입력값이 들어갔을 경우의 예외처리를 구성하였다. 이번에는 PostController에서 발생할 수 있는 오류에 대한 예외처리를 만들고 테스트한다. 우선 단건 조회부터. //PostService.java //... //단건 조회 public PostResponse get(Long id) { Post post = postRepository.findById(id) // .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 글입니다.")); //있으면 post반환 없으면 에러 반환 // .orElseThrow(() -> new PostNotFound()); .orElseThrow(PostNotFound::new); //위와 같은 ..