반응형

분류 전체보기 486

[ERROR] Request method 'GET' not supported 해결

Request method 'GET' not supported 뿐만 아니라 Request method 'GET' not supported, Request method 'PUT' not supported 등등. Request method '{HTTP method}' not supported 관련 에러가 뜰 때 해당되는 포스팅이다. 보통 405 Method Not Allowed, 500 Internal Server Error와 함께 발생할 확률이 높다. 나의 경우는 특정 기능을 수행하거나 테스트할 때 위 문구와 함께 500 에러가 발생했다. 원래대로라면 body에 원하는 객체의 속성들이 담겨있어야 한다. 하지만 결과는? com.fasterxml.jackson.databind.exc.UnrecognizedPr..

[매트 스터디] 2주차 HTTP 기본 & HTTP 메서드

우아한테크코스 레벨2 에서 매트가 주관한 스터디로, 인프런 김영한님의 강의 모든 개발자를 위한 HTTP 웹 기본 지식 스터디를 진행중이다. 이 포스팅에서는 스터디에 PR을 날릴 내용과 함께 스터디 시간에 얻어간 내용을 적을 예정이다. 1. HTTP 기본 우리는 대부분의 통신을 Http에 넣어서 통신하고 있다. Html, Text, Json, Xml 등. 데이터를 주고받을 때에 Http를 사용하기 때문에 개발자라면 Http 지식은 기본 교양으로 가지고 있어야 한다. 현재 우리가 가장 많이 사용하고 있는 것은 Http/1.1 버전이다. Http/2, Http/3 버전이 있음에도 Http/1.1 버전을 사용하는 이유는 우리가 필요로 하는 기본 스펙이 충분히 존재하기 때문이다. Http/2, Http/3 버전은..

CS/Http, Network 2022.05.09

[220507] 우아한테크코스 4기 13주차 후기

레벨2가 시작한지도 2~3주가 지났다. 매주차 회고를 쓰려고 노력했지만, 바쁘다는 핑계와 귀차니즘으로 회고를 조금씩 미루게 되는 듯하다. 대신 학습한 내용들을 꼼꼼히 포스팅하는 데에 좀 더 집중했다. 이번 포스팅에서도 약간의 귀차니즘 때문에 아주아주 간단하게 회고를 작성할 듯하다 (ㅎㅎ..) -> 쓰다보니까 길어졌다... 레벨1에 이은 체스 미션 레벨1과 다른 점이 있다면, 스프링으로 체스미션을 구현해야 한다는 점이었다. 스프링을 사용해본 적은 있었지만, 얕은 지식으로 기술만 사용하고 있었던 상태였기 때문에 이번 미션이 마냥 쉽지는 않았다. 외래키 무결성 제약 조건 위배 등 db 에러도 많이 겪고, Javascript 지식 부족으로 인한 400 에러도 많이 보았다. 특히 스프링에 익숙하지 않아 많은 고통..

[Git] PR merge 조건을 Git Branch Protection Rule으로 적용해보자

PR을 Merge할 때, 특정 조건을 만족해야 머지가 가능하도록 하는 방법은 없을까? github에서 간단한 설정만 해주면 가능하다! 위 레포에는 최소한 2명 이상의 code reviewer의 approved가 있어야 머지해줄 수 있도록 해주었다. 뿐만 아니라, merge 종류는 squash and merge만 허용해주도록 변경해주었다. 어떻게 설정해준 것일까? Git Settings General 레포지토리의 Settings - General에 들어가서 아래로 쭉 내리면 여러 기능들을 설정할 수 있는 것이 보인다. Feature에서는 Issues, Projects, Discussions를 만들지 말지 결정할 수 있다. 아마 초기 세팅하면 Discussions는 생기지 않을텐데, 여기서 체크표시해주면 r..

Infra/Git 2022.05.06

[Git] PR을 보낼 때엔 main 외의 별도 브랜치 생성 후 보내주자 (feat. git rebase merge 충돌 방지)

알고리즘 초급 스터디, 기업코테 스터디에서 github을 이용하여 코드를 커밋하고 코드리뷰하고 있다. 이 때 나는 스터디원들이 PR을 보낼 때, main 브랜치가 아닌 다른 브랜치를 생성시킨 후, 그 브랜치에서 PR을 보낼 것을 권장하고 있다. 브랜치를 확인해보면 main에서 바로 올리신 것 같아요. 이 경우에, squash and merge가 이루어진 후, 다음 주차 과제를 진행하기 위한 fetch 또는 rebase 과정 중에 충돌이 발생할 수 있을 것 같아요. week9와 같이 브랜치를 새로 생성해서 만드는 건 어떤가요? 물론 로컬 폴더 삭제 후, git clone을 하는 방법이라든지, 별도의 default branch를 생성해두었다면 위 충돌은 겪지 않을 것 같아서 더 좋다고 생각하는 방법으로 진행..

Infra/Git 2022.05.06

[Spring][TDD] RestAssured를 이용한 e2e test로 Controller API까지 통합 테스트해보자

그동안 나는 단위 테스트만을 진행해왔다. 도메인 로직이 잘 실행되는지 junit 문법의 Assertions로 테스트해왔다. dao test는 @JdbcTest를 이용하여 단위테스트를 했고, service test는 fake 객체를 만들어주어 단위 테스트를 진행해주었다. 그런데 컨트롤러는 @RestController에서 @RequestBody로 request를 받고, ResponseEntity를 넘겨주기 때문에 웹 애플리케이션을 직접 실행하면서 테스트하지 않는 이상, 어떻게 테스트해야할지 감이 오지 않았다. RestAssured를 이용하면 API response의 statusCode뿐만 아니라 body에 올바른 값이 담기는지도 테스트가 가능하다! 이번 시간에는 Spring 환경에서의 RestAssured를..

[Kotlin] Java와 비슷하면서 다른 코틀린 문법 정리하기 (2)

1편은 아래 글을 참고하자. https://kth990303.tistory.com/312 [Kotlin] Java와 비슷하면서 다른 코틀린 문법 정리하기 (1) 코틀린은 제트브레인에서 개발한 자바와의 상호 운용이 100% 지원되는 언어이다. 네이버, 카카오, 우아한형제들 등 많은 기업들이 백엔드 언어로 코틀린을 선택한 만큼 인기있는 언어이기도 하 kth990303.tistory.com 이번 포스팅에선 1편에 이어서 java stream api와 유사한 코틀린의 Collections 함수들과 random, 물음표(null able operator)와 느낌표(not null operator), 코틀린 테스트 문법, 그리고 그 외 팁들에 대해 적어보려 한다. 아직 배우는 단계이므로 더 좋은 팁들이나 틀린 점들..

[Spring] @Transactional로 DB 동시성 문제를 방지하자

웹 데이터 애플리케이션을 만들 때, dao에서 sql문으로 db에 접근하고 service에서 dao 메서드들을 이용하여 하나의 트랜잭션을 관리한다. 그런데 만약 이 애플리케이션을 여러 명이서 동시에 사용한다면? 동시성 문제가 발생할 수 있다. 동시성 문제란, 두 개 이상의 세션이 공통된 자원을 읽고 쓸 때 발생할 수 있는 문제를 의미한다. 이번 포스팅에선 이러한 동시성 문제와 트랜잭션에 대해서 알아보고, @Transactional 어노테이션으로 해결하는 방법을 알아볼 것이다. +) 22.10.13. 트랜잭션 격리레벨 설명 수정 및 보충 트랜잭션이란? DBMS에서 데이터를 다루는 작업의 단위를 의미한다. 용어상 정의로는 이해하기 어렵지만, 트랜잭션의 성질을 알아보면 보다 더 쉽게 이해할 수 있을 것이다. ..

[Kotlin] Java와 비슷하면서 다른 코틀린 문법 정리하기 (1)

코틀린은 제트브레인에서 개발한 자바와의 상호 운용이 100% 지원되는 언어이다. 네이버, 카카오, 우아한형제들 등 많은 기업들이 백엔드 언어로 코틀린을 선택한 만큼 인기있는 언어이기도 하다. 이번 포스팅에서는 자바와 비슷하지만, 조금은 다르기도 한 코틀린 문법들을 나를 위해서 정리해보려 한다. 정적 메서드를 사용하기 위한 클래스가 필요없다 java에서는 utils 메서드를 만들기 위해 아예 utils 클래스를 만들어주어야 한다. 이는 main 함수에서도 마찬가지이다. 자바를 공부하는 사람이라면, 메인 클래스를 생성해준 후 psvm을 입력해주어 메인 메서드를 만드는 작업을 지겹도록 했을 것이다. 하지만 코틀린은 정적 메서드를 사용할 때 따로 클래스를 만들어주지 않아도 된다. 다음 코틀린 코드를 보자. 위와..

[매트 스터디] 1주차 인터넷 네트워크 & URI와 웹 브라우저 요청 흐름

우아한테크코스 레벨2 에서 매트가 주관한 스터디로, 모든 개발자를 위한 HTTP 웹 기본 지식 스터디를 진행중이다. 이 포스팅에서는 스터디에 PR을 날릴 내용과 함께 스터디 시간에 얻어간 내용을 적을 예정이다. PR에 적을 내용은 아래와 같다. 인프런 강의를 듣고 요약한 내용 인프런 강의 QNA를 보고 공부한 내용 책/구글링을 통해 추가적으로 공부한 내용 매주 주말에 작성할 예정이며, 월요일에 스터디를 진행하고 추가로 내용을 더 기록할 예정이다. 1. 인터넷 네트워크 우리는 인터넷 네트워크를 통해 수많은 통신을 하고 있다. 당장 모르는 내용이 생겨 구글링을 할 때도, 새로운 맛집을 찾기 위해 네이버 지도를 킬 때에도 우리는 항상 네트워크를 연결하여 요청을 보내고 응답을 받고 있다. 이번 시간에는 네트워크..

CS/Http, Network 2022.04.30
반응형