일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 알림채널
- 버전별 관리
- android notification 예제
- 안드로이드 알림
- 알림 인텐트
- notification channel
- setPriority(NotificationCompat.PRIORITY_HIGH)
- 안드로이드 알림 예제
- NotificationCompat.Builder
- Pending Intent
- setContentIntent
- notifications
- notification manager
- 펜딩인텐트
- setDefaults(NotificationCompat.DEFAULT_ALL)
- 알림 우선순위
- Today
- Total
목록전체 글 (97)
공부용 블로그
웹서버 성능 테스트 후 최종 선정한 웹서버가 Nginx임에도 불구하고 구조를 제대로 이해하고 있지 못해서다시 한번 정리한다. Nginx는 하나의 마스터프로세스와 소수의 워커 프로세스(보통 코어수만큼 생성)로 동작한다. 마스터 프로세스는 nginx의 conf 파일을 읽고 그에 맞는 세팅과 워커 프로세서들을 생성한다.worker 프로세서들은 하나의 소켓으로부터 연결요청을 받아서 이벤트를 처리한다.worker 프로세스마다 이벤트 루프를 가지고 있는데 비동기/넌블로킹 방식으로 이벤트를 처리한다. worker 프로세스는 이벤트 루프 하나로 수천개의 동시연결을 처리가능하다. Event-Driven은 다양한 업무를 이벤트로서 다루는 접근 방법이다. 클라이언트로부터 들어오는 연결요청, 디스크 읽기가 'event'이다...
시스템 모니터링 툴인 NmonChart에서 cpu use 를 보면 System 영역과 User 영역으로 구분되어 있는 것을 볼 수 있다.이 차이는 무엇일까? 차이점 : 시스템 보안을 위해 접근 가능한 영역을 구분 커널 모드(NmonChart에서 system 이라고 하는 부분) : 모든 자원(드라이버, 메모리, CPU 등)에 접근, 명령을 할 수 있다.유저모드와는 달리 컴퓨터 내부에 모든 짓을 할 수 있으므로 제한적인 접근만을 허용해서 자원을 안전하게 지킨다. 유저 모드 : 유저가 접근할 수 있는 부분을 제한적으로 두고 프로그램의 자원에 함부로 접근하지 못하는 모드우리는 여기서 코드를 작성하고, 프로세스를 실행하는 등의 행동을 할 수 있다.간단하게 유저 어플리케이션 코드가 유저모드에서 실행된다고 볼 수 있..
I/O 성능에 결정적인 영향을 미치는 요인으로서의 I/O는 크게 두 가지 I/O가 존재한다. 디스크에서 데이터를 읽어오는 I/O와 네트워크 통신에서 발생하는 I/O이다. 이 두 I/O 작업이 처리되는 속도는 CPU의 작업 처리속도에 비해 매우 느리다. 그렇기 때문에 어플리케이션의 성능은 이 I/O 작업을 어떻게 처리하느냐에 따라 달려있다고 할 수 있다. 그 중 네트워크 통신에서 사용하는 socket을 중심으로 I/O 방식에 대해 알아본다. Q. CPU안에 I/O가 포함된 개념이 아닌건가? nmonchart에서 CPU use를 확인했을 때 user 사용량과 kernel 사용량이 나눠져 있고 두 부분을 합쳐서 cpu 사용량이라고 하지 않았었나? Socket 소켓이란 네트워크로 연결되어 있는 서로 다른 두 컴..
1. 이클립스 설치 2. eclipse-jetty.github.io/installation.html 참고 - 이클립스 창에서 Quick Access (우측상단) - install new software 검색 - Work with : http://eclipse-jetty.github.io/update/ 입력 - Eclipse Jetty Intergration 뜨면 선택하고 설치 진행 3. mysql 커넥터 연동 https://shxrecord.tistory.com/92 참고 4. NewFile.html 처럼 동적테스트 할 파일 넣어서 우클릭 - 제티로 run 하면 됨
1. 자바 설치 # apt install // 내 경우 default-jdk 로 설치함 2. 자바 위치 확인 # which javac/usr/bin/javac # readlink -f /usr/bin/javac/usr/lib/jvm/java-8-openjdk-amd64/bin/javac - 자바의 실제위치는 /usr/lib/jvm/java-8-openjdk-amd64/bin/- 따라서 $JAVA_HOME은 /usr/lib/jvm/java-8-openjdk-amd64 로 설정해야 함 2. profile 파일에 내용 추가 # gedit /etc/profile export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" 3. # source /etc/profile 4. 확인 ..
1. Apache의 MPM(Multi Process Module) 방식이란? The Apache HTTP Server is designed to be a powerful and flexible web server that can work on a very wide variety of platforms in a range of different environments. Different platforms and different environments often require different features, or may have different ways of implementing the same feature most efficiently. Apache has always accommodated a..
소켓연결시 기존의 blocking 형태는 동시접속자가 증가할 경우 client = thread 이기 때문에 thread 수가 너무 많아져 context switching 등의 문제가 발생하여 서버의 성능이 떨어진다는 문제점이 있었다. 그래서 나온 방식이 non-blocking. 싱글스레드로 작동하며 클라이언트로부터 소켓연결이나 데이터 입력 등과 같은 요청이 들어올때 실제로 처리할 값이 없으면 null값을 리턴한다. 바로바로 리턴하기 때문에 blocking 되지 않고, thread를 계속 늘리지 않아도 된다. 그러나 non-blocking의 문제점은 실제적으로 수행할 일이 없어도 코드가 무한루프를 돌기 때문에 cpu의 낭비가 심하다. 이러한 비효율적인 무한루프를 해결하기 위해 셀렉터가 이벤트 리스너 역할을..
(참고) https://joshua1988.github.io/web-development/javascript/javascript-asynchronous-operation/ - 비동기 처리란? 특정 코드의 연산이 끝날때까지 코드의 실행을 멈추지 않고, 다음 코드를 먼저 실행하는 것 비동기 처리 문제 (1) 1) 특정 로직이 끝나고 그 결과를 변수 a에 담는다. 2) return a를 수행한다. 여기서 1)번을 수행 후 결과값을 기다리지 않고 바로 2)번을 실행하기 때문에 return a에 아직 아무값도 담기지 않은 초기값이 출력되게 된다. 비동기 처리 문제 (2) setTimeout() 문제 setTimeout()은 Web API의 한 종류이다. 코드를 바로 실행하지 않고 지정한 시간만큼 기다렸다가 실행한..