목록개발이야기 (30)
기억하기 프로젝트
1. 스칼라 시작스칼라도 JDK기반으로 동작하고(JVM위에서 작동하는 언어) , java의 대표적인 라이브러리들을 사용할 수 있는 장점이 있다.JDK기반이기 때문에, 기본적으로 JDK부터 설치를 해 주어야 한다.intellij 플러그인 "Scala" install 2. 변수 - 컴파일러가 알아서 자료형에 대해 판단하고, 메모리공간 알아서 확보, 필요하다면 묵시적 형변환을 통해 필요한 자료형으로 바꿔줌var : 일반적인 변수val : java에서 흔히 말하는 final 변수자료형을 명시해줄경우 - var a: Int = 5(빈 값일 경우) var b = None (권장).. null도 가능하긴 함2.2 기본자료형, 참조자료형- 기본자료형 : String 제외하고는 AnyVal라는 공통의 이름으로 불림- 참..
우선순위큐(Priority Queue) 문제 - 문제11. 이진 힙에서 값 k보다 작은 모든 요소를 찾는 알고리즘을 제시하시오.풀이) 이진 힙의 root부터 시작하여, root의 값이 k보다 작다면 출력한 후 자식노드(left, right)를 각각 k보다 작은지 또 확인한다. 만약 또 k보다 작다면 출력하고, 각각의 노드를 root로 잡아 또 그 자식노드(left, right)로 가고.. 이런식으로 재귀적으로 호출하며, k보다 큰 수를 만나게 되면 재귀호출을 중지하고 return해준다. 직접 소스를 확인해보고 출력 결과를 보자. 소스)public class PriorityQueue { private int[] array; private int limit; PriorityQueue(int[] array, ..
Lake Counting(POJ NO.2386)크기가 N*M인 정원이 있습니다. 그 곳에 비가 내려 물 웅덩이가 생겼습니다. 물 웅덩이는 주위(8군데)가 근접하여 있으면 서로 연결되어 있다고 간주합니다. 즉 하나의 물 웅덩이로 간주합니다. 전부 몇 개의 물 웅덩이가 있을까요? (8군데는 다음의 물 웅덩이 W에 대하여 *부분을 나타냄)*** *W* ***!제약 : N, M
최근에 쓰레드 관련 프로그램을 작성하면서, 부족하다고 느꼈던 부분을 다시 공부해 보자는 마음으로 스레드의 개념을 다시 들춰보았다. Thread보통 스레드를 공부하게 되면 동시에 나오는 개념이 프로세스인 것 같다. 프로세스는 운영체제로부터 자원을 할당받아 실행되는 흐름이라고 본다면, 스레드는 그 프로세스가 할당받은 자원을 이용하는 개념이라고 보면 될 듯 하다.또한, 한 개의 프로세스는 한 가지의 일을 하지만 스레드를 사용하면 한 프로세스 내에서 동시다발적으로 일을 수행할 수 있다. 그렇기 때문에, 빠른 처리가 필요하거나 많은 데이터를 처리해야할 때 스레드를 이용한 프로그램 소스를 흔히 볼 수 있다.먼저, 간단한 예제를 통해 확인해보도록 하자.public class MyThread extends Thread..
L4에서 수동으로 서버 내리거나 올릴 때- /sbin/ifconfig -a 명령어를 통해, L4로묶여있는 링크명 알아내서 이것이 만약 x라고 하면 /sbin/ifdown x 라는 명령어로 L4에서 해당 서버를 내린다.다시 서버를 올리기 위해서는 /sbin/ifup x 라는 명령어를 날려야 한다./sbin/ifdown, /sbin/ifup 명령어 모두 root권한에서 수행이 가능하므로 명령어 날릴 때 sudo를 붙여주어야 한다. L4의 목적L4 스위치의 목적은 로드밸런싱인데 스위치로 들어온 패킷을 적절하게 분배 및 전송해주는 기능을 한다.TCP/UDP 패킷 정보를 분석해서 해당 패킷이 사용하는 서비스 종류 별로 처리하고(HTTP, FTP, SMTP ...)세션관리, 서버/방화벽 로드밸런싱, 네트워크 서비스..
톰캣 Document Root 설정방법server.xml 설정을 보면 태그 내의 appBase설정과, 그 하위 태그인 태그의 docBase 설정이 있다.둘 다 도큐먼트 루트 설정으로 보이는데, 어떤 차이가 있을까? 하고 문서를 찾아보았다. 1. 기본 Document Root톰캣의 기본 Document Root는 webapps/ROOT 이다. (default설정 - http://localhost:8080/ -> webapps/ROOT) 태그 속성인 appBase는 $CATALINA_HOME 디렉토리 밑 상대경로를 인자로 받는다.예를들어, appBase="webapps"로 설정한다면 $CATALINA_HOME/webapps 로 기본 도큐먼트 루트가 설정된다. - 태그가 생략되어 있으면 ROOT를 자동으로 D..
쉘 스크립트 첫 라인의 #!/bin/sh (여기서 '#'는 주석이 아님~) : 스크립트 파일의 실행을 bash쉘로 한다는 말을 뜻함이 라인을 기재하지 않아도 실행된다면, 리눅스 배포판은 기본적으로 bash쉘로 설정되어 있어서 bash쉘 상에서 무리없이 동작하는 경우이다.#!/bin/sh을 미리 선언해줘서 bash쉘 파일임을 미리 알려주는 것이다른 쉘 간에 오류를 피하는 방법이다. : 결론적으로, /bin 하위의 sh가 심볼릭 링크로 bash를 지정하고 있으므로, #!/bin/sh#!/bin/bash 둘 다 동일하게 실행된다고 볼 수 있다. 참고하여 요약 :) http://blog.whenji.com/278
내 머리도 휘발성 메모리 ㅜㅜ 자꾸 잊어서, 다시 한 번 기억하며 기록해 보자! MyISAM VS InnoDB Mysql의 스토리지 엔진으로 가장 많이 사용하는 MyISAM, InnoDB의 차이를 알아보자.결론적으로 얘기하자면 트랜잭션 처리가 필요하고 대용량의 데이터를 다루기 위해서는 InnoDB가 효율적이고, 반면 트랜잭션 처리가 필요없고 운영에 Read only 기능이 많은 서비스일수록 MyISAM 엔진이 효율적이다.한마디로 MyISAM은 SELECT가 많은서비스에, InnoDB는 데이터의 변화가 많은 서비스에 적합하다 할 수 있다. 좀 더 풀어서 이야기 해 보자. 1. MyISAMMyISAM은 항상 테이블에 ROW COUNT를 가지고 있기 때문에 SELECT count(*) 명령시 빠르고, SELE..
최근에 팀 내의 DB이전 작업으로, 기존에 사용중이던 시노님과 DB Link 정리작업을 했었다. 작업도중 시노님과 DB Link의 차이와 특징에 대해 정확하게 알고싶어서 "뇌를 자극하는 오라클 프로그래밍" 책을 참고하여 정리해 보았다. 먼저 시노님의 특징부터 알아보자.시노님 : 데이터베이스에서 다른 객체들에 대한 가명을 가진 객체로써, 오라클에서의 Synonym은 스키마 오브젝트들의 별칭(alias)을 뜻한다.예를 들어, HR스키마의 EMPLOYEE테이블의 데이터를 DEV 사용자가 조회하기 위해서는, 스키마가 다른 테이블이기 때문에 다음과같이 EMPLOYEE 테이블명 앞에 스키마명도 함께 정의해야 한다.SELECT * FROM HR.EMPLOYEE(단, DEV사용자가 SELECT권한을 부여받았다는 전제 ..
Apache MPM 이란Multi Processing Module 다중처리 모듈을 뜻하며, apache가 받은 요청을 분배하는 방식을 말한다.많은 MPM 종류들 중, 대표적인 두 가지를 말하자면 prefork방식과, worker방식이 있는데리눅스 기반에서 apache를 처음 설치하면 default(기본으로)는 prefork 방식으로 설정 되어있다. prefork 방식한 자식 프로세스 당 하나의 쓰레드를 사용하는 방법으로, 기본 사용 메모리가 worker보다 높으며, 프로세스간 메모리를 공유하지 않는 독립형태이므로 안정적이다. worker 방식한 자식 프로세스 당 여러개의 쓰레드를 사용하는 방법으로, 기본 사용 메모리는 prefork보다 낮으며, 쓰레드간에 메모리를 서로 공유한다.