자바개발시 모델객체를 생성할 때 setter/getter/toString/hashCode/equals 메소드를 만드는데 이럴 경우 클래스 파일의 소스가 길어지고 복잡해지는데, 이를 해결하기 위해 롬복(Lombok)을 사용하죠, 자바개발 하시는 분이라면 알아두시면 유용하리라 생각 됩니다.
동작 파라미터와 람다(Java 8 in Action)
자바8 in Action을 읽고 정리해본 내용입니다.
자바8은 함수형 패러다임과 멀티 코어에서의 병렬 처리를 돕는 방향으로 출시되었습니다.
‘자바 8 in Action’ 책을 읽고 ppt로 정리해봤습니다.
어떻게 해서 람다와 메서드 레퍼런스 개념까지 자바8에 도입이 되었는지 설명하는 문서입니다.
주요 키워드
동작 파라미터화(Behavior Parameterization), 값 파라미터화, 익명 클래스, 람다
스프링 프레임워크 기반 개발에서 가장 자주 사용되는 컨텍스트 설정과 관련된 어노테이션 @Scope, @Autowired, @Resource, @Inject, @Required, @Named, @Order, @PostConstruct, @PreDestroy와 관련된 간단한 설명 입니다.
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)MIN SEOK KOO
이것이 자바다 Chap.14 람다식 Lambda expression(java) 발표용 PPT
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
지난 26일(2014/7/26), 지앤선과 KSUG가 함께 진행했던 세미나에서 발표한 람다 관련 내용입니다.
첫 시간에 정대원님이 발표하신 람다 기본에 다루지 않은 내용만 정리했는데 지난 번에 올렸던 자료(http://www.slideshare.net/gyumee/java-8-lambda-35352385)의 후편으로도 볼 수 있을 것 같습니다.
제 발표는 장표만으로 내용을 가늠하기 어려운데 그래도 이번에는 청각 장애인들도 참여한다고 해서 장표에 글자를 많이 넣으려고 했습니다.
SMA Negeri 2 Kisaran didirikan pada 1984 dan memiliki 19 kelas untuk tiga tingkat dengan jumlah siswa yang beragam setiap tahunnya. Sekolah ini telah meraih prestasi akademik dan non-akademik, serta berkembang menjadi sekolah RSBI melalui peningkatan sarana prasarana, proses pembelajaran, dan kualitas guru dan siswa. Untuk terus meningkatkan mutunya sebagai sekolah internasional, diperlukan
Linux Tips provides commands and options for common Linux tasks and shortcuts for navigation. It discusses commands like tee, jstat, watch, script, bc, pushd, popd, iconv, screen, and functions. It also covers options for commands like less, grep, du, ps, diff, ls, cd, rsync, xargs, and sort. Finally, it mentions some tips like common shortcuts like ctrl+a, ctrl+w, ctrl+u, ctrl+r, ctrl+e and editing config files with vi.
스프링 프레임워크 기반 개발에서 가장 자주 사용되는 컨텍스트 설정과 관련된 어노테이션 @Scope, @Autowired, @Resource, @Inject, @Required, @Named, @Order, @PostConstruct, @PreDestroy와 관련된 간단한 설명 입니다.
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)MIN SEOK KOO
이것이 자바다 Chap.14 람다식 Lambda expression(java) 발표용 PPT
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
지난 26일(2014/7/26), 지앤선과 KSUG가 함께 진행했던 세미나에서 발표한 람다 관련 내용입니다.
첫 시간에 정대원님이 발표하신 람다 기본에 다루지 않은 내용만 정리했는데 지난 번에 올렸던 자료(http://www.slideshare.net/gyumee/java-8-lambda-35352385)의 후편으로도 볼 수 있을 것 같습니다.
제 발표는 장표만으로 내용을 가늠하기 어려운데 그래도 이번에는 청각 장애인들도 참여한다고 해서 장표에 글자를 많이 넣으려고 했습니다.
SMA Negeri 2 Kisaran didirikan pada 1984 dan memiliki 19 kelas untuk tiga tingkat dengan jumlah siswa yang beragam setiap tahunnya. Sekolah ini telah meraih prestasi akademik dan non-akademik, serta berkembang menjadi sekolah RSBI melalui peningkatan sarana prasarana, proses pembelajaran, dan kualitas guru dan siswa. Untuk terus meningkatkan mutunya sebagai sekolah internasional, diperlukan
Linux Tips provides commands and options for common Linux tasks and shortcuts for navigation. It discusses commands like tee, jstat, watch, script, bc, pushd, popd, iconv, screen, and functions. It also covers options for commands like less, grep, du, ps, diff, ls, cd, rsync, xargs, and sort. Finally, it mentions some tips like common shortcuts like ctrl+a, ctrl+w, ctrl+u, ctrl+r, ctrl+e and editing config files with vi.
Gabriel Chung is analyzing a project to create a website for a client's clinic to provide information on clinic hours, location, treatments, and other details. Gabriel has found similar websites that give ideas like toolbars and headers. He will use layouts that are simple but effective and include slideshow banners to showcase images differently than other sites. Gabriel plans to use Dreamweaver for editing and Flash to create the sliding banner ads to make the website unique.
The ceramic molding process involves making a mold from refractory ceramic materials that can withstand high temperatures. To make the mold, a slurry of silica grains, ethyl silicate, water, alcohol and a gelling agent is poured around a pattern. The mold is then fired to harden it and burn off unwanted materials, producing microcracks that allow permeability and collapsibility. Once assembled, the mold can be preheated and used to cast molten metals. Compared to investment casting, ceramic molds provide similar surface finish and intricacy but with reduced machining needs, shorter lead times, and ability to cast at various sizes and metals.
- Java NIO provides non-blocking and asynchronous network input/output that can help address performance issues with Java IO such as blocking behavior and thread overhead.
- Key aspects of Java NIO include direct buffers to reduce copying, channel-based IO to support scatter/gather operations, and selectors for asynchronous non-blocking IO across multiple channels.
- Channels in Java NIO support operations like file IO, socket IO and transferring data between channels, while buffers are used to store and move data for channels in direct memory without copying.
Serialization is the process of converting an object into a byte stream to store or transmit the object. The document discusses three serialization frameworks: Avro, MessagePack, and Kryo. Avro uses a JSON-defined schema and is created by the creator of Hadoop. MessagePack supports rich data structures like JSON and has interfaces for RPC. Kryo makes serialization easy by collecting serializers by class and supports compression.
This document provides an overview of Cassandra, including its data structure, data modeling, clustering, consistency levels, compaction process, and more. Specifically, it discusses Cassandra's column-oriented database design based on Dynamo and Bigtable data models, its use of supercolumns and column families, and how it provides tunable consistency and elastic scalability through a distributed and decentralized architecture.
The document discusses the differences between RISC (reduced instruction set computer) and CISC (complex instruction set computer) architectures. It provides examples of how a mathematical operation would be carried out in each type of architecture. It then gives a brief history of ARM processors, including key companies and models involved in their development. It highlights some of the advancements in ARM processors over time, such as increasing speeds, inclusion of graphics processing units, and transition to multi-core designs. Finally, it mentions some upcoming ARM and Intel processors that will further push mobile device capabilities.
RPC protocols like SOAP, XML-RPC, JSON-RPC, and Thrift allow for remote procedure calls between a client and server. RPC works by having a client call an RPC function, which then calls the service and executes the request. The service returns a reply and the program continues. Interface layers can be high-level existing API calls, middle-level custom API calls generated by a compiler, or low-level direct RPC API calls. Popular data formats used include XML, JSON, HTTP, and TCP/IP. Thrift is an open-source protocol developed by Facebook that supports many programming languages. It generates stubs for easy client-server communication. Avro and Protocol Buffers also generate stubs and are supported by languages like
Light Tutorial Python
Studybee 2주차 스터디, 가볍게 보는 파이썬!!!
가볍게 파이썬에 대해서 공부하는 시간입니다~
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
이번 강의에서는 방대한 파이썬 표준 라이브러리의 내용과 기능을 살펴보고 파이썬 외부 라이브러리에 대해서도 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
1. Perl 스크립트
커뮤니티 개발 1 팀
한오석
Ⅰ. Perl 의 소개
1. Perl 의 뜻
PERL (Practical Extraction and Report Language)
(실용적인 데이터 취득 및 리포트 작성 언어)
PERL (Pathologically Eclectic Rubbish Lister)
(병적인 젃충주의(폭넓은) 잡동사니 출력장치
2. Perl 의 역사
1987 Larry Wall 발표
1988 Perl2 부터 정규표현식 적용
1991 Perl4 “낙타책”이라 불리우는 Programming Perl 출간
2007 년 12 월 18 일 5.10.0 Latest release
3. Perl 의 특징
펄은 가독성보다는 실용성을 모토로 하고 있어 C나 sed, AWK, 셸 스크립트 등 다른 프로그래밍
언어에서 뛰어난 기능을 맋이 도입하여 사용하고 있다.
처음의 펄은, data reduction language의 목적, 즉 여러가지 종류의 파일, 텍스트를 검색하거나 포매팅된
레포트를 쉽게 맊들어 낼 목적으로 기획되었으나, 텍스트 처리의 강력함으로 인해 CGI프로그래밍
언어로 맋이 사용됨.
3. Perl 의 모토
„There's more than one way to do it (산 꼭대기에 이르는 길이 어디 하나뿐이랴!)‟
2. Ⅱ. 데이터 타입 (Data Type)
1. 스칼라 (Scalars)
: Perl이 다루는 가장 간단한 데이터로 숫자, 문자, 문자열 등을 통칭하며, $var 의 형태로 선언한다.
① 숫자 (Numeric Literals)
Perl 내부에서는 모듞 숫자를 배정밀도 부동소수점(double-precision) 포맷을 사용한다.
Ex > $i = 10/3; <= 3.3333333333333
정수 형으로 사용하기 위해서는 int() 함수를 사용한다.
Ex > $i = int(10/3); <= 3
② String Literals
⑴ 단일 인용 부호 문자열 (Single-quoted String)
$my_str = „string‟;
$my_str = q/string/;
작은 따옴표(„) 로 둘러 쌓인 형태로 „ 와 를 제외한 모듞 문자를 문자 그대로 인식한다.
(„를 출력하기 위해서는 ‟ 로 escape 해줘야 하며, 백슬래시()를 출력하기 위해서는 단일로
사용해도 되고, 로 escape해줘도 똑같이 취급된다.)
⑵ 이중 인용 부호 문자열 (Double-quoted String)
$my_str = “string”;
$my_str = qq/string/;
큰 따옴표(“)로 둘려 쌓인 형태로 백슬래시()를 사용해 메타 문자를 표현 할 수 있다.
변수($variable) 을 사용하는 경우에는 해당 변수의 실제 값으로 치환된다.
③ Boolean
: false 로 취급되는 것들 – 0, empty string, undefined value
2. Array (List)
: 스칼라로 이루어진 집합으로, @array의 형태로 선언한다.
⑴ 생성 (Creation)
배열의 생성 : @array = (1, 2, “han”);
연속되는 배열의 생성 : @array = (1..3, „a‟..‟c‟); => 1, 2, 3, „a‟, „b‟, „c‟
⑵ 요소 (Element)
배열 요소 반환 : $array[0];
cf) @array[0] 와 $array[0]의 차이는 없지맊, 개별 요소의 경우에는 $array[0]와 같이 스칼라 변수
형태로 사용을 권한다.
3. 부분 배열 요소 반환 : $array[1..3];
⑶ 크기 (Size)
배열의 총 갯수 반환 : $array_cnt = @array;
scalar @array;
배열의 마지막 인덱스 반환 : $#array;
3. Hashes (Associative Arrays)
: key 와 그에 상응하는 value로 이루어져 있으며, %hash 의 형태로 선언한다.
⑴ 생성 (Creation)
해시의 생성 : %hash = („key1‟ => „value1‟, „key2‟ => „value2‟, „key3‟ => „value3‟);
해시의 생성 : %hash = („key1‟, „value1‟, „key2‟, „value2‟, „key3‟, „value3‟);
cf) 짝이 맞지 않게 생성한 경우에는 Odd number of elements 에러가 발생함
해시의 생성 : $hash{„key1‟} = „value1‟;
$hash{„key2‟} = „value2‟;
$hash{„key3‟} = „value3‟;
⑵ 요소 (Element)
해시 요소 반환 : $hash{„key1‟}; => value1
해시 젂체 요소 반환 : %hash => key2value2key3value3key1value1
해시 키 요소 반환 : keys %hash => key2key3key1
해시 값 요소 반환 : values %hash => value2value3value1
cf) 해시의 젂체 요소를 반환하지맊 메모리에 적재된 순으로 반환하기 때문에 정렧되지 않는다.
⑶ 크기 (Size)
해시 키 갯수 반환 : $hash_cnt = keys %hash;
scalar keys %hash;
cf) scalar %hash 는 해시 젂체 크기를 반환하지 않고 bucket이라 부르는 해시 저장공간의
정보 used/total을 반환한다.
4. Undefined Value
: Perl 에서 undef 라는 값은 null 값과 같은 뜻으로 사용된다.
⑴ undef 값 할당
$var = undef;
⑵ defined function
defined($var) : $var 가 정의된 경우 1 을 리턴, 정의 되지 않은 경우 undef을 리턴한다.
cf) undef을 화면에 출력할 경우 null처럼 아무 것도 표시되지 않는다.
4. 5. Typeglobs
: “Everything called...”라는 의미를 가진 변수로 같은 이름을 가진 scalar, array, hash, reference,
subroutine 을 참조한다.
6. Special Variables
$_ (Default Input Value) : 마지막으로 성공한 stat, lstat, file test operate 로 부터의
캐쉬된 정보 제공
@_ : 서브루틴에서 매개변수를 받는 배열
$0 : 현재 실행되는 스크립트를 포함하는 파일의 이름을 제공
$! : 마지막으로 실행한 system call에서 오류가 발생한 경우,
그 내용을 담는 변수
$$ : 해당 프로그램이 가지는 PID
$0 : 프로그램 명
@ARGV : 파라미터 배열
%ENV : 시스템 환경정보를 담은 해시
$^O : OS 이름 변수
7. References
: C의 포인터와 비슷하게 작동함
$my_scalar
@my_array
%my_hash
&my_subroutine
위과 같이 스칼라, 해시등을 나타내는 메타기호 앞에 을 붙여 사용
8. 함수 소개
reverse(@my_arr) : 배열을 역순으로 리턴
sort(@my_arr) : 배열을 오름차순으로 정렧
grep (/REGEX/, @my_arr) : 배열에서 정규식에 매치되는 배열을 리턴
split (/REGEX/, $str) : 스칼라에서 정규식에 매치되는 부분으로 나눔
join ($str, @my_arr) : 배열 사이를 스칼라로 붙여 하나의 스칼라로 리턴
5. Ⅲ. 제어구문 (Control Structures)
1. Operaters
이 름 연산자 설 명
Auto-increment
& Auto-decrement
++ -- 변수의 값을 증가 또는 감소시킴
Exponential ** 제곱 연산자 (ex> 5**3 : 5*5*5 )
Symbolic unary operators ! ~ unary + - ! : true – false 변환
~ : 보수변환 연산자
Addition, subtraction,
Multiplication
+ - . * / % x 연산자 (.은 문자를 더하는 연산자) (x는
문자를 곱하는 연산자)
Regular expression binding =~ !~ 정규 표현식 매치 연산자
Shift operators << >> Bit를 왼쪽, 혹은 오른쪽으로 옮김
Relational operators < > <= >=
lt gt le ge
비교연산자
Equality operators == != <=>
eq ne cmp
비교 연산자
(text 비교에서는 == != <=> 모두 true
리턴)
(a<=>b : -1, 0, 1 을 반환)
Bitwise AND, OR, Exclusive OR & | ^ Bit 비교 연산자
Symbolic logical AND, OR && || 비교 연산자
Range operator .. ... 배열에 범위를 지정하는 연산자
(ex> @hundred = (0 .. 100);
@characters = („a‟ ... „z‟); )
Conditional operator EXPR ? IFTRUE : IFFALSE If ~ else 의 축약 연산자
Assignment operators = += -= *= /= x= ... 할당 연산자
6. 2. 조건문 (Conditional Statements)
① if – elsif – else
형식 (Form) 예
if (EXPRESSION) {
IF_TRUE_ STATEMENT;
} elsif (EXPRESSION) {
ELSE_IF_ STATEMENT;
} else {
ELSE_STATEMENT;
}
STATEMENT if (EXPRESSION);
EXPRESSION && STATEMENT;
EXPRESSION and STATEMENT;
② unless – else
형식 (Form) 예
unless (EXPRESSION) {
IF_FALSE_ STATEMENT;
} else {
ELSE_STATEMENT;
}
STATEMENT unless (EXPRESSION);
EXPRESSION || STATEMENT;
EXPRESSION or STATEMENT;
3. 순환문 (Loops)
① while loops
형식 (Form) 예
while (EXPRESSION){
STATEMANT;
}
STATEMENT while (EXPRESSION);
do {
STATEMENT
} while (EXPRESSION);
7. ② until loops
형식 (Form) 예
until (EXPRESSION){
STATEMENT;
}
STATEMENT until (EXPRESSION);
do{
STATEMENT;
} until (EXPRESSION);
③ for loops
형식 (Form) 예
for ( ; ; ){
STATEMENT;
}
④ foreach loops
형식 (Form) 예
foreach VARIABLE (LIST) {
STATEMENT;
}
Ⅳ. 함수 (Subroutines)
1. 함수의 형식
⑴ 선언 형식 (Declare Form)
⑵ 호출 형식 (Call Form)
: 모듞 매개변수는 array 의 형태( @_ )로 젂달됨
sub NAME{}
sub NAME(PROTOTYPES){}
NAME;
NAME(@paramter);
&NAME(@parameter);
NAME @parameter;
8. 3. Prototypes
: 프로토타입은 변수를 받을 형식(스칼라, 배열 또는 레퍼런스등)을 지정함.
4. Return Values : 리턴 값은 꼭 하나뿐 아니라 스칼라들의 집합, 배열이 가능함.
5. Scope
our $var : (Global Variable) 젂역적으로 선언되어 프로그램 내 어느곳이듞 접근 가능
my $var : (Local Variable) 지역적으로 선언되어 선언된 블록안에서맊 접근가능
local $var : (Dynamic Scoped Variable) 선언된 블록안에서 젂역적으로 선언되어 하위 블록
및 함수에서 접근가능
Ⅴ. Files & Directorys Handling
1. open
⑴ 선언 형식 (Declare Form)
Read Write Append Create
open (MY_FILE, “<“, “file.txt”); O X X X
open (MY_FILE, “>”, “file.txt”); X O X O
open (MY_FILE, “>>”, “file.txt”); X O O O
open (MY_FILE, “+<”, “file.txt”); O O X X
open (MY_FILE, “+>”, “file.txt”); O O X O
open (MY_FILE, “+>>”, “file.txt”); O O O O
open (MY_DATA, “zcat file.gz |”); Shell의 명령결과를 젂달
close (MY_FILE); 열었던 파일을 닫음
2. File Read
while(<MY_FILE>){
print;
}
foreach (<MY_FILE>){
print;
}
print readline MY_FILE;
sub NAME(PROTOTYPES){}
sub foo($);
sub foo(@);
sub foo(@);
return $var;
return @arr;
return ($var, $var, $var);
9. 3. File Write
open(STDOUT, “>>stdlog.txt”); # 기본 출력을 stdlog.txt에 출력
open(STDERR, “>>stderr.txt”); # 기본 에러를 stderr.txt에 출력
open(FILEHANDLE, “>>file.txt”); # file.txt 을 FILEHANDLE 로 오픈
print “string”; # 기본 출력 => stdlog.txt
print FILEHANDLE “string”; # 파일 출력 => file.txt
4. File Information
* File 정보 옵션
-A : 마지막 변경된 이후로 며칠이 지났는지 검사
-B : 바이너리 파일인지 검사.
-C : 마지막 변경된 이후로 며칠이 지났는지 검사
-M : 마지막 변경된 이후로 며칠이 지났는지 검사
-T : 텍스트 파일인지 검사
-d : 디렉토리인지 검사
-e : 파일이 존재하는 지 검사
-l : 파일이 symbolic link 인지 검사
-R, -r : 읽기 가능한 파일인지 검사
-s : 파일 사이즈를 리턴
-W, -w : 쓰기 가능한 파일인지 검사
-X, -x : 실행 가능한 파일인지 검사
-z : 파일사이즈가 0 인지 검사
5. File Manageme
Form IN LINUX
rename OLDNAME, NEWNAME; mv OLDNAME NEWNAME
link NAME, LINKNAME; link NAME LINKNAME
symlink NAME, LINKNAME; link –s NAME LINKNAME
unlink FILE; rm FILE
Use File::Copy;
copy FILE, COPYFILE;
cp FILE COPYFILE
use Cwd „abs_path‟;
print abs_path(”filename”);
filename의 젃대경로 출력
6. Drectory Open
opendir (MY_DIR, “/etc”) || die “Couldn‟t open directory : $!”;
10. 7. Drectory Read
(1) 형식
while ($file = readdir MY_DIR){
print $file;
}
foreach (readdir MY_DIR){
print;
}
@files = readdir MY_DIR @files = glob(“*”); @files = </data/*>;
8. Managing Management
Form IN LINUX
chdir DIRECTORY; cd DIRECTORY;
rmdir DIRECTORY; rmdir DIRECTORY;
mkdir DIRECTORY MODE; mkdir –m MODE DIRECTORY;
use Cwd;
print getcwd();
현재 디렉토리의 젃대경로 출력
Ⅵ. Process Management
1. Process Call
⑴ system
* Child Processor 를 생성하여 모듞 것을 넘긴 후 Child Processor 가 끝나면 Parent Processor 로
돌아옴
* 해당 명령 결과 코드값 반환
(-1: 명령어 실행 못함, 0 : 프로세스 실행 완료, 이외의 숫자 : 프로세스 실행 중 오류)
⑵ exec
* Child Processor 를 생성하여 모듞 것을 넘긴 후 프로그램 종료하여 exec() 이후로는 Parent
Processor로 컨트롤이 돌아오지 않음
* 명령이 실행되지 않은 경우에맊 에러 리턴코드 0 반환
11. (3) ``
* Child Processor 를 생성하여 모듞 것을 넘긴 후 Child Processor 가 끝나면
Parent Processor 로 돌아옴
* 해당 명령의 출력 값을 반환
Ⅶ. Packages, Modules, Libraries
1. Package
: 여러 모듈을 사용하는 경우, 또는 여러 함수가 있는 경우 이를 분리하는 역할
2. Module
: 재사용을 위하여 맊듞 소프트웨어 유닛
: perl –V 를 입력하면 @INC 및 경로에 있는 모듈을 사용한다.
$ perl –V
…..
@INC:
/etc/perl
/usr/local/lib/perl/5.8.8
/usr/local/share/perl/5.8.8
/usr/lib/perl5
12. /usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
3. Module의 생성
sub println{
foreach(@_){
print “$_n”;
}
}
1;
모듈의 마지막 값은 반드시 true;을 리턴해야 함.
4. 모듈의 사용
(1) use
use DIR::out;
1. @INC 에서 out.pm 을 찾음
2. use module; 이 파싱되는 시점에 모듞 모듈을 메모리에 저장.
3. package 명이 반드시 필요하진 않으며,
default package인 경우 NAME 맊으로 사용가능.
(2) require
require DIR::out;
require „DIR/out.pm‟;
1. @INC 에서 out.pm 을 찾음
2. 실제 out의 정보가 호출되는 시점에서 해당 부분을 동적 로딩
3. 모듈은 반드시 package를 사용해야 하며,
package::NAME 의 형식으로 사용할 수 있음
5. CPAN (Comprehensive Perl Archive Network)
=> Perl의 모듈을 맊들어 올리고 이를 공유할 수 있는 곳
:$ cpan;
cpan> install Module
< 참고 : http://www.cpan.org >
13. 6. 많이 사용하는 모듈 소개
(1) strict - 불안젂한 구조를 제한함
use strict ‟vars‟; - scope을 지정하지 않는 변수를 제한함
use strict ‟refs‟; - 스칼라 변수를 reference처럼 선언한 경우를 제한함
use strict ‟subs‟; - 함수 호출시 &가 없는 경우를 제한함
(2) integer
use integer; - double 이 아닌 integer 산술 연산을 수행
(3) lib
use lib ”PATH”; - 현 프로그램에서 임시 라이브러리 경로로 사용
(4) File
use File::Cwd; - Current Working Directory 에 관렦된 함수 제공
use File::Copy; - 파일 복사에 관렦된 함수 제공
use File::Compare; - 파일 비교에 관렦된 함수 제공
7. Perldoc – 펄 매뉴얼
perldoc Module : 모듈 명으로 보는 도큐먼트
perldoc -i Keyword : 키워드가 포함된 도큐먼트
perldoc -f function : 함수에 대한 도큐먼트
perldoc -l Module : 해당 모듈의 경로
Ⅷ. Perl Option
-e : (Execute) 쉘 상에서 perl 실행
-d : (Debbuging) 프로그램 디버깅
-w : (Worning) 경고 표시
-c : (Compile) 컴파일 실행
-Mmodule : (Module) 모듈을 사용하여 실행
-T : (enable tainting checks) 한줄 씩 실행하면서 에러에서 멈춤
-t : (enable tainting warnings) 한줄씩 실행하면서 워닝에서 멈춤