본문 바로가기

전체 글110

[Android] Serialize, Parcelable, Parcelize 정리 Serialize, Parcelable, Parcelize를 사용하는 이유 기본 자료형과 참조 자료형 객체를 갖고 있는 데이터 클래스를 전달하기 위해 사용한다. 주로 안드로이드에서는 Intent에 데이터 객체 담아 보낼 때 사용된다. ​Serialize 이름 그대로 데이터를 직렬화 해주는 방식이다. Kotlin에서 구현하면 아래처럼 굉장히 짧게 구현할 수 있다. data class Player(val league: String, val skill: String): Serializable reflection이라는 기술을 사용하여 런타임에서 데이터를 직렬화/역 직렬 화하는 과정을 진행하기 때문에 GC가 할 일이 늘어나 속도가 느리다. Parcelable 기존 java를 이용해 앱 개발했을 때, 사용하던 방식.. 2021. 3. 5.
화면 회전에도 상태 값 유지하기 아래 프로젝트는 8개월 전 Udemy에서 Kotlin for Android:Beginner to Advanced강좌를 통해 공부했던 내용이다. 화면을 회전하게 되면 Activity는 저절로 OnPause -> OnStop -> OnDestroy -> OnCreate -> OnStart -> OnResume을 수행하게 된다. 이 과정에서 당연히 우리가 변수로 저장했던 값들을 null 값으로 변하게 되고 다음 Activity 또는 fragment로 보내려던 값을 정상적으로 보내지 못하게 된다. ​ 이 경우 여러 가지 방법이 있겠지만 가장 쉽고 대표적인 방법으로 OnSaveInstanceState()와 onRestoreInstanceState()를 사용하는 방법이 있다. ​ activity_league.xml.. 2021. 3. 5.
개인정보처리방침(Best Way) 1. 개인정보의 처리 목적 (‘junyoeng.tistory.com/’이하 ‘bestway’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등 2. 개인정보의 처리 및 보유 기간 ① (‘junyoeng.tistory.com/’이하 ‘bestway’) 은(는) 정보주체로부터 개인정보를 수집할 때 동의 받은 개인정보 보유․이용기간 또는 법령에 따른 개인정보 보유․이용기간 내에서 개인정보를 처리․보유합니다. ② 구체적인 개인정보 처리 및 보유 기간은 다음과 같습니다. ☞ 아래 예시.. 2021. 3. 4.
개인 프로젝트 Best Way(1) 기존에 졸업작품으로 만들었던 우리학식 앱을 리펙토링하면서 만들고 있는 것이 Best Way라는 앱이다. 기존앱은 Java로 구성되어 있으며 기본 패턴은 MVP로 구성되어 있으며 서버와 OkHttp로 통신하고 있다. 서버는 Cafe24로 구현되어 있으며 Servlet을 이용하여 API가 구현되어 있다. Best Way는 이 앱에서 제공하고자 했던 기능들만 남기고 모든 부분을 다 수정할 것이다. 일단 언어부터 Kotlin으로 수정하고 패턴 같은 경우 MVVM(AAC ViewModel, LiveData, Lifecycles), DI(Koin)를 적용할 것이며 서버와 통신의 경우 Retrofit2과 RxAndroid를 이용해서 구현할 것이다. 서버의 경우 AWS의 ec2와 s3를 이용해서 서버를 구축할 예정이다.. 2021. 2. 27.
aws (AWS환경) MySQL 초기설정 및 워드프레스용 DB생성 - 분기탱천 (zinnunkebi.com) (AWS환경) MySQL 초기설정 및 워드프레스용 DB생성 이제 초기 설정을 해줍니다. MySQL의 초기 설정을 하기 위해서는 root 유저의 패스워드가 요구됩니다. 초기 패스워드는 랜덤으로 지정되기 때문에 직접 확인해보지 않으면 알 수가 없습니다. 초기 www.zinnunkebi.com Ctrl+C&V 로 하는 프로그래밍 :: MySQL 5.7.9 릴리즈 변화된 root 비밀번호 변경하기 (tistory.com) MySQL 5.7.9 릴리즈 변화된 root 비밀번호 변경하기 Mac 환경에서 MySQL 5.7.9 버젼 설치 후 root 접속 시도 시 패스워드 장애로 MySQL 접속이 불가능하다. #sud.. 2021. 2. 26.
[Git] Git Bash를 이용해 프로젝트 관리하기 개요 Git을 사용하는 방법은 작업 환경에 따라 정말 많은 방법이 있다. 많은 방법들 중 이 게시물에서는 Git Bash를 이용해 GitHub 프로젝트를 관리하는 방법에 대해 정말 간단하게 정리할 예정이다. 여기서 다룰 Git 명령어는 다음과 같다. init config status remote add commit push 시작 일단 아래 링크에서 Git Bash를 다운 받자. Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk).. 2021. 2. 24.
Parameter 'directory' is not a directory 에러 Git을 이용하여 프로젝트를 관리하면 이와 같은 에러가 안 났던 걸로 기억하는데, 어쩌다 보니 .zip 파일로 프로젝트를 관리하게 Parameter 'directory' is not a directory라는 에러가 발생했다. 이 에러는 보통 프로젝트 폴더 안에 .gradle 폴더 안 파일의 문제일 가능성이 크다. 해결 방법으로는 1. .gradle 폴더 삭제 2. Invalidate and Restart 1, 2번을 해주면 보통의 경우는 해결된다. 2021. 2. 23.
URL Encoding된 String 받기 클라이언트단에서 AES-256으로 암호화된 값을 받아서 decode할 때 URL 인코딩 되어 오기 때문에 아래와 같은 에러가 발생한다. 그래서 이 문제를 해결하려면 URL Decoding 해주면 되는데, 코드는 다음과 같다. String urlPinCode = URLDecoder.decode(enPinCode, "UTF-8"); enPinCode라는 변수는 request.getParameter("")로 받은 값으로 URL Encoding되어 있는 값이다. 아무튼 이렇게 안해주면 HTP 500만 계속 리턴된다. 2021. 2. 23.
이메일 중복 값 탐색 시 UNION을 이용한 처리 개인 프로젝트에서 회원가입 시 이메일 중복에 대한 로직을 짜게 됐는데, 여기서 고민해야 되는 게 탈퇴한 지 얼마 안 된 계정의 데이터를 남겨둬야 해서 탈퇴한 계정과 현재 사용 중인 계정의 이메일 값을 체크해서 중복 이메일을 판단해줘야 했다. 특히 나 같은 경우는 user_info 테이블에 사용 중인 계정의 데이터를 넣고 탈퇴한 계정은 user_info에서 삭제하고 withdrawal_user_info라는 테이블에 넣는 방식으로 처리하기 때문에 두 테이블을 동시에 탐색하는 쿼리가 필요했다. 처음 떠올린건 너무나도 익숙한 JOIN을 사용한 탐색이었다. 그러나..... JOIN 방식으로 처리하려니 문제가 생겼다. user_info와 withdrawal_user_info를 연결해줄 속성 값이 user_email.. 2021. 2. 21.