본문 바로가기

분류 전체보기214

Computed property - get, set 알아보기! Swift에서의 get과 set은 Java의 getter, setter와 동일한 기능을 합니다. 사용하는 이유도 거의 동일한 것 같았습니다. 외부에서 property에 직접적으로 접근하는 것을 막기도 하고 값을 변경(set)하기 전에 validation을 하기 위한 용도가 되기도 하구요. 다만 독특하게 computed property라고 하여 property 자체에 마치 method처럼 get과 set을 설정해 주게 됩니다. var numberOfStudents: Int { get{ return totalNumberInClass - 1 } set { print(newValue) } } 위의 구문처럼 사용하는데, 상당히 생소하게 느껴졌습니다 ㅎㅎ 곧 적응하겠지만요 이렇게 property의 값을 "계산"해서.. 2022. 9. 30.
Dictionary A dictionary is a type of hash table, providing fast access to the entries it contains. Dictionary는 해시 테이블 자료구조 중 하나이며 빠르게 entry에 접근할 수 있다는 특징이 있습니다. Entry는 key와 value로 이루어져 있고, String 또는 number 형태인 key를 이용해 각 entry의 value를 가져올 수 있습니다. Value는 모든 타입이 다 가능합니다. 다른 중요 특징은 dictionary는 순서를 보장하지 않는다는 점입니다. 그렇기 때문에 dictionary 안의 데이터를 단순히 콘솔창에 찍어보면 매번 내부의 데이터의 순서가 다르게 나온다는 것을 알 수 있습니다. 또 다른 중요 특징으로는 중복된 .. 2022. 9. 28.
Parameter 2 of constructor in ... that could not be found error Controller test를 하려는데 자꾸만 아래와 같은 에러로 인해 진행이 되지 않았습니다. @Component(@Service, @Repository 등 포함) annotation을 붙이지 않아 생기는 에러라고 하여 해당하는 클래스들을 다 확인했지만 annotation은 다 잘 설정되어 있었습니다. 그러다가 결국 알게된 원인은 해당 class를 @MockBean으로 등록(?)하지 않았기 때문이었습니다. 🥹 사실 문제를 일으켰던 bean들은 test code에서는 명시적으로 사용되지 않았기 때문에 @MockBean으로 필요할 것이라고 전혀 생각지 못하였습니다. 그런데 그 친구들을 등록해주니 해당 문제에서 벗어날 수 있었습니다. ㅎㅎ 혹시 동일한 문제로 고통받고 계신분이 있으시다면 도움이 되었으면 좋겠.. 2022. 9. 27.
RestController 테스트 시 JWT 생성하기 Spring Security dependency가 적용된 상태에서는 unit test를 할 때도 security 관련 처리를 해주어야 합니다. 즉, 회원 인증 절차를 포함해주어야 합니다. (인증된 유저가 서비스를 이용한다는 가정) 만약에 인증 과정을 거치지 않으면 아래처럼 Unauthorized 에러가 발생합니다. 어떠한 방법으로 해결하면 되는지 찾아보니 @WithMockUser를 사용하면 된다는 것을 알게 되었습니다. 문서에 상세하게 사용법이 나와있는데, 기본적으로는 test하고자 하는 메서드 테스트 코드에 @WithMockUser만 붙여주면 된다고 합니다. 사용해보니 테스트 통과가 되더라구요. 하지만 특정한 username이나 password를 사용해서 인증을 하고 싶은 경우 혹은 권한을 달리하여 인.. 2022. 9. 20.
@RequestParam 애노테이션 @RequestParam은 핸들러 method의 parameter 종류 중의 하나로, client 쪽에서 전송하는 요청 데이터를 Query Parameter 또는 Query String form-data x-www-form-urlencoded 형식으로 전송할 수 있게 해주는 annotation 입니다. 2022. 9. 12.
@Import 애노테이션의 쓰임 예전에 문득 'XXXConfig.class 파일들이 굉장히 많아지면 관리가 힘들겠다' 라는 생각을 한 적이 있었습니다. 그런데 오늘 Spring 공식 문서를 살펴보다가 @Import 애노테이션이라는 것을 보았고, 이전에 의문을 가졌던 부분을 해당 애노테이션으로 어느 정도 보완이 된다는 것을 알게 되었습니다. 아래 예시는 공식 문서에 나온 예시입니다. @Configuration public class ConfigA { @Bean public A a() { return new A(); } } @Configuration @Import(ConfigA.class) //이 부분! public class ConfigB { @Bean public B b() { return new B(); } } 보면 ConfigB에.. 2022. 9. 11.
반응형