Setter 를 지양하는 이유아마 모두가 알고 있을것이다.setter 를 사용(남용) 하다 보면 객체의 불변성, 무결성, 캡슐화가 깨지기 쉽다.객체가 불변성을 가지면 상태가 변하지 않아 객체의 상태에 대한 예측 가능성이 높아진다. 객체가 불변하고 무결하면 여러 곳에서 동시에 접근했을때의 동시성 문제 부터로도 안전해진다.캡슐화-> 엔티티는 비지니스 로직을 가진 도메인 객체이다. setter 를 이용하면 단순 dto 처럼 이용될 가능성이 생긴다. 그래서?그래서 당시엔 프로젝트를 진행할때 쓰지 말라니깐 다른 방법들로 엔티티의 값을 업데이트 했다.주로 사용한 방식은1. dto에다 setter 를 두고 그 dto를 엔티티로 변경해 save 하기2. 엔티티의 constructor 를 이용해 새로운 객체를 만들어 s..

1. 카카오 개발자 콘솔에서 프로젝트 설정https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 로고, 앱이름, 회사이름, 카테고리 설정하고 애플리케이션을 추가하기면 이렇게 뜹니다.추가된 앱을 클릭해서 들어가봅시다. 카카오 로그인으로 들어가 활성화 하고필요한 개인정보들을 설정합니다. 이메일을 필수동의로 받으려면 비즈앱 전환이 필요합니다.회사에서 쓰시는게 아니라면 개인개발자 비즈앱 전환을 통해 비즈앱 전환하실 수 있습니다. 앱키들을 확인해줍니다. 2. 플러터 프로젝트 설정https://pub.dev..

StateNotifierProvider공식 문서 설명에 따르면 StateNotifierProvider 는StateNotifier를 듣고있는(구독하는) provider 라고 하며StateNotifier 는 immutable state 를 저장하는 관찰 가능한 클래스 라고 합니다. State 는 StateNotifier 의 상태를 의미합니다.간단하게 이야기하면 상태의 변화를 계속 들을 수 있는 provider 쯤으로 이해할 수 있습니다. + immutable 과 mutable class 의 차이 사용법 공식문서에 간단한 todo list 예제가 있어 가져왔습니다. @immutableclass Todo { const Todo({required this.id, required this.descriptio..

JPA 에서 두 객체는 단방향 혹은 양방향으로 방향성을 가질 수 있다. 하지만 이 객체들의 방향성은 데이터베이스 테이블들에 영향을 끼치지 않는다. 쉽게 말하면 객체는 방향성을 갖고 있으나, 데이터베이스 테이블끼리는 방향성을 가지지 않는다. 연관관계의 주인과 주인이 아닌 객체 연관관계에서 외래키를 가지고 있으며 관리하는 쪽이 주인이 된다. 대게 @ManyToOne 쪽이 주인이다. 주인쪽에서 외래키의 관리를 하기때문에 주인이 아닌쪽은 읽기(참조)만 가능하다. @JoinColumn 주인쪽에서 @JoinColumn 어노테이션을 이용해 사용자가 연관관계를 맺어 사용할 컬럼임을 명시한다. @MappedBy 주인이 아닌쪽에서 @MappedBy 어노테이션을 이용해 주인쪽과 관계를 이어준다. @Entity public ..
어이없는 문제로 몇시간을 날렸는지 모르겠다. InAppWebview에서 onCreateWindow 를 이용해 또 다른 웹 팝업창을 여는 작업중 팝업 윈도우를 닫을때마다 바깥쪽 InAppWebview 에서 리다이렉션 현상이 일어나 로그인 등에서 문제를 겪었다. 기존의 코드를 보면 onCreateWindow: (controller, action) { debugPrint("onCreateWindow"); return showDialog( context: context, barrierDismissible: true, builder: (context) { return Padding( padding: const EdgeInsets.only(top: 30.0), child: FractionallySizedBox( h..

현재 진행중인 프로젝트에서 inAppWebview를 willPopScope 으로 감싸 사용중 이었는데 그새 willPopScope 이 deprecated 되어 popScope 을 적용해 보았습니다. 기존의 willPopUp 작동 방식 이전의 willPopScope 을 먼저 보면 이런 형식입니다. onWilPop이 안드로이드의 back 버튼에 발생해 true 면 pop, false 면 화면을 그대로 유지했습니다. return WillPopScope( onWillPop: () => _goBack(context), child: InAppWebView( … 현재 프로젝트는 백버튼으로 제일 첫 화면으로 돌아간 뒤 한번 더 누르면 종료된다는 문구를 보여줍니다. 문구는 2초 뒤에 사라지며, 문구가 남아있을때 백버튼을..

링크드인 공고를 보고 서류 지원했습니다. 사실 뤼이드라는 회사에 대해 잘 몰랐지만 지원 전/후로 조사하며 욕심이 났던 회사입니다. 서류 합격 이메일을 받고 아주아주 기뻣던 기억이 납니다. 하지만 lg 코테~면접 일자와 겹쳐서 과제를 2주 후에 볼수 있냐고 여쭤봤고 흔쾌히 일정을 맞춰주셨습니다. 처음 공고에는 java 또는 kotlin 언어를 사용할 수 있다고 했으나 일정을 조율하던 도중 kotlin만 사용하는것으로 변경됐었습니다. 코틀린은 한번도 사용해 본적 없기에 약간 당황했으나 코틀린이 자바 베이스의 언어라 익히는데 오랜 시간이 필요하지 않을것같다고 생각했고 가고 싶은 회사여서 이 기회를 포기하고 싶지 않아 급하게 코틀린 기초 공부를 하고 과제에 임했습니다. 과제를 제출하고 결과를 받기까지 일주일하고..

지인의 소개로 서류 지원을 하게된 곳이다. 다행이 자유양식 이력서 지원이라 큰 준비가 필요하지 않았던 탓에 미리 준비해두었던 이력서로 쉽게 지원할 수 있었다 4/30에 지원 후 서류 결과가 나오기까지 2주정도 걸렸는데 사실 떨어진줄 알았는데 얼떨결에 서류합격해서 부랴부랴 코테 준비 시작 나는 백준 랭크 골드5 푼 문제 100문제 조금 넘는 실력이다. 물론 백준 문제만 푼것은 아니고 릿코드, 프로그래머스 여기저기서 문제를 줏어 푼것들이 있어 아마 최근 6개월 150~200개 풀지 않았을까 싶다. 코테는 4시간 4문제였고 2솔했다. 코테 후기를 남겨보자면 난이도는 시험 이후 비슷한 유형의 문제를 검색해본 결과 릿코드 hard, 백준 골드4,5~ 정도였다. dfs인지 dp문제 하나랑 구현, 시뮬레이션 문제들이..