분류 전체보기
-
Java에서 단일 Key, Value 쌍 사용하기: Map.Entry<K, V>Today I Learned 2023. 1. 20. 01:24
프로그래머스 레벨 3 해시 문제 '베스트앨범'을 풀면서 사용한 Map.Entry Interface에 대해 정리했다. Map.Entry Map 타입의 인터페이스를 구현한 구현체에 대해 entrySet() 메서드를 호출하는 경우, 구현체에 포함되어 있는 [Key, Value] 쌍 전체를 포함하는 Set 컬렉션을 반환받을 수 있다. Map genresAndPlaySums = Map.of( "jazz", 1200, "classic", 5000, "k-pop", 2500, "j-pop", 300 ); Set entries = genresAndPlaySums.entrySet(); cf. docs.oracle.com에 따르면, 이렇게 얻은 Map.Entry들은 해당 Map의 항목에 대한 참조로써 사용될 수 있다고 한..
-
2023년 1월 8일Today I Learned 2023. 1. 8. 12:38
Jest 특정 입력 컴포넌트가 disabled인지 확인하고 싶을 때에는 toHaveAttribute와 closest를 Test에서 사용할 수 있음 expect(screen.getByPlaceholderText('선택된 장소 이름') .closest('input')).toBeDisabled(); expect(screen.getByPlaceholderText('선택된 장소 주소') .closest('input')).toBeDisabled(); reference - https://stackoverflow.com/questions/56593840/check-that-button-is-disabled-in-react-testing-library msw에서 PathVariable을 받는 API 요청의 순서를 유의하..
-
2023년 1월 7일Today I Learned 2023. 1. 7. 12:53
enum public enum PlaceRegistrationStatus { REGISTERED("등록"), UNREGISTERED("미등록"); private String registrationStatus; PlaceRegistrationStatus() { } PlaceRegistrationStatus(String registrationStatus) { this.registrationStatus = registrationStatus; } public String value() { return registrationStatus; } } References - https://velog.io/@jhbae0420/enum-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 - https://gi..
-
2023년 1월 6일Today I Learned 2023. 1. 6. 23:15
JPA Specification JpaSpecificationExecutor // repositories/PlaceRepository.java public interface PlaceRepository extends JpaRepository, JpaSpecificationExecutor { Optional findByInformationName(String placeName); } Specification 객체 // specifications/PlaceSpecification.java public class PlaceSpecification { public static Specification likeInformationName( String informationName ) { return new Spe..
-
인수 테스트 코드 리팩터링-1Today I Learned 2023. 1. 3. 21:13
인수 테스트 코드를 수정하는 과정에서 사용한 것들을 정리했다. CodeceptJS에서 className으로 요소 확인하기 인수 테스트에서 class 속성을 갖는 요소의 화면 존재 여부를 다음과 같이 확인할 수 있다. // src/components/post/PostGameMembers.jsx // elements // tests/registration_acceptance_test.js I.seeElement('.member'); CodeceptJS에서 입력 필드 값을 비우면서, 입력 필드 상태에도 반영시키기 게시글 작성 기능 중, 필수 입력 폼에 내용을 입력하지 않고 게시글 작성을 시도하는 경우 예외를 발생시키는 동작의 인수 테스트를 다음과 같이 수행하려고 했다. 모든 입력 폼에 내용을 입력한다. 특정 ..
-
CodeceptJS에서 로그인하지 않고 특정 페이지에 접속하는 경우 인가 정보를 가져오지 못하는 문제 해결 과정Today I Learned 2023. 1. 2. 14:48
문제 상황 로그인하지 않은 상태로 서버에 등록된 게시물 목록을 확인하는 인수 테스트를 통과하지 못하는 이슈를 확인했다. 분석 및 해결 과정 클라이언트에서 서버에 API 요청을 보낼 때, 요청 Headers에 Authorization Bearer에 Access Token을 포함해 전달한다. 서버에서 해당 API 요청을 수신하는 Controller의 메서드는 인자로 requestAttribute로 로그인한 사용자의 식별자를 받는다. 이때 requestAttribute의 requierd 속성이 false이기 때문에, 클라이언트에서 Access Token으로 빈 값을 전달하는 경우에는 해당 식별자 인자에는 null 값이 들어있게 되고, 비즈니스 로직에서는 사용자 식별자가 null인 경우 로그인하지 않은 것으로 ..
-
Parcel로 React 프로젝트 빌드 후 실행 시 src 디렉터리를 참조하지 못하는 문제 해결 과정Today I Learned 2023. 1. 2. 09:26
문제 상황 프로젝트를 배포한 이후로 경로에 '/'가 2개 이상 들어가는 경로를 주소창에 입력할 경우 응답이 200으로 정상임에도 Now Loading 화면에서 화면이 넘어가지 않는 오류가 발생했다. 배포한 이후로 로컬 환경에서도 API 요청 주소만 로컬 백엔드 서버로 바꿔서 build한 뒤 실행하고 있는데, 로컬에서도 똑같은 문제가 발생하는 것이 확인되고 있고, package.json에 프로젝트를 빌드하기 위한 build 명령어를 추가한 뒤부터 해당 오류가 발생한 것을 봤을 때 build와 관련된 문제인 것 같아 추가한 build 명령어를 중심으로 문제를 추적해보기로 했다. 해결 과정 먼저 어느 상황에서 정상적인 화면 출력이 되지 않고 Now Loading이 나타나는지 확인했다. 주소창에 경로를 직접 입..