2022년 12월 1일부터 일경험 프로그램을 시작하고 첫 주에는 오리엔테이션을 그리고 2~3주에는 회사에서 유료로 사용하던 그리드를 무료 라이브러리인 tui-grid로 교체하는 작업을 진행했다. 기간중에 코로나로 1주간 격리를 마친 12월 4주차부터 본격적인 업무를 배정받았다. 회사 홈페이지가 개편한지 오래되어 디자인이나 내용을 수정할 필요가 있어 해당 작업에 투입이 되었다. 새로 홈페이지를 개편하며 새로운 기술을 사용하기 위해서 프론트는 vue로 진행하게 되었다. 기간은 일경험 프로그램이 끝나는 2월 말까지로 잡혀있는데 문제는 나와 함께 프로젝트를 진행하는 담당자분이 1월부로 파견을 나가 내가 혼자서 프로젝트를 진행하게 되었다. 전체적인 설계를 해주시고 가셨지만 세부적인 설계나 프론트,백을 혼자 개발하..
이번 프로젝트를 진행하면서 쓰는 마지막 글일 것 같다. 저번에 구글 맵 API를 사용해서 복지 맵을 구현했는데 다음날 와서 테스트를 해보려고 하니 에러가 발생했다. 발생한 에러는 현재 자신의 위치를 받아오는 함수가 작동하지 않는지 자꾸 null 값이 나왔다.. 또한 지도가 로딩됐을 때 함수를 구현했기 때문에 권한을 주지 않아도 일단 지도로 이동했는데 이 점도 수정하고자 했다. 먼저 현재 위치를 다시 받아오기 위해 자료를 찾아보다가 가장 내 상태와 비슷한 자료를 찾았다 package com.cookandroid.users; import android.app.Service; import android.content.Context; import android.content.Intent; import andro..
프로젝트를 기획할 때 구현하고자 했던 기능들을 전부 구현하고 프로젝트 막바지가 되었는데 살짝 욕심이 생겨서 지도 기능을 하나 더 구현해보고자 여기저기 찾아봤습니다. api를 가져다가 사용하면 된다고 생각하여 쉽게 구현하겠지 생각했는데 같은 오류에 부딪혀서 카카오와 구글 맵 둘 다 실패를 겪었습니다. 여기서 부딪힌 오류는 지도를 불러오지 못한다는 내용이었는데 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object r..
현재 만들고 있는 챗봇앱에서 메세지를 보내기 위해 editText를 클릭하면 키보드가 올라가면서 아래에 있는 item들이 가려지는 현상을 발견하였다. 해당 문제를 해결하고자 처음에는 editText.isfocus() 를 if문을 통하여 구현했었다. 이렇게 진행하자 새로 채팅이 오기전에 editText를 클릭하면 자동으로 새로 추가된 item으로 스크롤이 됐지만 이미 item이 추가된 상태에서 키보드가 올라오자 변하는점이 없었다. 한참을 찾아보다 발견한 두 번째 방법은 manifests의 현재 사용하는 액티비티안에 windowSoftInputMode 값을 부여하는 것이었다. 이 방법으로 구현을 하자 원하는대로 자동 스크롤은 구현했지만 키보드가 올라왔을때 화면 자체를 그만큼 올리는 방식이기 때문에 상단의 바..
Intent를 통해서 화면전환을 할때 기본 애니메이션이 너무 눈에 거슬려서 다른 효과를 주는 방법들을 찾아봤다 그 결과 델타값을 통해서 등장위치와 퇴장위치를 지정하여 이동 경로를 지정할 수 있었다. slide_in_left.xml slide_in_right.xml slide_out_left.xml slide_out_right.xml 해당 xml 파일들을 res 디렉토리 아래 anim 이라는 디렉토리를 만들고 작성해주었다. 그 이후 startActivity 명령어 다음에 overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); 해당 방식으로 작성하면 왼쪽에서 오른쪽으로 화면이 전환되는걸 확인할 수 있다. 해당 방식으로 화면을 좌우로 ..

프로젝트를 진행하던 도중 메인 액티비티에서 리사이클러 뷰를 통해서 간단한 정보를 제공하고 있었다. 여유가 조금 있는 타이밍에 각 아이템을 클릭하면 해당 복지 정보에 대한 상세 정보를 제공하는 웹사이트로 Intent 하도록 구현을 하고자 했다. 열심히 구글링을 한 결과 리사이클러뷰 클릭 이벤트 자체는 구현하기 쉬웠지만 각각 아이템별로 url을 부여하는 난관에 부딪혔다. 약 6시간정도 실패를 거듭한 결과 겨우 해결방법을 찾아낼 수 있었다. 일단 클릭이벤트는 액티비티 또는 리사이클러뷰 어댑터에서 구현할 수 있었는데 대부분의 자료들이 어댑터에서 클릭이벤트를 구현하고 있었다. 나는 어댑터의 onBindViewHolder의 매개변수 holder.itemView에 클릭 이벤트를 생성하였다. @Override publ..
이번에 만드는 앱에는 메인페이지에 복지 사이트에서 제공하는 정보들을 인기순으로 정렬하여 몇가지 띄워주는 형식으로 구성하였다. 어느정도 앱의 틀을 만들어두고 세부적인 기능들을 손보는 도중에 해당 부분을 크롤링을 통해 사이트에서 직접 가져다 쓰는것이 좋겠다고 생각하여 인터넷을 뒤지기 시작했다. 일단 크롤링을 하기 위해서는 Jsoup 라이브러리를 추가해준다 implementation 'org.jsoup:jsoup:1.13.1' 추가적으로 manifests에 인터넷 권한 역시 부여해주어야 한다. 그 다음으로 크롤링을 해오는것 자체는 굉장히 쉬웠다. 일단 크롤링한 내용을 앱 화면에 띄우기 위해서는 쓰레드를 사용해야 했다. 그 이후 원하는 사이트의 url을 가져와 해당 사이트에서 원하는 부분을 tag를 통해 긁어오..