서론 java stream의 reduce를 사용하는 방법을 소개합니다. 본론 reduce reduce에서는 identity와 lambda expression 두 가지를 매개변수로 받아 작업을 수행합니다. identity는 계산을 수행하기 전 초기 값으로 각 계산의 결과가 입력으로 재사용됩니다. lambda expression에서는 identity와 stream의 값을 받을 수 있는 매개변수가 2개인 람다식을 작성하면 됩니다. someList.stream().reduce(, ) 사용 예시 int[] nums = {1, 2, 3, 4, 5, 6, 7} // nums 배열의 모든 값들의 곱을 구하는 방법 return Arrays.steram(nums).reduce(1, (total, num) -> (total..
서론 Spring boot 프로젝트에서 Swagger를 추가하는 방법을 소개합니다. 본론 spring boot 3.x인 경우에 해당합니다. 원문을 확인하시고 싶으시다면 여기를 확인하세요. 의존성 추가 gradle을 사용하는 경우 dependencies에 아래와 같이 의존성을 추가합니다. dependencies{ ... implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' ... } maven을 사용하는 경우 dependency를 추가해줍니다. org.springdoc springdoc-openapi-starter-webmvc-ui 2.3.0 기본 설정 application.properties를 사용하는 경우 아래와..
서론 Django Restframework에서 편의를 위해 사용하는 ViewSet에서 서로 다른 permission을 적용하는 방법을 소개합니다. 본론 get_permission() ViewSet 클래스의 메소드 중 get_permission(self)에서는 액션을 수행하기 전 사용할 permission들을 permission_classes에서 가져오는 메소드입니다. def get_permissions(self): """ Instantiates and returns the list of permissions that this view requires. """ return [permission() for permission in self.permission_classes] 그래서 해당 메소드를 오버라이딩해..
서론 JPA를 사용하려고 할 때 dataSource 관련 문제가 생길때 사용할 수 있는 방법입니다. 본론 환경 spring boot: 3.2.2 테스트 코드 아래 코드와 같이 Autowired된 dataSource 하나만을 잘 구현해주면 되겠습니다. import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import j..
서론 spring boot에서 log4j 사용을 위해 Lombok annotation을 사용하려고 하면 package lombok.extern.log4j does not exist에러가 발생 할 때 해결방법입니다. 본론 필자는 spring boot 3.2.2 에서 해당 문제가 발생하였고, 해결하였습니다. build.gradle 의존성에서 test관련 문구가 삽입되어 있는지 확인합니다. 아래 문구가 없으면 추가해줍니다. dependencies { ... testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' ... } log4j2 import lombok.extern..
서론 일반 요청 헤더의 Authorization으로 Token을 사용하는 로그인을 구현하는 방법입니다. 본론 기본 설정 당연하지만 djangorestframewok를 설치해야 합니다. pip install djangorestframework settings.py INSTALLED_APPS에 다음 앱들을 추가해줍시다. #settings.py INSTALLED_APPS = [ ... 'rest_framework', 'rest_framework.authtoken', ... ] 이제 settings.py 파일 내에 REST_FRAMEWORK 딕셔너리를 만들고 토큰 인증 방법을 추가해 줍니다. #settings.py REST_FRAMEWORK = { 'DEFAULT_AUTHEN..
서론 해킹방법 아닙니다. 원격 서버에 접근하고 싶을 때 비밀번호 없이 SSH 연결하는 방법을 소개합니다. 본론 SSH KEY 생성 MacOS나 Linux의 경우 ssh-keygen이 내장되어 있어 아래 명령어를 그대로 수행하면 되지만, 윈도우 유저의 경우에는 기능을 추가하여야 사용할 수 있습니다. 윈도우 유저의 경우에는윈도우에서 SSH KEYGEN 사용하기사이트에서 영문이긴 하지만 사진이 자세하게 나와 있습니다. ssh-keygen -t rsa -b 4096 -C "your_email@domain.com" 위 명령어를 수행하면 중간에 passphrase 를 설정하는 과정이 나오는데, 이때 아무것도 적지 않고 진행합니다. ssh 키가 잘 생성되었으면 Linux, Mac의 경우에는 home에 .ssh 디렉토..
서론 안드로이드 개발 시에 안드로이드 에뮬레이터를 사용해서 테스트해보게 되는데, 개발 편의를 위해 로컬 머신에서 웹 서버를 실행하고 에뮬레이터에서 접근하는 경우가 있습니다. 이때 요청이 전송되지 않아 찾아본 정보입니다. 본론 미리 할당된 주소 안드로이드 공식 문서에서는 안드로이드 에뮬레이터에서 미리 할당하는 주소들에 대한 정보를 제공합니다. 네트워크 주소 설명 10.0.2.1 라우터 또는 게이트웨이 주소 10.0.2.2 호스트 루프백 인터페이스의 특수 별칭(개발 머신의 127.0.0.1) 10.0.2.3 첫 번째 DNS 서버 10.0.2.4/10.0.2.5/10.0.2.6 두 번째, 세 번째, 네 번째 DNS 서버(선택사항) 10.0.2.15 에뮬레이션된 기기 네트워크 또는 이더넷 인터페이스 127.0...
