분류 전체보기
-
공포가 주는 악영향.#Shorts 2023. 1. 8. 15:37
공포는 즐거움을 망친다. 사람들은 머릿속에서 공포 기계를 돌린다. 그 기계는 이기기 위해 즐거움 따위는 희생하라고 말한다. 게다가 한가한 시간이 있어도, 이런 사람들은 쉬지 않는다. 공포에서 추진력을 얻는 사람은 모든 일을 일로 여긴다. 이것이 진정 당신이 살고 싶은 삶인가? 좋은 시간을 보내면 인생이 더 나빠지리라 생각하는가? 즐거움, 특히 신뢰하는 사람들과 보내는 즐거운 시간은 뇌에서 기분 좋은 화학물질과 호르몬을 분비시킨다. 기분 좋은 엔도르핀, 보람된 도파민 그리고 사랑스러운 옥시토신 등이다. 즐거움은 긴장감을 낮추고 긍정성을 높여 퍼포먼스를 향상시킨다. 또한 그것이 주는 안도감이 과로로 인해 녹초가 되는 것을 막아 준다. 놀이는 우리 모두에게 자유로운 것이다. 성과를 내야 한다는 압박감에서 벗어..
-
실패와 동기부여#Shorts 2023. 1. 8. 15:20
성공은 시도하고 자신의 한계를 뛰어넘고 위험을 감수할 때 가능하다. 그리고 그 과정에서 실패는 불가피하며, 꽤 자주 패배를 경험하게 된다. 당신은 살면서 크고 작은 승리와 패배를 경험하게 될 것이다. 패배의 크기는 중요하지 않다. 진정으로 중요한 것은 패배와 실패를 들춰내 다시 평가하고 고민하여 앞으로 나아가는 것이다. 새로운 방향으로 말이다. 실패를 통해 아직 준비가 안 되었거나 실력이 충분하지 않은 부분이 어디인지 파악할 수도 있다. 물론 실패하고 그 경험을 곱씹는 일이 쉽거나 유쾌하진 않겠지만, 이를 통해서 실패를 유용한 경험으로 바꿀 수 있다. 일찍 실패할수록, 자주 실패하고 용감하게 맞설수록, 삶에 중요한 순간이 왔을 때 마주하게 될 불확실한 상황으로부터 자신을 더 잘 보호할 수 있다. 그 누구..
-
2022 유스컨(유쾌한 스프링방 컨퍼런스)컨퍼런스 2023. 1. 8. 14:59
Introduce to Clean Architecture 강의 내용 3년차 이상 내용 기술도 중요하지만 가장 중요하지는 않음 가장 중요한 것은 핵심 비즈니스 로직과 유스케이스 1.핵심 비즈니스 로직 시스템이 없어도 고유한 개념 은행 같은 경우에는 기술 이전에도 2.유스케이스 시스템이 있어야 유효한 비즈니스 로직 아키텍처에서 중요한 것 도메인은 세부사항에 의존하면 안 됨 잘못된 아키텍처 데이터 접근 기술을 바꾸다가 서비스 계층의 코드도 변경 계층형 아키텍처의 단점 의존성의 방향은 항상 다음 계층을 향함 가장 중요한 비즈니스 계층은 영속성 계층에 의존하게 됨 현실에서 핵심은 비즈니스 현실 개발은 자연스럽게 데이터베이스 설계를 하게 됨 넓은 서비스로 인해 유스케이스 파악이 어렵다 실제 현업은 유스케이스로 기획..
-
-
Optional 활용하기, 람다식에서 지역변수 변경하기프로젝트/잡스캐너 2022. 9. 8. 23:55
로그인하는데 회원가입이 되어 있지 않으면 예외가 발생한다. 하지만 처음 소셜 로그인할 때는 회원가입이 되어 있지 않아서 NotFoundMemberException 예외가 발생하는 문제가 있었다. 우선 간단하게 try-catch문으로 NotFoundMemberException 예외를 잡아서 회원가입을 진행하고 로그인을 진행하게 코드를 짰다. Controller에 비즈니스 로직과 예외 처리 로직이 함께 있어서 좀 더 개선할 방법을 고민했다. Optional을 활용해서 회원가입이 되어 있지 않는다면 Optional.orElseGet()을 사용해서 Controller에 try-catch문을 없애고 좀 더 간결하게 만들 수 있었다. Optional 활용하기 @PostMapping("signin/{socialTy..
-
클래스다이어그램 - 의존성 그려보기프로젝트/잡스캐너 2022. 9. 8. 22:37
"채용공고 수집 관리", 잡스캐너 프로젝트에서 우선 카카오 소셜 로그인기능을 구현했다. 카카오 엑세스 토큰을 받고 회원가입이 되어 있지 않다면 회원가입을 먼저 진행한다. 그리고 JWT 토큰을 발급하고 Session에 저장하는 로직이다. 클래스 구조를 먼저 설계하고 기능을 구현했어야 했는데, 우선 기능을 구현하고 나서 보니까 클래스 간의 의존성이 정리되어 있지 않았다. 그리고 추후 구글 소셜 로그인이나 깃허브 소셜 로그인 등의 확장에 닫혀있었다. 개발자라면 기능 구현보다 먼저 설계를 진행하고, 변경에는 닫혀있고 확장에는 열려있는 개발하는 방법을 꾸준히 연습해나가야된다고 생각한다. 그래서 카카오 소셜 로그인 기능까지 개발하고 의존성을 그려보고 리팩토링 했다. 카카오 소셜 로그인 기능 리팩토링 전 카카오 소셜..
-
불변 객체 생성 방법 - 정적 팩토리 메서드와 빌더 패턴프로젝트/잡스캐너 2022. 9. 8. 22:05
객체 생성 방법에는 여러 가지가 있지만, DTO 같은 불변 객체를 생성할 때는 주로 정적 팩토리 메서드와 빌더 패턴을 많이 쓴다. 다양한 장단점이 있지만, 불변 객체를 생성한다는 관점에서는 필드가 많고 null일 수도 있는 값이 있으면 빌더 패턴을 사용하고 필드가 적고 모든 필드가 null일 수 없어서 반드시 파라미터로 입력받는다면 정적 팩토리 메소드를 사용하는 것이 적합한 것 같다. 그래서 로그인할 때나 JWT를 refresh할 때 반환하는 DTO의 파라미터가 1, 3개여서 처음 개발할 때는 빌더 패턴을 사용했는데 정적 팩토리 메소드로 리팩토링 했다. 빌더 패턴 @Getter @Builder public class AuthLoginResponse { private MemberResponse member..
-
자바 16 레코드 클래스프로젝트/잡스캐너 2022. 9. 8. 21:41
기존 불변 데이터 객체 생성시에 모든 필드에 final을 사용하고 생성자, 접근자 메서드(getter), 출력 메서드(toString) 등을 재정의 해주어야 한다. lombock을 사용해 @AllArgsConstructor @Getter @ToString 등을 사용해 좀 더 편하게 정의할 수 있기는 하지만 매번 final과 @을 달아줘야하는 건 마찬가지다. 그래서 자바 16부터 record class를 공식적으로 제공한다. record class를 사용하면 간결한 방식으로 불변 데이터 객체를 정의할 수 있다. 모든 필드에 아래 적용 - private final - 생성자 - getter() - toString() - equals() - hashCode() 불변 데이터 객체로 사용해야하는 propertie..