구급대원 폭행방지 어플을 어느정도 마무리하고 테스트하는 중간에 발생한 에러로, 잘만 실행되던 오디오가 다른 앱(예: Youtube같은 미디어플레이어를 사용하는 어플)을 사용하고나면 경고안내방송을 요청해도 소리가 나지 않는 문제가 발생했다. Audio Focus를 관리해줬어야하는데, 우선 개념부터 확인하자면 만약 Audio Focus가 없다면 사용자가 음악앱으로 음악을 듣고 있다가 알람이 울리면 두소리가 같이 송출되어 듣기 거부감이 드는 상황이 생긴다. 그래서 음악앱이 실행되는 중에 알람이 울린다면 음악앱을 중지할 수있게 나온 것이 Audio Focus이다. Audio Focus에는 획득이나 상실되는 상황이 생기는데 아래와같다. 획득하는 상황 상실하는 상황 AUDIOFOCUS_GAIN AUD..

android 9 이상버전에서 FCM 메세지를 받고, Service에서 새로운 Activity를 생성할때 제목의 메세지와 함께 액티비티가 강제 종료되는 오류가 발생했다. Activity를 생성할때 아래와 같이 intent에 addFlags 메소드를 실행해주면 해결된다. intent.addFlags(FLAG_ACTIVITY_NEW_TASK);

Ioc(Inversion of control)란? -IoC(제어의 역전)이란 프로그램의 제어 흐름 구조가 뒤바뀌는 것이다. 일반적으로 프로그램의 흐름은 main() 메소드와 같이 프로그램이 시작되는 지점에서 다음에 사용할 오브젝트를 결정하고, 결정한 오브젝트를 생성하고, 만들어진오브젝트에 있는 메소드를 호출하고, 그 오브젝트 메소드 안에서 다음에 사용할 것을 결정하고 호출하는 식의 작업이 반복된다. 제어의 역전이란 이런 제어 흐름의 개념을 거꾸로 뒤집는 것이다. 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하지 않는다. 당연히 생성하지도 않는다. 또 자신도 어떻게 만들어지고 어디서 사용되는지를 알 수 없다. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하기 때문이다. 스프링에서는 applicatio..

잘 정리된 글이 있어 의역해봅니다. 출처입니다.https://www.programcreek.com/2013/04/what-is-servlet-container/ 이 글에서는 웹 서버, 서블릿 컨테이너 그리고 이것들과 JVM과의 관계를 일반적인 생각을 적습니다. 서블릿 컨테이너는 자바 프로그램에 불과하다는 걸 보여주고 싶었습니다. 1. 웹서버란? - 웹페이지를 사용자에게 전송 서블릿 컨테이너를 알기전에 웹서버에 대한 이해가 먼저 필요합니다. 웹서버는 데이터를 전송하기 위해 HTTP 프로토콜을 사용합니다. 일반적인 상황에서 사용자는 브라우저에 URL(e.g. www.programcreek.com/static.html) 을 입력하고 웹페이지를 얻게 됩니다. 웹서버가 하는 일은 웹페이지를 사용자에게 전송하는 것..

작업을 하다 보면 다루어야 할 데이터도 많아지고, 테이블도 많아집니다. 그에 따라서 사용하는 쿼리문이 길어지기도 합니다. 쿼리가 길어지다 보면 과거 심플하던 시절에는 없던 문제가 생기기도 하는데, 이번에 제가 발견한 케이스가 있어 공유하고자 합니다. 사용했던 쿼리의 형태는 아래와 같았습니다. 3개의 테이블을 A 테이블의 m_id를 중심으로 join하고, 그 결과값을 원하는 기준으로 정렬한 후에 특정 컬럼을 기준으로 group하는 쿼리입니다. SELECT * FROM (SELECT A.m_id, A.name, B.gender, C.items FROM A JOIN B ON A.m_id = B.m_id JOIN C ON A.m_id = C.m_id ORDER BY A.regdt DESC ) AS RESULT ..

Xcode에서 IOS 프로젝트를 생성하면 프로젝트 내부에 스토리 보드가 존재합니다. 스토리보드 (Stroryboard)란? 스토리 보드는 IOS 앱의 사용자 인터페이스를 시각적으로 표현하여 컨텐츠 화면과 화면 간의 연결을 보여주는 도구입니다. 스토리보드는 일련의 장면들(scenes)로 구성되며, 각 scene은 뷰 컨트롤러와 해당 뷰를 나타냅니다. 뷰(View)란? IOS 앱 사용자 인터페이스의 기본 구성 요소입니다. 이를 사용하여 앱의 컨텐츠를 화면에 그리거나 구성할 수 있습니다. 뷰 컨트롤러(View Controller)란? UIKit을 사용하는 앱의 인터페이스를 관리하기 위한 도구입니다. 뷰 컨트롤러는 하나의 루트 뷰 만을 관리하고, 해당 루트 뷰가 여러개의 서브뷰들을 가지는 방식으로 한 화면을 여..

'꼼꼼한 재은 씨의 Swift:실전편' 이라는 책의 HTTP 구조 관련된 페이지를 보다 문득 평소에 가장 많이 사용하는 통신 프로토콜이 HTTP인데 구조도 모르고 사용했다는 생각이 들어 해당 내용을 정리합니다. Request Line 1. 전송 메소드 위 그림의 Request Line에서 가장 좌측 'POST'가 여기에 해당합니다. GET/POST 등 어떤 전송 방식으로 구성되어 있는지를 나타냅니다. 2.요청 내용에 대한 경로 위 그림의 Request Line에서 전송 메소드 오른쪽에 있는 내용입니다. '/path/to/what' 이렇게 요청 내용이 서버상의 어느 위치에 있는지를 나타냅니다. 3.요청 형식에 대한 버전 정보 위 그림의 Request Line에서 '요청 내용에 대한 경로' 오른쪽에 있는 내..

안녕하세요. 요즘 날이 엄청 춥네요. 자취방이 너무 추워서 도저히 잠이 안 옵니다... 그래서 보일러를 켰더니 온도가 오르는 속도가 너무 느리네요. 따뜻해지기를 기다릴 겸사겸사, 이번 글에서는 제 나름대로 도커를 이용해서 윈도우 컴퓨터에서 개발환경을 구성하는 과정에서 얻었던 나름의 미세팁들을 공유하고자 합니다. 도커를 왜 쓰는지, 혹은 도커의 유용함 자체는 이미 많이 알려진 상태이고, 또한 많은 곳에서 사용중이기에 굳이 여기서까지 적을 필요는 없을 것 같습니다. 그런 걸 알고 싶으시면 구글에 도커를 검색하세요. 다만 저는 개발환경을 구성하는 데 도커를 사용했기에, 개발환경 측면에서의 이점만 간단하게 말씀드리겠습니다. 서버 컴퓨터를 구매할(혹은 대여할) 필요가 없다. 예를 들어서 윈도우에서 도커를 사용해 ..

APNS(apple Push Notification Service)는 Apple device에서 앱이 보안 연결을 통해 원격 서버에서 사용자에게 푸시 알림을 보낼 수 있게 하는 클라우드 서비스입니다. 간략한 로직은 아래와 같습니다. 이 글은 위 프로그램의 Your Server 부분에 스프링을 통해 APNS를 사용하기 위한 파일을 생성하는 과정과 간단한 원리를 설명합니다. CSR(Certificate Signing Request)발급 맥의 spotlight 검색을 통해 키체인을 검색하고 해당 탭에서 다음과 같인 csr을 발급합니다. 생성된 CSR 파일을 열어보면 다음과 같은 데이터가 보입니다. 이 데이터에는 공개키 정보, 인증서가 사용될 FQDN(Fully-qualified domain name), 본인이..
- Total
- Today
- Yesterday
- http
- 웹
- Subquery
- API
- REST
- 리눅스
- mysql
- www
- maiardb
- Docker
- IOC
- uri
- bean factory
- GROUP BY
- 도커
- bean
- application context
- 윈도우
- URN
- 인터넷
- 개발환경
- url
- DI
- order by
- 컨테이너
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |