Java
-
요즘 아주 재미있게 즐겨보고 있는 이중석님의 유튜브입니다. 올라온 당일날 봤었는데, 이번에 리팩토링을 진행하면서 딱 좋은 케이스가 생겨서 적용해봤습니다. 기존 코드는 어땠는가 간소화해서 가져왔지만, 리팩토링 전의 코드기도 하고 Login 로직은 쬐끔 복잡합니다. OAuth provider 확인해서 적절한 bean 꺼내오기 (외부 통신) OAuth provider에 요청 보내서, 유효한 로그인인가에 대한 검증 진행하기 회원가입 한 적이 없다면 DB에 유저 생성하기 (외부 통신) FCM 토큰 검증하고 저장하기 @Override public Long login(String provider, LoginRequestDto requestDto) { OAuthProviderEnum providerEnum = OAut..
[Java] Default 접근제어자로 견고한 테스트 만들기요즘 아주 재미있게 즐겨보고 있는 이중석님의 유튜브입니다. 올라온 당일날 봤었는데, 이번에 리팩토링을 진행하면서 딱 좋은 케이스가 생겨서 적용해봤습니다. 기존 코드는 어땠는가 간소화해서 가져왔지만, 리팩토링 전의 코드기도 하고 Login 로직은 쬐끔 복잡합니다. OAuth provider 확인해서 적절한 bean 꺼내오기 (외부 통신) OAuth provider에 요청 보내서, 유효한 로그인인가에 대한 검증 진행하기 회원가입 한 적이 없다면 DB에 유저 생성하기 (외부 통신) FCM 토큰 검증하고 저장하기 @Override public Long login(String provider, LoginRequestDto requestDto) { OAuthProviderEnum providerEnum = OAut..
2023.08.24 -
최근 면접에서 질문 받았던 내용에 답변을 못했습니다. "자바 람다 에서 지역변수를 사용하려면 어떻게 해야하나요?" 람다를 사용할 때는 많았지만, 지역변수의 참조나 변경을 고려하면서 작성할만한 경험이 없었던 것 같습니다. 그래서였을까요. 람다에서 일반적으로 지역변수에 대한 참조가 불가능 하다는 것을 처음 알았습니다. 지나간 면접은 잊고, 오늘은 람다가 어떻게 동작하는지, 그렇다면 지역변수를 어떻게 참조하는지에 대해서 알아보겠습니다. 람다란 무엇인가 람다(Lambda)는 매서드 명이 없는 간결한 함수입니다. Java8 에서부터 등장하였으며, 주로 함수형 프로그래밍에서 함수를 인자로 넘길 때 간결하게 표현할 수 있어서 사용됩니다. 람다의 사용법 람다를 통해서 문자열의 내용을 대문자 및 소문자로 변경하는 코드를..
[JAVA] 람다(lambda) 의 작동 방식과 지역변수 사용(capturing lambda)최근 면접에서 질문 받았던 내용에 답변을 못했습니다. "자바 람다 에서 지역변수를 사용하려면 어떻게 해야하나요?" 람다를 사용할 때는 많았지만, 지역변수의 참조나 변경을 고려하면서 작성할만한 경험이 없었던 것 같습니다. 그래서였을까요. 람다에서 일반적으로 지역변수에 대한 참조가 불가능 하다는 것을 처음 알았습니다. 지나간 면접은 잊고, 오늘은 람다가 어떻게 동작하는지, 그렇다면 지역변수를 어떻게 참조하는지에 대해서 알아보겠습니다. 람다란 무엇인가 람다(Lambda)는 매서드 명이 없는 간결한 함수입니다. Java8 에서부터 등장하였으며, 주로 함수형 프로그래밍에서 함수를 인자로 넘길 때 간결하게 표현할 수 있어서 사용됩니다. 람다의 사용법 람다를 통해서 문자열의 내용을 대문자 및 소문자로 변경하는 코드를..
2023.07.03