프로그래밍 공부
[kotlin] Android jetpack Navigation
프로젝트에는 딱히 필요없는 부분이었지만 , 써보고 싶어서 써보는 Navigation 기능. Fragment나 Activity 관계없이 일관된 API 를 제공하는것이 매력적으로 보였다. (기존 중첩 Fragment에 있던 Animation 버그를 효과적으로 컨트롤하는 것으로도 꽤 좋은 성능을 보여준다) https://developer.android.com/jetpack/androidx/releases/navigation Navigation | Android 개발자 | Android Developers Navigation Navigation은 Android 애플리케이션 내에서 '대상' 사이를 탐색하는 프레임워크로, 대상이 Fragment, Activity 또는 기타 구성요소로 구현되었는지에 관계없이 일관된 ..
[Redis] Node.js에서 Active-Active 일때 세션공유
Active - Standby 나, 단일 was의 경우에는 세션공유를 할 필요가 없지만, Active - Active 관계에서는 노드밸런스가 컨트롤하기 때문에 세션이 유지되야 할 필요가 있다. ( 참고로 aws 환경이라면 sticky session을 쓰도록 하자 ) *만약 was상에서 테스트해볼일이 있다면 docker redis를 깔도록 하자. 쉽게쓰고, 쉽게지우고. 실제로 SAAS 형식으로 운영되는 프로젝트에서도 docker-redis를 사용하고 있다. 우선 로컬에서 테스트를 해보아야 하니 redis 설치 - 실행부터 해보자 redis.io/download Redis *Download Stable releases liberally follow the usual major.minor.patch seman..
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
최근 jdk를 업데이트 하면서 login token 을 발급받을때 해당 에러가 발생했다. 서버에 설치된 jdk에서는 문제없이 작동되는 것으로 보아, 로컬에 있는 jdk와 뭔가 다르다는것을 느꼇고 찾아보니 최근 jdk에는 java EE API 가 포함되어있지 않다고 한다. 2021.03.10 기준으로 pom.xml에 해당 부분을 추가하니 정상 작동한다. javax.xml.bind jaxb-api 2.3.0-b170201.1204
[Node.js/Okta] Node.js를 이용한 Okta SSO 로그인
원래 프로젝트는 OAuth2를 사용하고있었고 사용자 인증방식을 Ldaps로 바꾸어 달라는 요구사항이 있었고, *관련 내용은 하단 본문 2020/07/24 - [프로그래밍 공부/Spring Boot] - [Spring Boot/ldaps] AD 연동 [Spring Boot/ldaps] AD 연동 모기업에서의 AD연동을 Ldaps로 요청하여 작성하게 되었다. 추후에 Okta도 작성하겠지만, 최근 대기업에서의 Ldaps 비중은 점점 낮아지는 듯 한 느낌. 그래서 구글에서 찾아봐도 한국말로된 연동관 ttubeoki.tistory.com 그 후에 내부적으로 Ldaps를 사용 하지 않는 방향쪽으로 흘러간다며 Okta로 변경했으면 좋겠다고 연락이 왔었다. 이미 완성된 프로젝트였으며 관련한 SSO를 전부 변경하기에도 ..
[Android&Kotlin] gps tracking
이전에 진행했었던 프로젝트 내용으로, 요구사항은 백그라운드에서 주기적으로 사용자의 위치를 파악하여 특정 위치에 사용자가 있다면, 알림을 띄우는 내용이였다. 활용으로는 아마, 광고성 알림도 있을것이고 또는 미세먼지나 각종 상황을 경고해줄수도 있고, 해당 지역의 정보또한 제공해줄수 있는 다양한 방법으로 활용 할 수 있을거같다. 우선적으로, 주기적으로 위치를 파악하는 문제가 있는데 당연하게도 앱이 꺼져있는 상태에서도 위치를 파악할수가 있어야했다. 그래서 백그라운드상에서 일정시간마다 해당 기기의 gps정보를 받아오는 방법을 택했고, 거기에 사용된 녀석은 AndroidX jetpack에 있는 work manger란 녀석이다. *참고 사이트 android developer https://developer.andro..
[메모] activity launchMode 삽질
우선 필요로 하는기능은, activity stack에서 중복된 activity가 호출했을때, 기존에 등록되어있던 동일한 activity를 지우고, 새로 스택에 쌓고싶었다. 나의 경우는 activity가 이런식으로 호출되는 경우였는데, A - B - C - D - B 마지막 B를 호출했을때 원하는 결과는 A - C - D - B 이고, B를 호출하지 않을 경우에는 A - B - C - D 가 유지되는 경우였다. 왠지 launchMode에서 해결할 수 있겠다 싶어서 launchMode를 singleTask로 실행해보니.. A - B (이전에 있었던 자리로 되돌아감 이후 스택 제거후 B의 onResume 호출) singleTop으로 실행해보니 A - B - C - D - B (기존 스택 지워지지 않음) sin..
[Spring Boot/ldaps] AD 연동
모기업에서의 AD연동을 Ldaps로 요청하여 작성하게 되었다. 추후에 Okta도 작성하겠지만, 최근 대기업에서의 Ldaps 비중은 점점 낮아지는 듯 한 느낌. 그래서 구글에서 찾아봐도 한국말로된 연동관련 포스팅은 찾아보기가 힘들다.. ..... 우선 Ldaps가 무엇인지 알아야하는데, AD ( Active Directory ) 를 사용하는 일종의 사용자관리 서비스 생각하면 편할듯하다. ldap / ldaps ? ldap은 http 통신, ldaps는 ssl인증을 통한 https 통신이라고 생각하자. ( 인증서 필요 ) pom.xml에 따로 security-ldap 을 추가하는 경우도 있는데, 사실 이번 프로젝트의 경우 ldaps의 인증값으로 stragy 전략을 짜는게 아니라, 내부적으로 존재하는 user..
[GraphQL] Spring Boot + 그래프QL 사용하기 (CRUD)
그래프 QL이란 기존 굳건하게 지켜온 Rest API를 대체할만한 수단이다. post, get, patch 등등 url을 달리해야만 했던 Rest API와는 달리 endpoint가 하나인 그래프QL은 controller가 필요 없다는 점에서 기존 작성했던 방법보다는 확실히 생산성이 높은 편이다. 예를들어, ex ) Rest API /api/post /api/post/:id /api/post/:id/postinfo /api/user . . . 이런식으로 url을 계속 파고들고, 복잡해진다는 느낌이 있는데, 그래프QL 같은 경우 (defualt 값으로) /graphql 이거 단 한개면 끝이다 물론 service단에서 어떤 도메인을 요청하는지 다 구분하지만, rest api는 service + controll..