본문 바로가기

반응형

전체 글

(41)
람다 표현식 (Lambda Expression) 람다란 무엇인가? 람다 표현식 (Lambda Expression) 은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다를 사용하면 더 쉽게 동작 파라미터 형식의 코드를 구현할 수 있으며, 이에 따라 코드가 더 간결하고 유연해진다. 람다의 특징 익명 : 람다는 익명 메서드 처럼 이름이 없다. 함수 : 람다는 메서드처럼 특정 클래스에 종속되지 않기 때문에 함수라고 부를 수 있다. 하시만 메서드처럼 "파라미터 리스트", "바디", "반환 형식", "가능한 예외 리스트"를 포함한다. 전달 : 람다 표현식을 메서드의 인수로 저장하거나 변수로 지정할 수 있다. 간결성 : 익명 클래스처럼 자질구레한 코드 구현이 필요 없다. 람다의 구성요소 // Before class LengthCompara..
동작 파라미터화 (Behavior Parameterization) 동작 파라미터화 (Behavior Parameterization) 는 "다양한 동작을 수행할 수 있는 코드 블럭을 메서드 파라미터로 전달"함으로써 자주 변경되는 요구사항에 효과적으로 대응할 수 있는 방식을 의미합니다. 여기서는 자주 변경되는 요구사항의 예시를 기반으로 동작 파라미터화를 한 후 Java8에서 추가된 Lambda로 코드를 간소화하는 과정을 보여줍니다. 요구사항 우리는 농장 재고 애플리케이션을 개발합니다. 농부는 녹색 사과 만 필터링 하는 기능을 추가하길 원했습니다. 시도 1 : 녹색 사과 필터링 아래와 같이 녹색 사과만 필터링하는 메서드를 구현했습니다. 그런데 농부가 빨간 사과 를 필터링하는 기능을 추가하길 원했습니다. public static List filterGreenApples(Lis..
Private 메소드 단위 테스트하기 2가지 방식으로 Private 접근자를 가진 메소드를 단위테스트하는 예제입니다. Reflection 활용 Spring Framework의 RelectionTestUtils Reflection을 활용한 private static 메서드 단위 테스트 Relection으로 특정 클래스에서 테스트 할 메서드를 불러온 후 accessible 필드를 true로 설정합니다. 그리고 invoke() 메서드를 사용해 테스트 할 Private 메서드를 실행합니다. @Component public class Validator { private static boolean checkLength(String str) { if (str.length() > 10) { return false; } return true; } } @Ru..
일반 계정으로 docker 명령어 사용하기 콘솔에서 docker 명령어는 root 권한을 가진 사용자만 사용할 수 있습니다. 그래서 docker 명령어 실행시 항상 sudo를 붙여야 합니다. 만약 일반 계정으로 sudo를 붙이지 않고 docker 명령어를 실행하면 다음과 같은 메세지를 출력합니다. Cannot connect to the Docker daemon. Is the docker daemon running on this host? 그러나 docker 그룹을 생성한 후 일반 사용자를 포함하면 일반 계정도 sudo를 붙이지 않고 docker 명령어를 사용할 수 있습니다. $ sudo groupadd docker $ sudo usermod -aG docker ${USER} 또는 sudo gpasswd -a ${USER} docker
OAuth 2.0과 Authorization Grant 소개 OAuth2는 사용자가 HTTP 서비스 상에서 어플리케이션의 제한된 접근을 허용하기 위한 인가(Authorization) 프레임워크 입니다. 인증은 사용자 계정을 소유한 서비스로 위임하고, 사용자 계정에게 Third-Party 어플리케이션 접근 권한을 부여합니다. OAuth2는 웹, 데스크톱 어플리케이션, 모바일 디바이스 등을 위한 인가 플로우(Flow)를 제공합니다. OAuth 2.0 Specification 은 Access Token을 발급 받으려는 클라이언트에게 다양한 Grant("Method")를 제공하는 유연한 인가 프레임워크 입니다. Access Token은 API Endpoint로의 요청을 인증하는데 사용되며, 클라이언트의 데이터에 접근하기 위한 권한을 표현합니다. 명세서에서는 Acce..
git-secret git-secret 이란? 비밀번호, Secret Key 값과 같이 보호되야 하는 데이터가 포함된 파일을 그냥 Git Commit & Push 하면 개인적인 데이터가 노출되는 문제점이 발생합니다. git-secret 을 사용하면 개인적인 데이터가 포함된 파일을 암호화 한 후에 Git 저장소에 저장함으로써 문제점을 해결할 수 있습니다. git-secret 은 Git 저장소에 개인적인 데이터를 gpg 를 기반으로 암호화하여 저장하는 Bash Tool 입니다. 즉, 암호화 대상 파일은 Public Key로 암호화하고, 복호화는 Private Key를 소유한 사용자만 할 수 있습니다. 이를 통해 실수로 비밀번호, Secret Key와 같이 노출되면 안되는 데이터를 그대로 Git 저장소에 업로드하는 실수를 막을 ..
테스트 주도 개발 책을 읽고 내용 정리합니다. 테스트 주도 개발 (고품질 쾌속개발을 위한 TDD 실천법과 도구) 스터디 노트 Java의 리플렉션(Reflection) Java에서는 리플렉션이라는 기능을 통해 인스턴스화된 객체로부터 원래 클래스의 구조를 파악해내어 동적으로 조작하는 것이 가능하다. 마치 기계를 분해해서 마음대로 재구성하는 것처럼 말이다. 리플렉션을 이용하면 private 메소드나 필드까지도 마음대로 조작할 수 있다. 리플렉션을 사용하면 이런식으로 Java의 일반적인 규칙들을 무시할 수도 있기 때문에 보통 한정적으로만 사용할 것을 권장한다. 그리고 시스템 비용이 매우 많이 드는 기능이다. JUnit4의 특징 Java 5 Annotation 지원 test라는 글자로 method 이름을 시작해야 한다는 제약 해소 : Test 메소드는 @Te..
[독서 후기] 코어 자바스크립트 코어 자바스크립트 국내도서 저자 : 정재남 출판 : 위키북스 2019.09.10 상세보기 자바스크립트에 대한 부족한 지식을 조금이나마 채워보고자 책에 이어 읽게 된 책이다. 결론부터 적으면 개인적으로 이제 막 자바스크립트 문법 책을 한 권정도 읽었다면 꼭 이어서 읽으라고 추천해주고 싶은 책이었다. 이였다. 앞서 비슷한 책을 한 권 읽었던 것이 많은 도움이 되었겠지만, 보다 더 쉽고 재밌게 느껴졌다. 그럼에도 불구하고 내용은 매우 알차서 부족함이 없이 느껴졌다. 예제와 그 설명들을 읽다 보면 어느 순간 한 챕터가 끝나가고 있었고, 전체적인 내용과 그 그림이 머릿속에 저장된 느낌을 받을 수 있었다. 특히 [1장: 데이터 타입]은 챕터 이름에서 느껴지는 "기초적인", "쉬울 것 같은", "이미 알 것 같은" ..

반응형