개발환경 세팅 - Java (JDK 16) - Gradle (Gradle 7.1.1) java파일 빌드 : javac ~.java gradle init 명령어로 통해 프로젝트를 생성한다. Intellij에서 해당 프로젝트를 연다. gradle tasks 명령어로 태스크 목록을 확인한다. gradle build 명령어로 빌드한다. gradle run 명령어로 실행한다. gradle test 등의 명령어를 실행할 수 있다. build.gradle을 보면 task.named('test') 라고 gradle test 관련한 코드는 있지만 나머지 두 개 관련 코드는 없다. 공통적으로 쓰이는 태스크 셋들을 plugins를 통해 추가해놓았다.(plugins { id 'application' }) 초보 개발자가 알면 ..
프로그래머스와는 계속해서 접점이 생기는 것 같다. 백준에서 알고리즘 문제를 풀다가, 실전 문제를 풀고 싶어서 프로그래머스의 알고리즘 문제를 풀게 되었다. 그러다가 프로그래머스 써머 인턴을 지원했고, 여름 방학 기간동안 써머 인턴을 하고 있다. 써머 인턴을 하면서 좀 더 기초를 탄탄히 하고 싶었고, 프로그래머스의 K-Digital Training: 클라우드 기반 백엔드 엔지니어링 1기 모집 공고를 봤다. 다행히 최종 합격을 하였고, 1기 과정을 진행하게 되었다. https://programmers.co.kr/learn/courses/12177 K-Digital Training: 클라우드 기반 백엔드 엔지니어링 × [공지] 7/26(월) 오후 18시 최종 결과 합격/불합격 모두 메일이 발송될 예정입니다. 1..
Spring개발을 하면서 @RestController인 Controller에서 @PostMapping으로 Post요청을 받을 때 문제가 생겼습니다. 분명히 select m from Member m where m.nickname = :nickname 쿼리에서 결과 로우가 한 개 나와야 하는데 0개로 나오는 문제였습니다. findAll()을 사용한 경우 결과 로우가 나오는 것을 봤을 때, 쿼리가 잘못 되었거나 파라미터 변수에 잘못된 값이 들어온 것이라는 두 가설을 세웠습니다. 아래는 결론입니다. 보통 VO객체를 사용하기 때문에 이런 식으로 만든 경우, 자동으로 MemberVO에 JSON형식이 매핑되었습니다. 하지만 Post요청에서 String형 하나만 보내는 경우, String으로 받는다면 '{"name":..
스프링을 이용한 프로젝트에서 테스트 코드를 작성하다가 다음과 같은 에러를 만났습니다. org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide ..
스프링으로 개발을 하던 중 Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'id' for method parameter type Long is not present] 위와 같은 WARN을 띄우면서 400 Bad Request 에러가 뜨는 것을 발견했습니다. 위의 코드에서 발생했는데요, 원인은 간단했습니다. @RequestParam과 @PathVariable을 혼동해서 발생한 문제였습니다. 위와 같이 수정하여 해결했습니다. 정리하자면, @RequestParam 은 GetMapping과 주로 쓰면서 URL주소에서 쿼리 스트링을 가져올 때 사용합니다. 예로 들어 ww..
스프링으로 간단한 개발을 하던 중 다음과 같은 에러가 떴습니다. org.springframework.beans.factory.UnsatisfiedDependencyException Error creating bean with name '~~~Controller' defined in file ~~~ (중략) Error creating bean with name '~~~Repository' defined in ~~~.repository. ~~~Repository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed..
어노테이션 설명 @NoArgsConstructor 기본생성자를 대신 생성한다. @RequiredArgsConstructor final이 붙은 멤버변수들을 매개변수로 받는 생성자를 만든다. @Entity 테이블임을 나타낸다. @Id Primary Key로 사용한다 @GeneratedValue(strategy = GenerationType.AUTO) AUTO_INCREMENT 옵션이다. 자동으로 증가된 값을 저장한다. @Column (nullable = false) 컬럼 값임을 나타낸다. 값이 반드시 존재해야 한다. @MappedSuperclass 이 클래스를 상속했으면, 이 클래스를 컬럼으로 인식한다. @EntityListeners(AuditingEntityListener.class) (@Springboo..