일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- Spring MVC 구성요소
- 스택
- 버블정렬
- 코드스테이츠 백엔드
- java
- 재귀와반복문
- MySQL
- vm인스턴스생성
- Spring MVC 동작원리
- 재귀함수
- GCP
- 코드스테이츠
- OOP
- 싱글톤패턴
- Spring Web MVC
- 프로그래머스
- 자바
- 알고리즘
- 인텔리제이
- 투포인터알고리즘
- 코딩테스트
- 성능테스트툴
- String.valueOf()
- List.of
- 구간합구하기
- 클라우드에서 도커 실행하기
- 11659
- 백준
- Array.asList
- 백준 11659
- Today
- Total
목록글 전체 보기 (242)
순간을 기록으로
자바는 객체지향 프로그래밍 언어입니다. 객체라는 세계에 있기 때문에 모든 것들을 객체로 표현합니다. 예를 들어 간단한 파일 같은 경우에도 Object로 다루고, image도 객체로 다룹니다. 그렇기 때문에 때때로 원시 자료형(=기본형) 타입이 Object(객체)로 변환될 필요할 때가 있습니다. 예를 들어 어떤 메서드의 매개변수가 객체 타입일 때, ArrayList, Hash 등 컬렉션 프레임워크의 경우 객체만(참조형)을 저장할 수 있습니다. 즉 기본형은 저장할 수 없습니다. 우선 Wrapper 클래스가 무엇인지 살펴보겠습니다. Wrapper 클래스는 기본형 데이터를 감싸 객체로 표현해주는 클래스입니다. 따라서 자료형으로 객체를 요구하는 상황에서 사용될 수 있습니다. 또한 Wrapper 클래스는 기본적으로..
에러로그 Description: Invalid mapping pattern detected: /{/user-id} ^ Expected close capture character after variable name } Action: Fix this pattern in your application or switch to the legacy parser implementation with 'spring.mvc.pathmatch.matching-strategy=ant_path_matcher'. 원인 스프링 부트가 2.5에서 2.6으로 버전이 올라가면서 ControllerHandler 매칭 전략이 ant_path_matcher에서 path_pattern_parser로 변경되었기 때문이다. 해결 방법은 크게 2가..

상황 엔티티를 만들면 공통적으로 들어가는 속성이 있다. 생성일(creatAt)과 수정일(modifiedAt)이다. 매번 엔티티를 생성할 때마다 위 두 속성을 작성해주기 보다는 공통적으로 처리해주면 훨씬 편할 것이다. BaseEntity.java @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseEntity { @Column(updatable = false) @CreatedDate private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime modifiedAt; } @CreatedDate Entity가 생성되어 ..

상황 h2 웹 콘솔에서 연결하기를 눌렀을 때 뜬 오류 문제 프로젝트를 실행할 때마다 H2 DB 연결을 위한 URL을 랜덤하게 생성하여 주지만 그 주소가 아니라 jdbc:h2:mem:test라는 URL로 접속하는게 문제였다. 실제로 프로젝트를 실행하면 접속할 JDBC URL을 주고 있는것을 확인할 수 있었다. 이 주소를 입력하니 실제로 H2 DB에 접속할 수 있었다! 하지만 실행할 때 매번 주소가 바뀌기 때문에 테스트할 때 번거롭다는 불편한 상황을 마주치게 된다. 해결 application.properties 파일에 아래와 같이 JDBC URL을 명시적으로 작성하면 앞으로 그 URL로 변경없이 접속할 수 있다. spring.datasource.url=jdbc:h2:mem:testdb 참고 https://..

상황 User 엔티티 클래스를 작성하고 실행했더니 아래와 같은 에러가 나타났다. 문장을 읽어보니 user에 별표로 체크가 되있으면서 구문 오류라고 알려준다. 잘 모르겠으니 검색을 해보니 h2 데이터베이스에서 'user'라는 키워드가 예약어라서 사용할 수 없다고 한다. 그러면 예약어를 피하기 위해 USER 테이블 명을 바꿔야 하는데 엔티티 클래스명을 바꾸기 보다는 @Table(name="UERS")를 이용하여 테이블 명을 USERS로 바꿨다. 문제 USER라는 키워드는 이미 예약어라서 테이블명으로 사용할 수 없는게 문제다. 해결방안 @Table(name="USERS")를 이용해서 테이블 명을 USERS로 바꿔준다. 참고 https://stackoverflow.com/questions/71722483/or..

상황 이전 프리 프로젝트에서 API를 검증할 때 포스트맨을 이용하여 수동으로 하나하나 검증을 했다. 수동으로 검증하려니 시간을 많이 잡아먹고 정확성도 떨어지는 문제점이 있었다. 그래서 이번에는 테스트 코드를 작성하여 API를 자동으로 검증해보자. 아래의 예시는 테스트 코드를 작성하여 어떻게 API 테스트를 자동 검증하는지를 보여준다. 이번 예시에서는 http://localhost:8080/hello/dto?name=hello&amount=1000으로 GET 요청을 보냈을 때 다음과 같이 JSON으로 응답이 와야 한다. HelloResponseDto import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstr..
상황 컨트롤러를 테스트하는 상황에서 어떤 경우에는 @SpringBootTest를 사용하고, 또 어떤 경우에는 @WebMvcTest를 사용하는 코드를 봤다. 어떤 기준으로 선택하는 건지 몰라 정리하게 되었다. @SpringBootTest + @AutoConfigureMockMvc 특징 프로젝트 안의 모든 빈을 등록하여 테스트를 한다 단위 테스트와 같이 기능을 테스트할 때보다는 통합 테스트를 할 때 사용한다. 장점 서버를 띄우고 모든 빈을 등록하기 때문에 다양한 테스트 중에서 가장 운영환경과 유사한 테스트다. 단점 모든 빈을 등록하기 때문에 단위 테스트보다 시간이 더 걸린다. @AutoConfigureMockMvc는 Mock 테스트를 해야 될 경우에 추가한다. @SpringBootTest @AutoConfi..