일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Pending Intent
- setContentIntent
- notifications
- 펜딩인텐트
- 안드로이드 알림 예제
- setDefaults(NotificationCompat.DEFAULT_ALL)
- notification channel
- 버전별 관리
- 알림 우선순위
- NotificationCompat.Builder
- setPriority(NotificationCompat.PRIORITY_HIGH)
- 안드로이드 알림채널
- android notification 예제
- notification manager
- 알림 인텐트
- 안드로이드 알림
- Today
- Total
목록설계/WebServer (33)
공부용 블로그
인메모리 데이터베이스와 디스크기반, 즉 전통적인 데이터베이스의 차이점과 데이터를 저장하는 장소인 RAM / SSD / HDD 의 특징과 차이점을 알아보자. https://medium.com/@denisanikin/when-and-why-i-use-an-in-memory-database-or-a-traditional-database-management-system-5737f6d406b5 데이터베이스 관리 시스템을 선택하는 큰 틀 1. 데이터를 어디(RAM or SSD or HDD)에 저장할 것인가? 2. 그 저장소에 어떤 데이터베이스 시스템을 설치할 것인가? 각각의 데이터 저장소에는 고유한 접근 시간과 속도, 가격 차이가 있다. An IMDB stores a copy of data in RAM and pe..
웹서버 성능 테스트 후 최종 선정한 웹서버가 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의 낭비가 심하다. 이러한 비효율적인 무한루프를 해결하기 위해 셀렉터가 이벤트 리스너 역할을..