react native gps foreground service - android, kotlin (1)

react native 에서 gps 트래킹을 해야한다. 앱이 백그라운드에 있어도 동작하도록 네이티브 모듈을 만드는 것만 해도 많이 안하다보니 까다로운데 gps + 서비스 동작을 해야한다니. 기본으로 돌아가기로 했다. 일단 안드로이드 앱에서 GPS 트래킹하는 코드부터 시도해보았다. ### MainActivity.kt ``` package com.example.gpstracker import android.annotation.SuppressLint import android.content.Context import android.content.pm.PackageManager import android.location.LocationListener import android.location.LocationManager import android.os.Bundle import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.core.app.ActivityCompat import com.example.gpstracker.ui.theme.GpsTrackerTheme val T

apache httpd, tomcat 연동

아파치, 톰캣, mod_jk 설치

1. 압축해제

tar -zxvf tomcat-connectors.tar

2. mod_jk 소스의(방금 압축 푼 커넥터) native 디렉터리로 이동한 뒤 configure 명령 실행

./configure --with-apxs=아파치/bin/apxs

tip : find / -name apxs

3. configure 을 통해 설정이 끝나면 make 으로 컴파일

make

4. make 후 make install 으로 코드 설치

make install

5. 설치가 되면 아파치 디렉터리에 모듈 생성됨.

6. connectors 소스의 apache-2.0 디렉터리에 있는 mod_jk.so를 apache httpd 서버의 modules 디렉토리로 복사

7. mod_jk.so 의 권한 설정

chmod 755 mod_jk.so
chown root:root mod_jk.so

8. httpd 서ㅓ 설정 편집을 위해 apache 서버의 conf 디렉토리에서
vim mod_jk.conf

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /* node1

//위의 텍스트 설명
LoadModule : 모듈 경로 - 아파치를 시작할 때 모듈을 로드할 위치 정의
JkWorkersFile : 작업자 파일 경로 - 작업자 파일 위치 정의. 작업자 파일은 톰캣 인스턴스 IP, port, road ballancing 정보 포함.
JkLogFile : 로그 파일 경로
JkMount : URL 매핑 - 정의된 URL 요청 재전송 규칙 정의. 위의 경우는 /*의 경로를 입력했을 때 해당 요청을 톰캣 node1로 재전송.
JkLogLevel : 로그 수준 : mod_jk에서 수행하는 다양한 이벤트를 logs가 어떻게 처리할지를 정의



9. conf 디렉토리에 workers.properties 파일 생성

vim workers.properties

worker.list=node1
worker.node1.port=8009
worker.node1.host=localhost
worker.node1.type=ajp13
worker.node1.lbfactor=1

//위의 텍스트 설명
노드 이름
톰캣에서 ajp 요청을 어떤 포트로 수락하는지
톰캣 호스트 ip
사용중인 프로토콜. 보통 ajp13 사용. ajp12는 예전 버전, ajp14는 개발중인 버전(upcomming)
부하 분산 방법(라운드 로빈, 연결 지속 등)

10.아파치, 톰캣 실행
아파치 : bin 폴더에서 ./apachectl start //종료는 stop
톰캣 : bin 폴더에서 ./startup.sh


reference
타누즈 카르 - 아파치 톰캣 7 따라잡기

댓글

이 블로그의 인기 게시물

Operating System Concept

카카오 내비 리엑트 네이티브 모듈 만들기 ft.코틀린

Operating System Concepts 9th