반응형

Program 43

node.js 란?

node.js는 생각보다 역사가 길다. 2009년 Ryan Dahl이 고안한 서버사이드 자바스크립트 언어이다. 자바스크립트는 과거 브라우저 위에서만 동작할 수 있는 언어였는데 생산성이 뛰어나다 보니 브라우저 밖에서도 사용하고 싶었고 독립적으로 동작시키고 싶었는데 이런 요구가 있었기에 node.js가 탄생한 것이다. V8 google의 V8 자바스크립트 엔진을 사용하여 코드 실행한다. 이 때문에 아파치나 IIS와 같은 서버 소프트웨어 없이 웹 서버 역할이 가능하다. Non-Blocking I/O I/O는 Input과 Output이다. I/O 작업은 요청과 응답을 받기 위한 대기 시간이 오래 걸려 실행시간이 병목 되는 작업이다. 그러나 Non-Blocking I/O는 하나의 작업이 완료되기 전에 다른 작업을..

Program/Node.js 2020.07.08

php email 보내기

php에서 이메일을 보낼 수 있는 방법은 가장 대중적인 라이브러리는 'php mailer'이다. 물론 php 내장 함수인 mail도 있지만 내부에 메일서버(smtp서버)가 구축되어 있어야 한다. https://www.php.net/manual/en/function.mail.php PHP: mail - Manual It is also possible to send HTML email with mail(). Birthday Reminders for August Here are the birthdays upcoming in August! Person Day Month Ye www.php.net PHPMailer PHPMailer를 통해서 smtp서버가 없더라도 메일 서비스하는 업체(지메일, 다음, 네이버)의 ..

Program/Php 2020.06.05

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 46137376 bytes) in C:\Apache24\htdocs\test\api\test.php on line 19 해결 방법

이 에러는 할당된 메모리보다 사용되는 메모리가 클 경우(메모리 부족) 발생하며 두 가지 방법으로 해결할 수 있다. 첫 번째 PHP 소스에 세팅값 추가 ini_set("memory_limit", -1); // ini_set("memory_limit", '512M'); 위와 같이 -1 값을 주어 메모리 제한을 무제한으로 줄 수 있다. 아니면 사용할 메모리 용량을 지정해서 적어주면 된다. 두 번째 방식은 php.ini 설정 수정하는 방법이다. memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = -1 형태로 기존 설정되어 있는 값을 -1 (무한대) ..

Program/Php 2020.05.27

mp4 mp3 등 오디오 비디오 파일 재생시간 추출하기

운영 중인 4대의 오디오 트랜스코더 중 1대에 재생시간 추출하는 로직이 누락되어 있어 형상을 맞춰주고 재생시간이 누락된 데이터를 재수집을 해야 하는 상황이 발생하였다. 일단 서비스는 현재로부터 3달치만 유통되고 있기 때문에 급한 대로 최근 일부터 하나씩 수동 처리하였다. 방식은 하나하나 서비스에 들어가서 player를 통해서 노출되는 재생시간 정보를 가지고 업데이트... 하루에 60건 정도 발생하여 최근 데이터만 처리하는데도 엄청난 일이다. 인력으로는 할 수 없는 일이다. 배치 프로그램으로 처리하자!! 나는 간단하게 개발할 수 있는 php를 사용하였다. 현재 오디오 비디오 파일은 cdn에 올라가 있고 mp3파일과 mp4은 다른 팜이다. mp3 재생시간 추출 php에서는 ftp에 올라가 있는 파일 사이즈를..

Program/Php 2020.05.19

Intel HAXM is required to run this AVD.VT-x is disabled in BIOS.Enable VT-x in your BIOS security settings (refer to documentation for your computer).

가상 디바이스 실행 시 위와 같이 Intel HAXM is required to run this AVD. VT-x is disabled in BIOS. Enable VT-x in your BIOS security settings (refer to documentation for your computer). 메시지가 보인다면 바이오스에 가상화 기능 사용 설정이 비활성화되어 있어서 발생한 문제이다. 우선 내 컴퓨터 설정 정보를 보려면 검색에서 아래와 같이 입력하거나 단축키 윈도우키 + R을 눌러 msinfo32를 입력하여 확인 가능하다. 컴퓨터 설정을 보면 Hyper-V - 펌웨어에 가상화 사용 설정이 "아니요"로 되어있는데 이게 "네"로 설정되어 있어야 한다. 이설 정을 변경하기 위해서 바이오스 화면으로 ..

Program/Android 2020.04.28

2. 안드로이드 앱 만들기

아주 간단한 앱을 만들어 보려고 한다. 단순하게 내가 작성한 글자를 보여주는 앱을 만들 것이다. 앱을 만들려면 안드로이드 스튜디오에서 프로젝트를 생성해야 한다. 결국 쉽게 앱 = 프로젝트라고 보면 된다. 그럼 안드로이드 스튜디오에서 첫 번째 프로젝트를 생성해보자! Start a new Android Studio project를 클릭하자 안드로이드는 모바일(태블릿 포함) 웨어러블 스마트 TV 사물인터넷 등 다양한 곳에서 사용되는데 접근하기 쉽게 각 분야별로 다양한 템플릿을 제공하고 있다. 우리는 스마트폰 혹은 태블릿 PC용 앱을 만드려고 하니 Phone and Tablet 탭을 클릭하여 템플릿을 선택하자. Activity란 일종의 보일 화면이라고 생각하면 된다. 여기서 Empty Activity(빈 화면)..

Program/Android 2020.04.28

JDK(Java Development Kit) , JRE(Java Runtime Environment), JVM(Java Virtual Machine) 란?

자바 개발 키트 JDK 자바 기반 소프트웨어를 개발하기 위한 도구(tool) 패키지 자바 런타임 환경 JRE 자바 코드를 실행하기 위한 도구 패키지 자바 가상 머신 JVM 스프트웨어이지만 Machine이라는 말이 들어간 이유는 JVM이 실제로는 CPU와 같은 역할을 하기 때문이다. 클래스 파일(.class)은 직접 CPU에서 동작할 수 있는 코드(native code)가 아니다. 생성된 클래스 파일은 중간단계의 언어라고 할 수 있는 byte code인데 이 코드를 실행하기 위해서는 가상적인 CPU가 필요하다. 바로 그것이 JVM이다. JAVA언어가 native code가 아닌 byte code를 생성하는 이유는 이식성 때문이다. 직접 native code를 생성하면 그 CPU에 종속적인 특성을 갖는다. ..

Program/Java 2020.04.28

1. 안드로이드 스튜디오 설치

안드로이드 스튜디오(ANDROID STUDIO)란? 구글이 안드로이드 앱 개발을 위해 JetBrains 사의 IDEA를 기반으로 만든 통합 개발 환경이며 사용 가능한 운영체제는 Windows, 맥킨토시, 리눅스 등 모든 환경을 지원하며 기본 프로그램 언어인 자바(JAVA)와 2017년 5월부터 Android 공식 프로그래밍 언어로 채택된 Kotlin도 사용 가능 설치 방법 안드로이드 스튜디오 개발자 홈페이지 접속 https://developer.android.com

Program/Android 2020.04.28

DB Connection Pool

https://www.holaxprogramming.com/2013/01/10/devops-how-to-manage-dbcp/ DB Connection Pool에 대한 이야기 DB Connection Pool은 왜 필요할까? www.holaxprogramming.com 웹 애플리케이션을 운영하다 보면 에러 로그로는 식별 할 수 없는 잠재적인 이슈가 발생 할 때가 있다. 애플리케이션내의 오류가 명확히 확인이 되지 않은 상태에서 Out of memory가 발생 하거나, DB 서버에서부터 발생한 장애로 인해 웹 서버가 뻗어 버리는 경우 말이다. 실제로 서비스 운영 중에 문제가 발생 했을 때 원인을 파악하고 조치한 내용을 정리해 보려고 한다. 결론부터 말하면 이러한 문제는 대부분 애플리케이션의 비지니스 로직의 ..

Program/Java 2019.08.08

connection pool leak (커넥션풀 누수)

connection pool은 풀의 데이터베이스에 대한 활성 연결을 유지하여 성능을 향상시킵니다. 풀은 일반적으로 풀 관리자가 관리합니다. 클라이언트 (API)는 풀에서 연결을 빌리고 SQL 쿼리 또는 업데이트를 실행 한 다음 연결을 풀로 다시 반환해야합니다. 그러나 연결 개체가 풀로 다시 반환되지 않으면 풀의 연결이 풀보다 줄어 듭니다. 이것을 연결 풀 누출이라고합니다. 결국이 문제가 계속 발생하면 풀 연결이 끊어지게됩니다.이를 풀 소진이라고합니다. 일반적으로 이는 프로그래머가 리턴 연결 메소드 호출을 잊어 버리거나 일부 조건에서 리턴 연결 메소드가 호출되지 않는 경우에 발생합니다. 특정 응용 프로그램 서버는 연결 누수가 있는지 여부를 감지 할 수 있습니다. 예를 들어 Weblogic Server 8...

Program/Java 2019.08.08
반응형