![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/deBUsC/btqSgMDAR43/1Y0jbpR3WSbve7Btpde7Z1/img.png)
Activity에서 Fragment 접근하는법 var userFragment: UserFragment = supportFragmentManager.findFragmentById(R.id.fragment_holder) as UserFragment // 프래그먼트의 editText 접근하기 username = userinfoFragmentManager.username_et_user.text.toString() fragment_holder부분에는 액티비티 내부에서 프래그먼트를 홀드하고 있는 뷰를, UserFragment부분에는 접근하려는 프래그먼트 클래스를 넣어주면 된다. Fragment에서 Activity 접근하는법 전에 써놨던 포스팅 yuuj.tistory.com/49?category=820574 [And..
@Path와 @Query의 차이점 @Path: path variable을 위함 api/member/{username} @Query: query parameter 위함 api/member?username= @Field와 @Query의 차이점 @Query:사용시 파라미터를 url 뒤에 붙여서 전달하는데, 유저들에게 쉽게 노출된다. @Field: 보안을 위해 url 뒤에 붙이지 않고, 파라미터를 숨긴다. (@FormUrlEncoded 사용) stackoverflow.com/questions/57848058/what-is-the-difference-between-field-and-query-in-retrofit What is the difference between @Field and @Query in retr..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/AMWPN/btqJXWtEXCA/xnhNpWRCPBaUo155347asK/img.png)
네이버 아이디로 로그인 안드로이드 개발가이드 네이버아이디로로그인 안드로이드 개발가이드 NAVER Developers - 네이버아이디로로그인 안드로이드 개발가이드 developers.naver.com [오픈 API 이용 신청] 에서 신청한 후 클라이언트 아이디값과 시크릿 값을 얻어주기 build.gradle(Module.app)에 추가해주고 dependencies { // 네이버 아이디로 로그인 implementation 'com.naver.nid:naveridlogin-android-sdk:4.2.6' ... } activity_login.xml 원하는 위치에 로그인 버튼을 추가해준다. Login.kt naver_client_id : 위에서 얻은 클라이언트 아이디 값 naver_client_secret ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/D5ASb/btqGZH6OIK5/9fGIUQOwPl5BvDMWGhfn40/img.png)
페어(Pair) 리스트를 사용하다가 정렬하는 법을 찾아봤다. sortedBy() 원본 리스트를 바꾸지 않고 소팅된 리스트를 리턴한다. selector을 지정하면 소팅 기준을 정할 수 있다. 페어를 사용할때도 하나의 기준을 두고 정렬하고싶을때 사용하면 된다. pair에 접근할땐 it.first it.second 이런식으로 하면 된다 var sorted = planedit.sortedBy{it.first} 내림차순으로 정렬할땐 sortedByDescending()을 사용하면 된다. sortedWith() 역시 원본 리스트를 바꾸지 않고 소팅된 리스트를 리턴한다. sortedBy()와 다른점은 comparator을 지정해서 다중 기준을 둘 수 있다는 점이다. 첫번째꺼로 먼저 소팅한 후, 두번째꺼로도 소팅을 할..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cslDrZ/btqFNqZXmYV/xa237erjBCEiUsc9fRDKg0/img.png)
사용자의 비밀번호를 암호화하지 않고 스트링 그대로 저장하는것은 위험하다. 졸업프로젝트를 진행할때는 MD5 방법을 사용했었는데, 안전한 비밀번호 저장에 대해 알아보다가 단방향 암호화 방법의 문제점을 알게되었다. 먼저, 동일한 메시지가 언제나 동일한 다이제스트를 갖기때문에, brute force방법으로 모든 문자열을 암호화한 후 비교해보면 바로 기존 비밀번호가 뭔지 알게 된다. 또한, 짧은 시간대에 데이터를 검색하기 위해 설계된 해시 함수를 사용하기 때문에 처리 속도가 아주 빠르다. 이는 유저뿐만 아니라 해커에게도 좋은 점인데 비밀번호를 알아내기 위해 일치 여부를 확인해볼때, 한번의 시도에 걸리는 시간이 적으니 많은 시도를 해볼 수 있다. 위의 문제점을 해결하기 위한 방법은 솔팅(salting)과 키 스트레..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cLSGFv/btqFIHAcpe1/b2PVF8k342xWNSoJfeZK5k/img.png)
옛날에 프래그먼트를 교체하는 방법으로 탭 구조를 구현하는 포스팅을 했었는데 [Android][Kotlin] Fragment 설정, Fragment to Activity 화면 전환 - fragment 적용 탭(tab)형식 UI를 사용하려하는데 fragment가 가장 적합해서 적용해봤다 fragment 2개 먼저 생성 후 import android.content.Context import android.content.Intent import android.os.Bundle i.. yuuj.tistory.com 두번째 탭을 누른 후, 물리 뒤로가기키를 누르면 탭과 하단 프래그먼트 짝이 맞지 않는다는점, 첫번째 탭에서 물리 뒤로가기를 누를 경우 하단 프래그먼트가 공백으로 비워진다는 문제가 생겨서 새로운 방법을 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dglmhg/btqFoP7BR4E/YfxhT0LgkPxhdDRGhaqKh0/img.png)
이미지뷰의 코너를 둥글게 해주는 코드 새로운 drawable 생성해주기 둥글게 하고 싶은 이미지뷰의 백그라운드에 아까 생성한 drawable을 설정해주고 setClipToOutline()을 해주면 된다 // 코너 라운딩 (radius: 10dp) IMAGEVIEW.background = getResources().getDrawable(R.drawable.imageview_cornerround, null) IMAGEVIEW.setClipToOutline(true)
- Total
- Today
- Yesterday
- 코틀린 데이터바인딩
- 프로그래머스
- 안드로이드 카카오톡으로 로그인
- 백준 1644
- 카카오 기출
- 코틀린 뷰페이저
- 코틀린 바텀네비게이션
- 카카오톡으로 로그인 오류
- 시뮬레이터 키보드
- 투포인터 알고리즘 파이썬
- TextFormField keyboard
- 코틀린
- 데이터바인딩 뷰바인딩 차이
- 안드로이드 키해시
- 안드로이드
- 백준 2003
- 백준
- kotlin fragment
- 코틀린 뷰바인딩
- 코틀린 리스트뷰
- 전화번호목록 파이썬
- 카카오 키해시
- 파이썬 최대공약수
- 투포인터 알고리즘
- 백준알고리즘
- counting sort
- 백준 1806
- 소수 구하기 파이썬
- flutter simultor
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |