본문 바로가기
Efficient Android Threading #3 프로세스 간 통신 Efficient Android Threading #3 프로세스 간 통신 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용. 5.1. 안드로이드 RPC -안드로이드의 변형 리눅스 커널 안에서, 리눅스 IPC 기술은 프로세스 사이의 RPC 메커니즘을 수행하는 바인더 프레임워크로 대체되었다.이를 통해 클라이언트 프로세스는 마치 로컬에서 메서드를 실행하듯 서버 프로세스의 원격 메서드를 호출할 수 있다. -RPC 메서드 호출 자체는 단순하지만, RPC 매커니즘의 하부는 다음과 같은 단계로 구성된다. 1. 메서드 데이터 분해(마샬링, marshalling)2. 원격 프로세스로 마샬링된 정보를 전송3. 원격 프로세스에 정보를 재구성(언마.. 2018. 3. 19.
[Server구축/Tutorial] 기본 정보들 [Server구축/Tutorial] 기본 정보들 -가상 호스팅 (virtual hosting) 이란? 한 물리적 서버에 여러 개의 도메인을 접속 가능하도록 운영하는 것을 가상 호스팅이라 한다. 웹 서버의 대부분은 가상 호스팅이다. -가상 호스팅을 위해 꼭 공부해야 하는 내용 도메인 - 네임서버 설정 사용자 계정 만들기 웹 서버 구축 MySQL DB 계정 설정 및 게시판 설치하기 메일 계정 설정 시스템 보안 개요 기타 필요한 사항 -서버 포트 정보 포트는 서버에 접속하는 문이라고 볼 수 있으며 65,536 개의 포트가 있다. 20/tcp, 21/tcp -> FTP 22/tcp -> SSH 23/tcp -> 텔넷 ( 암호화되지 않음 ) 25/tcp -> SMTP ( 이메일 보내기 ) 53/tcp -> DNS.. 2017. 5. 14.
[Server구축/Tutorial] 리눅스에서 디바이스 이름과 파티션 [Server구축/Tutorial] 리눅스에서 디바이스 이름과 파티션 -/dev/fd0 -> 첫번째 플로피 디스크/dev/fd1 -> 두번째 플로피 디스크 -/dev/sda -> SCSI ID 주소에서 가장 먼저 오는 SCSI 디스크/dev/sdb -> SCSI ID 주소에서 두번째로 오는 디스크 /dev/sda1 -> sda 의 첫번째 파티션/dev/sda2 -> sda 의 두번째 파티션 cf) SCSI 는 Small Computer System Interface 의 약자로, 주변기기 연결할 떄 직렬 방식으로 연결하기 위한 표준을 이야기한다.고성능을 위한 시스템 버스로 주로 서버와 같은 컴퓨터에서 하드디스크와 같은 주변 장치를 연결하는 데 사용된다.스커지라고 읽는다.SCSI 는 SAS 로 진화했다. H.. 2017. 5. 7.
Harddisk Interface 정리 ( IDE, SATA, SCSI, SAS ) Harddisk Interface 정리 ( IDE, SATA, SCSI, SAS ) http://skymeet.tistory.com/43 -IDE ( Integrated Drive Electronics ) 가장 오래된 규격 데이터를 병렬로 전송한다는 뜻에서 PATA ( Parallel Advanced Technology Attachment ) 라고도 부른다. 최신 규격 UDMA6 모드에서는 초당 133.3MB 전송속도를 낸다. 현재는 초기 IDE 보다 성능 향상된 E-IDE ( Enhanced IDE ) 규격을 사용하는데, 일반적으로 현재 IDE 라고 부르는 녀석이 E-IDE 이다. -SATA ( Serial Advanced Technology Attachment ) SATA1 에서는 초당 150MB S.. 2017. 5. 6.
[Java Concurrency] 활동성 최대로 높이기 #1 [Java Concurrency] 활동성 최대로 높이기 #1 - 안정성(safety)와 활동성(liveness) 사이에는 밀고 당기는 힘이 존재하는 경우가 많다. 스레드 안전성을 확보하기 위해서 락을 사용하곤 하는데, 락이 우연찮게 일정한 순서로 동작하다 보면 락 순서에 따라 데드락이 발생하기도 한다. 시스템 자원 사용량을 적절한 수준에서 제한하고자 할 때 스레드 풀이나 세마포어를 사용하기도 하는데, 동작하는 구조를 정확하게 이해하지 못하고 있다면 더 이상 자원을 할당받지 못하는 또 다른 형태의 데드락이 발생할 수 있다. - 자바 어플리케이션은 데드락 상태에서 회복할 수 없기 때문에 항상 프로그램의 실행 구조상 데드락이 발생할 가능성이 없는지 먼저 확인해야 한다. 10.1. 데드락 - 데이터베이스 시스템.. 2017. 5. 1.
[Effective Java] Serializable 인터페이스를 분별력 있게 구현하자. [Effective Java] Serializable 인터페이스를 분별력 있게 구현하자. - 객체 직렬화(object serialization) API 는 객체를 바이트 스트림으로 인코딩하고, 인코딩된 바이트 스트림으로부터 객체를 복원(디코딩) 하는 프레임워크이다. - 객체를 바이트 스트림으로 인코딩하는 것을 직렬화(serializing)이라 하고, 그 반대의 절차를 역직렬화(deserializing)이라고 한다. - 객체가 일단 직렬화되면, 인코딩된 객체는 향후에 역직렬화 하기 위해 하나의 실행 중인 VM 에서 다른 VM 으로 전송되거나 디스크에 저장될 수 있다. 직렬화는 원격 통신을 위한 표준 통신 회선 수준의 객체 표현을 제공한다. 직렬화 프록시는 effective java 의 직렬화 주제중 가장 .. 2017. 3. 21.
[Effective Java] 스레드 그룹보다는 실행자와 작업을 사용하자. [Effective Java] 스레드 그룹보다는 실행자와 작업을 사용하자. - 자바 1.5 배포판 이후에 java.util.concurrent 패키지가 추가되었다. 여기에는 실행자 프레임워크(Executor Framework) 가 포함되어 있다. 이 녀석을 사용하면 Work queue 를 쉽게 관리할 수 있다. ExecutorService executor = Executors.newSingleThreadExecutor();executor.execute(runnable);executor.shutdown(); // 추가된 task 들의 실행은 보장한다. shutdownNow() 도 있다. 위와 같은 간단한 코드로 쉽게 queue 를 만들어 실행시킬 수 있고, shutdown 시킬 수 있다. - Executo.. 2017. 3. 10.
[Django] 파이썬 웹 프로그래밍 - 웹 프로그래밍의 이해 [Django] 파이썬 웹 프로그래밍 - 웹 프로그래밍의 이해 -책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ * 1.2.1. 웹 브라우저를 사용하여 요청 * 1.2.2. 리눅스 curl 명령을 사용하여 요청 -curl 명령은 HTTP/HTTPS/FTP 등 여러 가지의 프로토콜을 사용하여 데이터를 송 수신할 수 있는 명령이다. * 1.2.3. Telnet 을 사용하여 요청 -telnet 명령은 터미널 창에서 입력하는 내용을 그대로 웹 서버에 전송한다.telnet 명령모드에서 나가려면 아래 두 라인을 입력해야 한다. ^] ( Ctrl + ] )quit .. 2016. 12. 6.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
반응형