반응형
반응형
반응형

MS 파워포인트용 목업디자인 플러그인 파워목업(PowerMockup)을 소개 합니다.

MS Office 제품 중 Powerpoint 제품에 설치되는 플러그인 형식의 제품 입니다.

 

요즘은 웹디자인 일을 하지는 않지만, 웹페이지 개발을 의뢰할 경우가 종종 있습니다.

프로그래머와 일을 진행하거나 웹페이지 기획이 필요한 경우 레이아웃 작업에 손이 상당히 많이 갑니다.

 

간단하게 박스 몇개 그리는 일이니 단순해 보이기는 하지만 막상 파워포인트로 작업을 시작하면, 은근히 박스하나, 버튼하나 그리는 일이 부담으로 다가 옵니다. 이런 분들에게 희소식이 될 파워목업(PowerMockup) 플러그인을 소개 합니다.

 

 

공식 홈페이지는

https://www.powermockup.com 이며, TRIAL버젼을 다운로드 받아 사용하실 수 있습니다.

 

약 800개 이상의 UI 개체를 제공하고 있으며, 단순한 도형이 아니라 크기 변화에 따라 레이아웃이 조정되는 파워포인트 도형으로 인식 됩니다.

 

 

 

 

 

 

빠른검색기능 제공

 

800개가 넘는 와이어프레임이 각 카데고리별로 분류되어 제공되지만 일일이 찾기는 버거울 수 있습니다. 파워목업은 상단에 각 모양을 검색해서 사용할 수 있습니다.

 

 

 

 

.

 

 

 

 

드래그 앤 드롭

 

우측창에 보이는 모양은 단순히 슬라이드에 드래그 하는 것으로 바로 사용할 수 있습니다.

 

 

 

사용자 커스텀 도형기능

 

사용자가 제작한 도형을 마우스 오른쪽버튼을 클릭하면 [ Add to PowerMokup ] 메뉴가 나타나면서 파워목업에 모양을 등록해서 사용할 수 있습니다. 자주 사용하는 모양을 여러 시트에 바로 적용할 수 있겠습니다.

 

 

 

스마트 모양 기능

 

드롭다운 메뉴 등 텍스트 수정이 필요한 모양을 삽입하면 내용을 수정할 수 있는 창이 제공되어 손쉽게 텍스트 내용을 수정할 수 있습니다.

 

 

 

안드로이드 OS 템플릿

 

 

 

애플 iOS 템플릿

 

 

모바일 앱 개발을 위한 목업 템플릿 또한 공식 인터페이스 가이드라인에 맞춰 제공되고 있습니다.

 

 

 

추가 템플릿은 온라인으로 다운로드 하여 사용할 수 있습니다.

 

 

 

위의 이미지는 제가 이번에 홈페이지제작 기획을 하면서 회원가입 페이지 레이아웃을 프로그래머에게 전달하기 위해 파워목업(PowerMockup)을 사용하여 제작한 슬라이드 입니다. 간단한 레이아웃이지만, 일일이 작업하면 시간이 많이 소요됐을텐데, 파워목업을 다운로드 받아 2-3분 만에 레이아웃을 완성할 수 있었습니다.

 

파일포맷이 파워포인트 파일(*.ppt, *.pptx)로 저장되니, 제작된 슬라이드는 파워목업이 설치되지 않은 PC에서도 열어서 수정할 수 있습니다. 웹페이지나, 모바일페이지, 애플리케이션 개발등을 하시는 분들에게 상당히 유용한 플러그인이 될것 같습니다.

 

블로그를 사용하시는 분은 포스팅을 하면 무료 라이센스키를 제공 해 준다고 하네요..

크랙이나 키젠을 찾는 것 보다, 포스팅을 통해 무료 정식 라이센스키를 받아 사용 해 보시는 것이 좋을 것 같습니다.

https://www.powermockup.com/order/free-license

 

담당자에게 '이름', '블로그 포스팅 주소'를 보내니 금방 라이센스 코드를 보내주시는군요... ^^

유용하게 잘 사용할 수 있을것 같네요... ^^

반응형
반응형
import numpy as np

perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0,
       21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7,
       23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5,
       27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0,
       39.0, 39.0, 39.0, 40.0, 40.0, 40.0, 40.0, 42.0, 43.0, 43.0, 43.5,
       44.0])
perch_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80.0, 85.0, 85.0, 110.0,
       115.0, 125.0, 130.0, 120.0, 120.0, 130.0, 135.0, 110.0, 130.0,
       150.0, 145.0, 150.0, 170.0, 225.0, 145.0, 188.0, 180.0, 197.0,
       218.0, 300.0, 260.0, 265.0, 250.0, 250.0, 300.0, 320.0, 514.0,
       556.0, 840.0, 685.0, 700.0, 700.0, 690.0, 900.0, 650.0, 820.0,
       850.0, 900.0, 1015.0, 820.0, 1100.0, 1000.0, 1100.0, 1000.0,
       1000.0])


import matplotlib.pyplot as plt
plt.scatter(perch_length, perch_weight)
plt.xlabel('length')
plt.ylabel('weight')
plt.show()

 

반응형
반응형
반응형
# 데이터 준비
fish_length = [25.4, 26.3, 26.5, 29.0, 29.1, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]
fish_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0, 500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0, 700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0, 6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]

import numpy as np
np.column_stack(([1, 2, 3], [4, 5, 6]))

fish_data = np.column_stack((fish_length, fish_weight)) # numpy를 이용하여 튜플로 구성

print(fish_data[:5])
print(np.ones(5)) # 1로 되어 있는것 5개 출력
fish_target = np.concatenate((np.ones(35), np.zeros(14))) #1로 되어 있는 35개, 0으로 되어 있는 14개 데이터 합치기
print(fish_target)
from sklearn.model_selection import train_test_split # train_test_split 함수 import
train_input, test_input, train_target, test_target = train_test_split(fish_data, fish_target, random_state=42) # 랜덤 State를 42로 섞어서, 데이터 구분
print(train_input.shape, test_input.shape)
print(train_target.shape, test_target.shape)
print(test_target)
train_input, test_input, train_target, test_target = train_test_split(fish_data, fish_target, stratify=fish_target, random_state=42) # Stratify는 구분 기준
print(test_target)
# 수상한 도미 한마리
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()
kn.fit(train_input, train_target)
kn.score(test_input, test_target)
kn.predict([[25, 150]]) # 빙어라고 판단하네??
import matplotlib.pyplot as plt
plt.scatter(train_input[:,0], train_input[:,1])
plt.scatter(25, 150, marker='*')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
distances, indexes = kn.kneighbors([[25, 150]])
plt.scatter(train_input[:,0], train_input[:,1], marker='^')
plt.scatter(25, 150, marker='*')
plt.scatter(train_input[indexes, 0], train_input[indexes, 1], marker='D') # 근접인 클래스 다르게 표시
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
print(train_input[indexes]) # 근접 5개 중 4개가 빙어
print(distances) # 이웃 샘플까지의 거리
plt.scatter(train_input[:, 0], train_input[:, 1])
plt.scatter(25, 150, marker='^')
plt.scatter(train_input[indexes, 0], train_input[indexes, 1], marker='D')
plt.xlim((0, 1000))
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
mean = np.mean(train_input, axis=0) # 평균 계산
std = np.std(train_input, axis=0)   # 표준편차 계산

print(mean, std)
train_scaled = (train_input - mean) / std  # 표준점수 계산(train_input의 모든 값을 대상으로 평균을 빼고, 표준 편차를  나누어 표준점수 환산)

print(train_scaled)
# 전처리 데이터로 모델 훈련하기
plt.scatter(train_scaled[:, 0], train_scaled[:, 1]) # 평균값 표시
plt.scatter(25, 150, marker='^') # 그냥 값 표시
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
new_target = ([25, 150] - mean) / std
plt.scatter(train_scaled[:, 0], train_scaled[:, 1]) # 평균값 표시
plt.scatter(new_target[0], new_target[1], marker='^') # 그냥 값 표시
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
kn.fit(train_scaled, train_target) # 평균값으로 다시 학습, train_target 동이, 빙어 구분값은 변동 없음
test_scaled = (test_input - mean) / std #
kn.score(test_scaled, test_target)
print(kn.predict([new_target]))
distances, indexes = kn.kneighbors([new_target])
plt.scatter(train_scaled[:, 0], train_scaled[:, 1])
plt.scatter(new_target[0], new_target[1], marker='^')
plt.scatter(train_scaled[indexes, 0], train_scaled[indexes, 1], marker='D')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
반응형
반응형
반응형
# 훈련 데이터 준비
fish_length = [25.4, 26.3, 26.5, 29.0, 29.1, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]
fish_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0, 500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0, 700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0, 6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]

fish_data = [[l, w] for l, w in zip(fish_length, fish_weight)] # fish_length 와 fish_weight 2차원 리스트로 만들기
fish_target = [1]*35 + [0]*14

from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()

print("fish_data[4] => ", fish_data[4])
 
print("fish_data[0:5] =>", fish_data[0:5])
 
print("fish_data[:5] =>", fish_data[:5])
 
print("fish_data[44:] =>", fish_data[44:])
 
# 훈련 세트로 입력값 총 0부터 34번째 인덱스까지 사용
train_input = fish_data[:35]

# 훈련 세트로 타겟값 총 0부터 34번째 인덱스까지 사용
train_target = fish_target[:35]

#테스트 세트로 입력값 중 35번째부터 마지막 인덱스까지 사용
test_input = fish_data[35:]

#테스트 세트로 타겟값 중 35번째부터 마지막 인덱스까지 사용
test_target = fish_target[35:]
 
kn.fit(train_input, train_target) # 도미로 학습하고
kn.score(test_input, test_target) # 빙어로 평가하니 0이 나오지
 
import numpy as np
input_arr = np.array(fish_data)
target_arr = np.array(fish_target)

print(input_arr) # 2차원 배열로 변경을 위한 numpy 라이브러리 사용
 
print(input_arr.shape) # 이 명령을 사용하면 (샘플 수, 특성 수)를 출력
 
print(input_arr.shape[1])
 
np.random.seed(42) # 랜덤값 발생을 위한 초기값 설정, 이건 빼는게 맞음
index = np.arange(49) # 49까지 인덱스 생성
#print(index)
np.random.shuffle(index) # 49개 인덱스 섞기
#print(index)

print(input_arr[[1,3]]) # 1번과 3번의 인덱스의 값 출력

train_input = input_arr[index[:35]]   # 0~35번까지의 랜덤한 인덱스로 input_arr에서 꺼내서 train_input에 넣기
train_target = target_arr[index[:35]] # 0~35번까지의 랜덤한 인덱스로 target_arr에서 꺼내서 train_target에 넣기
#print(input_arr[13], train_input[0])
 
test_input = input_arr[index[35:]]   # 35번부터 끝까지의 랜덤한 인덱스로 input_arr에서 꺼내서 test_input에 넣기
test_target = target_arr[index[35:]] # 35번부터 끝까지의 랜덤한 인덱스로 input_arr에서 꺼내서 test_input에 넣기
 
# 섞인값 출력해보기
import matplotlib.pyplot as plt
plt.scatter(train_input[:,0], train_input[:,1]) # train_input[:, 0] => train_input에서 0번째 값 전체
plt.scatter(test_input[:,0], test_input[:,1])   # test_input[:, 0] => train_input에서 0번째 값 전체
plt.xlabel('length')
plt.ylabel('weight')
plt.show() # 파란색이 훈련 세트, 주황색이 평가 세트
 
kn.fit(train_input, train_target)
kn.score(test_input, test_target)
 
kn.predict(test_input) # 정답 예측
 
print(test_target)
반응형

'머신러닝 > 혼자공부하는 머신러닝+딥러닝' 카테고리의 다른 글

3-1. K- 최근접 이웃 회귀  (0) 2024.01.08
2-2. 데이터 전처리  (0) 2024.01.08
1-3. 마켓과 머신러닝  (2) 2024.01.08
반응형
반응형
# 도미 데이터 준비
bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0]
bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0, 500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0, 700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0]

import matplotlib.pyplot as plt #matplotlib의 pyplot 함수를 plt로 줄여서 사용

plt.scatter(bream_length, bream_weight)
plt.xlabel('length') # x축은 길이
plt.ylabel('weight') # y축은 무게
plt.show()
 
# 빙어 데이터 준비
smelt_length = [9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]
smelt_weight = [6.7, 7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7, 19.9]

plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
 
length = bream_length + smelt_length # 도미와 빙어의 길이를 length로 합치기
weight = bream_weight + smelt_weight # 도미와 빙어의 무게를 weight로 합치기

fish_data = [[l, w] for l, w in zip(length, weight)] # length 와 weight를 2차원 리스트로 만들기

print(fish_data)
 
fish_target = [1] * 35 + [0] * 14 # 35개의 1과 14개의 0의 리스트 만들기
print(fish_target)
 
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()

# 동일한 코드
# import sklearn
# kn = sklearn.neighbors.KNeighborsClassfier

kn.fit(fish_data, fish_target) # 훈련

kn.score(fish_data, fish_target) # 평가
 
 
# k-최근접 이웃 알고리즘
plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
plt.scatter(30, 600, marker='*')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
 
kn.predict([[30, 600]]) # 정답 예측 - 도미
kn.predict([[10, 100]]) # 정답 예측 - 빙어
print(kn._fit_X)
print(kn._y)
 
 
kn49 = KNeighborsClassifier(n_neighbors=49) # 참고 데이터를 49개로 한 kn49 모델
kn49.fit(fish_data, fish_target)
kn49.score(fish_data, fish_target)
 
kn20 = KNeighborsClassifier(n_neighbors=20) # 참고 데이터를 4개로 한 kn49 모델
kn20.fit(fish_data, fish_target)
kn20.score(fish_data, fish_target)

 

반응형
반응형

p.71 : 상대강도지수(relative strength index, RSI)는 시장이나 개별 주식이 과매수상태인지 또는 과매도 상태인지 판단하는데 도음을 주는 지표이다. 보통 상대강도지수가 70을 초과하면 과매수 상태로 보고, 30 미만이면 과매도 상태 본다

반응형
반응형

파일 위치와 기능

기본 설정파일 위치 : /etc/httpd/conf/httpd.conf

그 밖의 추가 애플리케이션 설정 위치 : /etc/httpd/conf.d/ (php.conf, phpmyadmin.conf, ssl.conf 등이 위치하게 된다)

로그 파일 위치 : /etc/httpd/logs -> /var/log/httpd 링크되어 있다.

모듈 위치(64비트) : /etc/httpd/modules -> /usr/lib64/httpd/modules 링크되어 있다.

프로세스의 PID 저장위치 : /etc/httpd/run -> /var/run/httpd 링크되어 있다.

기본 홈페이지 위치 : /var/www/html

CGI 파일들이 실행될 위치 : /var/www/cgi-bin

에러코드별 에러파일 위치 : /var/www/error

이미지아이콘 파일들 위치 : /var/www/icons

BASH

ls -la /etc/httpd 합계 16 drwxr-xr-x 4 root root 4096 2013-07-08 20:30 . drwxr-xr-x. 64 root root 4096 2013-07-08 15:39 .. drwxr-xr-x 2 root root 4096 2013-07-08 23:44 conf drwxr-xr-x 2 root root 4096 2013-07-08 22:56 conf.d lrwxrwxrwx 1 root root 19 2013-07-03 23:59 logs -> ../../var/log/httpd lrwxrwxrwx 1 root root 29 2013-07-03 23:59 modules -> ../../usr/lib64/httpd/modules lrwxrwxrwx 1 root root 19 2013-07-03 23:59 run -> ../../var/run/httpd

BASH

ls -la /var/www 합계 24 drwxr-xr-x 6 root root 4096 2013-07-03 23:59 . drwxr-xr-x. 18 root root 4096 2013-07-03 23:59 .. drwxr-xr-x 2 root root 4096 2013-05-14 07:12 cgi-bin drwxr-xr-x 3 root root 4096 2013-07-03 23:59 error drwxr-xr-x 2 root root 4096 2013-07-05 01:24 html drwxr-xr-x 3 root root 4096 2013-07-04 00:42 icons

프로세스

Apache의 프로세스들은 root 소유의 부모 프로세스 하나와 그 이하의 자식 프로세스로 구성된다. 즉, PID가 2090인 프로세스에 의해 모든 Apache 자식 프로세스들을 fork 시켜서 생성한 것이며 초기에는 8개만 생성하였지만 상황에 따라서 Apache 자식 프로세스들을 더 생성하기도 하고 줄이기도 한다. 이 역할을 하는 것이 2090 PID를 가진 프로세스의 역할이다.

BASH

ps -ef | grep httpd root 2090 1 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2092 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2093 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2094 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2095 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2096 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2097 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2098 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd nobody 2099 2090 0 08:03 ? 00:00:00 /usr/sbin/httpd root 2106 1544 0 08:04 pts/0 00:00:00 grep httpd

명령어

yum을 이용한 패키지설치를 하였다면 Apache와 관련된 명령어들이 /usr/sbin에 자동으로 설치된다. /usr/sbin은 PATH설정이 되어 있는 곳이다.

BASH

rpm -ql httpd | grep /usr/sbin /usr/sbin/apachectl /usr/sbin/htcacheclean /usr/sbin/httpd /usr/sbin/httpd.event /usr/sbin/httpd.worker /usr/sbin/httxt2dbm /usr/sbin/rotatelogs /usr/sbin/suexec

현재 상태 확인

BASH

service httpd status httpd (pid 2090)를 실행하고 있습니다..

설정파일 검사

BASH

httpd -t Syntax OK

모듈 적재 방식

DSO(Dynamic Shared Object)방식으로 모듈이 컴파일 되었는가 확인. mod_so.c 가 등록되어 잇다면 DSO방식으로 설치된 것이다.

BASH

httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c

컴파일 환경

prefork 방식에 64bit APR util 버전등을 알수 있다.

BASH

httpd -V Server version: Apache/2.2.15 (Unix) Server built: May 13 2013 22:11:16 Server's Module Magic Number: 20051115:25 Server loaded: APR 1.3.9, APR-Util 1.3.9 Compiled using: APR 1.3.9, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"

출처: https://webdir.tistory.com/177 [WEBDIR]

반응형

'Linux > 서버' 카테고리의 다른 글

CentOS, FTP 설치해보기  (0) 2017.01.10
CentOS, FTP 정리  (0) 2017.01.10
스트리밍 서버구축(DSS 사용)  (0) 2015.12.28
스트리밍 서버구축(DDS 설치)  (0) 2015.12.28
스트리밍 서버구축(RED5)  (0) 2015.12.28

+ Recent posts