먼저 이번 글에서는 코드가 등장하지 않는다. 이번 오적용기가 나에겐 나름 Room을 제대로 사용해본 경험이라 작성해둔 코드가 아쉽기도 하다. 하지만, 언젠가는 갈아엎어야 될 코드가 되어버렸다. 왜 그렇게 됐을까? 현재 상황 파악의 중요성내가 연동해야할 백엔드는 어떤 상황인가?를 너무 간과했다. 대부분 앱 서비스는 회사에서 서버를 두고 앱이 해당 서버와 통신하게 된다. 그리고 해당 백엔드에서 가져온 데이터로 로컬 DB를 구성해 앱에서 사용한다. 하지만, 나의 경우는 각각 지역의 로컬 서버가 존재하고해당 서버에서 DB 파일을 다운로드받아 Room으로 사용하는 것이었다. 더욱 심화되는 문제와 해결 불가능한 상황까지각 로컬 서버는 모두 같은 Table 버전을 갖고 있을 것이라 생각했었다. 하지만 로컬 서버들은 ..
최근 인스타에서 성수동 근처 맛집을 여러군데 봐두었다. 그 폐해는 좋아요를 너무 많이 누르다보니 찾기가 힘들었다는 점.. 결국 지도 앱을 켜고 근처 일식 맛집을 찾다보니 가까운 곳이 여기였다. 대략 6시 ~ 6시 반 정도에 방문했는데 생각보다 사람이 없었다. 사진은 안 찍었지만 앞에 나와있는 입간판에는 6시까지 영업으로 써있었고,네이버에는 8시까지 영업으로 적혀있었기 때문에 사람들도 입간판을 보고 안 들어오지 않았을까 싶다.(메뉴 주문하면서 사장님에게 슬쩍 흘려봄. 네이버에 올린 시간이 맞다고 하셨다.) 나는 로스정식를 시켰는데 친구는 그날 특별메뉴였던 미나리 로스정식을 시켰다. 5월 중순에 방문했던 메뉴라 지금은 또 다른 메뉴가 있지 않을까 싶다. 확실히 미나리가 들어간 메뉴가 푸짐해보인다.(사진을 각..
사실 이 문제는 회사에 들어와 가장 먼저 고민했던 문제였다. 로그인 시, 아이디와 패스워드를 암호화해 전송해야 했기 때문이다. 전에 Google Play Console 여기저기를 누르다보니 SHA 방식의 암호화를 지나치듯 본 기억이 있었다. 짧은 AES 방식 소개하지만 SHA는 복호화할 수 없는 방식이기에 AES 방식을 사용하기로 했다. AES 암호화 방식은 key 값의 길이에 따라 바뀌는데 16바이트이면 AES-128, 32바이트이면 AES-256이 된다. 대신 IV(Initialization Vector)의 길이는 AES-128, AES-256 둘 모두 16바이트로 동일하다. Random IV를 적용해보기여기서 재밌는 기능을 하나 추가해보자. 바로 IV를 매번 random하게 생성하는 것이다. 그리고..