본문 바로가기

분류 전체보기124

jQuery Mobile 사용 시, <a> 태그 href 속성이 안 될때 고객사로부터 기존의 서비스 중인, 모바일 웹 페이지에서 Swipe 기능을 넣어달라는 요청사항이 있었다. jQuery Mobile을 이용하여, 'swipeleft, swiperight' 속성값을 사용하여 이벤트를 처리했다. 그런데.. 그 전에는 잘되면 태그 내 href 속성이 먹통이 되는 현상이 발생했다. 클릭하더라도, 크롬 내 console 창에서는 아무런 이슈가 확인되지 않았다. "jquery mobile href not working" 으로 구글링해보니, 이미 과거에 이런 이슈로 문의한 글이 있어서 다른 개발자 분들에게 혹여나 도움이 될까 싶어 남겨본다. 해결법은 기존의 태그 내에 rel = "external" 속성값을 추가해주면 된다. onclick 속성을 별도로 추가하고, 자바스크립 함수를 실행하.. 2021. 10. 26.
getPackageManager().getLaunchIntentForPackage return null 기존에 회사 앱 서비스에서 이미지를 '카카오톡' 앱으로 바로 공유하는 기능이 있었다. 최근에 targetSDKVersion=30 으로 상향하면서 공유 과정에서 문제가 생겼다. 문제가 발생하는 부분은 바로 아래 코드 Intent intentKakaoTalk = getPackageManager().getLaunchIntentForPackage("com.kakao.talk"); 안드로이드 Develop 공식 사이트의 내용을 참고해보자면, Android 11 이상을 타켓팅하는 앱의 경우 다른 앱과 상호작용(ex. 이미지, 텍스트 공유)이 필요할 때는 AndroidManifest.xml에 요소를 추가해야 한다. 개인정보의 중요성이 높아지면서, 구글에서도 App간 데이터가 전달되는 것에 있어서도 약간의 제한을 두는.. 2021. 10. 22.
[Android 11] ActivityNotFoundException와 패키지 가시성 Firebase 버그 리포트에서 'android.content.ActivityNotFoundException' 이 확인되었다. 발생 코드를 확인해보니, 링크를 브라우저 앱으로 실행하는 곳이었다. 기존에는 정상적으로 서비스가 되던 부분이었는데.. 갑자기 왜 ? Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse("https://www.naver.com")); startActivity(i); 구글링 하다보니 Android 11부터 '패키지 가시성'이라는 속성이 추가되었다고 한다. * 패키지 가시성이란? 사용자가 기기에 설치한 앱에 대한 가시성을 의미 즉, Android 11(API 레벨30) 이상부터는 기기에 설치된 필터링된 앱 목록만 확인이 가능.. 2021. 10. 15.
[ReactNative] Could not find "Podfile.lock" 에러 메세지 오랜만에 리액트 공부를 다시 시작하려고 맥북을 켰다. 간단한 프로젝트부터 차근 공부하려고, 샘플 프로젝트를 생성하여 ios 시뮬레이터 실행을 시도.. 그런데.. 오류 메세지가 발생.. Could not find "Podfile.lock" at ~~ 해결책은 프로젝트 폴더 내, ios 폴더로 이동하여 아래 명령어를 단계적으로 실행 후 npm run ios 를 재시도하면 정상적으로 실행된다. $ cd ios $ pod repo update $ pod install 그런데, 왜 이전에는 정상적으로 실행되던 프로젝트에서 문제가 발생했을까? 원인은 Xcode 12.4로 업데이트 한 이후에 발생한 것이다. error Failed to build iOS project. We ran "xcodebuild" comman.. 2021. 9. 26.
HTML 태그 정리 (시맨틱 태그, 중요한 태그모음) 웹 개발을 진행하다보면 다양한 HTML 태그를 만날 수 있다. 그 중에서도 시멘틱(Semantic Tags) 태그에 대해서 알아볼 필요가 있다. 글에도 '제목', '부제목', '본문' 내용이 나뉘어 있는 것처럼 HTML 태그에서도 각 사용목적에 따라 의미가 있는 HTML 태그를 종류별로 사용해야 한다는 것이다. 일반적으로 웹브라우저에서는 태그로 감싸져 있는 것을 '제목'이라고 인식해서 별도로 표현해준다. 사용자 화면에 보았을 때는 단순히 글자크기가 크게만 보이겠지만, 검색이나 웹 페이지 유지관리의 용이성에 있어서는 적절한 시멘틱 태그를 사용하는 것이 좋다. ① SEO : 검색에 최적화 되기 위해서, 적절한 HTML 태그를 사용 ② Accessibility : 웹 접근성이 좋아진다. (시각 장애인들이 키보.. 2021. 8. 14.
$(document).ready()와 window.onload() 차이점 웹 개발을 진행하다보면, 최초 웹 페이지를 불러오는 과정에서 선행되어야 하는 함수가 있기 마련이다. 예를 들어, 회원 목록 페이지를 구현한다고 했을 때 HTML이 모두 불러온 이후 최신 회원목록을 DB에서 불러와서 화면에 보여주어야 한다. jQuery를 이용하는 사람들은 주로 $(document).ready()를 이용한다. 해당 함수는 DOM데이터만 로드가 완료되면 ready() 내 함수가 바로 실행된다. 예시로 '회원 목록 페이지 -> 회원정보 상세보기 페이지 -> [뒤로가기]' 로 이전 '회원 목록 페이지' 로 이동하는 이벤트를 발생시켰다. 그런데 '회원 목록 페이지'에서 검색한 키워드와 페이지 번호가 초기화 되어버리는 문제가 발생했다. 문제 발생의 원인은, 뒤로 가기 실행 시 '키워드, 페이지 번호.. 2021. 8. 11.
안드로이드 단위테스트란? 안드로이드 앱 개발을 진행하다보면 테스트가 필요한 경우가 빈번하다. 일반적으로 테스트를 할 때, 애뮬레이터나 실제 디바이스를 통해서 직접 테스트를 진행하는 경우가 많다. 특히, 오류/버그가 발생하는 경우는 작은 단위로 디버그/테스트를 진행하면서 문제를 해결해 나간다. 안드로이드 앱은 UI(액티비티) 단위로 이벤트가 발생하므로, JUnit을 이용 일반적으로 프로젝트 생성 시, 2가지 테스트 유형이 정의된다. ① 로컬단위테스트(test) : 안드로이드 프레임워크와 관련없이 검증이 가능한 테스트 : module-name/src/test/java ex) ExampleUnitTest.java : 로컬 환경에서 유닛 테스트를 진행할 때 사용 ② 계측테스트(androidTest) : 안드로이드 프레임워크에 종속성이 .. 2021. 8. 9.
[DI] 의존성 주입이란? 웹/모바일 서비스를 장기적으로 운영하다보면, 기능이 하나둘씩 추가되는 경우가 빈번히 발생한다. 때로는 고도화 과정에서 기획이 완전히 바뀌어, 새로운 화면으로 탈바꿈이 되기도 한다. 그래서 개발자는 항상, 수정이 자유롭게 구성될 수 있는 코드를 작성해야 한다. 이번 시간에는 '의존성 주입(DI)'에 대해서 정리해보고자 한다. * DI (Dependency Injection) : 의존성 주입 DI(의존성 주입)은 프로그래밍에서 구성요소간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의되게 하는 디자인 패턴 중의 하나이다. (사전적 정의 : 위키백과) 한마디로 요약하자면, 클래스 A에서 직접 객체를 내부에서 직접 생성하는 것이 아니라 외부에서 생성된 객체를 getter()로 사용하거나 se.. 2021. 7. 16.
포워딩과 리다이렉트 차이점 정리 고객사로부터 웹 페이지(도메인) 개편으로 인해, '구 도메인 → 신규 도메인'으로 리다이렉트를 요청했다. 서버단에서 리다이렉트를 처리하면 되겠다고 생각했다. 하지만 문제점이 있었다. (구) 도메인을 이용한 REST api (로그인, 회원정보, 계약여부) 서비스를 이용중이었기 때문이다. 리다이렉트를 진행하게 되면, GET/POST 모두 전달하는 파라미터가 유지되지 않기 때문이다. 한마디로 서비스중인 REST api에 따른 결과값이 먹통이 된다는 말.. 반드시, 서비스 도메인을 리다이렉트 시키는 것은 영향을 받는 부분이 없는지 신중히 파악한 후에 진행해야 한다. ▶ Forwarding (동일한 웹 컨테이너 내에서 이동) - 요청을 구분하여 처리할 서블릿을 결정 - 요청 시 생성된 request, respon.. 2021. 7. 8.