전체 글: 429개의 글

라즈베리 파이 프로젝트 준비#1 - 스펙 리뷰

Posted by ironmask84
2017. 8. 3. 14:46 나는 프로그래머다!/Sensor



센서 연구개발에 뛰어들게 되어, 기본 도메인 지식이 부족한 저는 라즈베리 파이를 이용해서

기본 도메인 지식도 쌓고 재밌는 프로젝을 진행해보려고 합니다.

의욕이 앞선탓에.. 아직 주제도 선정하지는 않았지만.. 

우선은 프로젝에 적절한 보드와 자재 구입 그리고 개발 환경 구축을 먼저 해보죠!


이에 앞서 간단하게 라즈베리 파이 스펙과 '아두이노' 와의 차이 대해 조금 살펴봤습니다.

살짝 검색해본 결과 이미 3~4년 전부터 유행하기 시작한 것으로 보이네요. ㅎㅎ


그.래.서 인지 이미 아래와 같이 여러 몇가지 모델이 있고, 최신이 3세대 입니다.


(그림 출처 : http://blog.naver.com/kiyeonah/220761250972)



다음으로는 '아두이노' 와의 차이점 입니다.

아두이노는 입출력 단자들이 별로 없는 반면, 라즈베리파이는 입출력 단자들이 많습니다.

아두이노는 입출력 단자가 암,숫놈이 다 보이는데, 라즈베리 파이는 숫놈만 40개네요!

 


 

 


아래는 아두이노는 일반적으로 쓰이는 ATMega328을 쓰고있는 아두이노 우노입니다.

전압 : 5V, 램 : 2k, 플래시메모리 : 32k, 타이머와 Serial, I2C, SPI 등

  


 

 

아두이노는 HW 제어프로그램으로 유일한 Sketch라는 프로그램을 제공해서
인터프리터도 필요없고, 운영체제도, 펌웨어도 필요 없습니다. 

 


 



아래는 라즈베리 파이입니다. 

보드의 소형처리장치(Microprocessor)는 음향, 영상, USB, 이더넷 및 HDMI까지 지원합니다.
통상적인 입출력(GPIO, General Purpose Input/Output) 장치가 있습니다.

리눅스와 같은 운영체제를 설치해서 HW제어가 가능합니다.


 

아두이노는 소형 제어장치(MicroController)라고 하며, 라즈베리파이는 소형 처리장치(MicroProcessor)라고 함

두개 다 명령을 수행하는 중앙처리장치(CPU)가 있고, 타이머(Timer)와, 기억장치(Memory), 입출력 핀(I/O Pin)들이 들어있습니다.

하지만, 가장 큰 차이점이 있는 부분은 입출력 핀입니다.

소형제어장치는 입출력에 강점이 있어서, 외부의 기기를 직접적으로 제어합니다.

하지만, 소형처리장치는 입출력 부분이 약한 경향이 있습니다. 그래서, 트랜지스터가 외부의 기기를 다룹니다. 


위에 설명한 차이점은 여러 블로그에서 동일하게 언급하는 내용인데, 

특히, 연두색 박스로 친 부분에 보면,

소형 제어장치가 입출력에 강점이 있고, 소형처리장치는 입출력에 약하다는게 무슨 뜻인지 정확히 모르겠네요..

추측으로는 단순히, 아두이노는 sketch라는 플랫폼형 프로그램을 이용해서 쉽게 제어프로그램을 만들 수 있다라는
정도의 얘기로만 생각되네요.. (아직 지식이 짧아서.. ^^;)


사실 '아두이노' 도 사용해본적은 없습니다만 검색을 통해 여러 사람들의 후기를 리뷰해보면,

간단하게 IoT, 임베디드 맛만 보고자 하면 아두이노를 쓰지 않을까 조심스럽게 생각해봅니다.

왜냐면 아무래도 Sketch라는 프로그램으로만 제어를 하게되니, 이런저런 제한도 많을 것으로 생각되고,

대중화되어 여러 오픈소스 환경이 구축이 되지 않을 것 같이 생각이 됩니다.


라즈베리 파이의 경우는 OS를 설치하고, 좀 더 여러가지 다양한 SW 라이브러리를 사용 가능하므로

다양한 프로젝트를 구성하기에 적합하지 않을까 합니다.


물론 위의 생각은 어디까지나 저의 생각입니다.

틀린 내용이 있다면 언제나 태클 댓글 환영입니다. ^^

앞으로 프로젝트를 계속 잘 진행해 나가면서,

일부 잘못된 내용들은 수정하고 필요한 내용은 추가해 나가겠습니다. :)


참조 : http://nickoo.tistory.com/93


 

 라즈베리파이 프로젝트

라즈베리파이 프로젝트 실전#1 - LED 컨트롤
라즈베리파이 프로젝트 준비#4 - WIFI 설정
라즈베리파이 프로젝트 준비#3 - OS 설치 및 Putty SSH 접속
라즈베리파이 프로젝트 준비#2-1 - 구성품 리뷰

라즈베리파이 프로젝트 준비#2 - 구입 리뷰

라즈베리 파이 프로젝트 준비#1 - 스펙 리뷰
  





 

쓰레드 함수 (pthread) 알아 보기

Posted by ironmask84
2017. 8. 1. 09:46 나는 프로그래머다!/Linux



저는 쓰레드 프로그래밍을 JAVA언어로 먼저 배웠고, 사용해봤습니다.

흔히, 아래와 같은 예로 개념 이해를 시작하게 됩니다.
은행에 돈 인출을 한 계좌에서 2건이 거의 동시에 일어났을 때 순차적으로 거래가 이뤄지지 않고,
선 거래 건이 이뤄지기 전에 후 거래가 전산적으로 먼저 처리되는 꼬임 ㅋㅋ

아무튼 JAVA로 채팅 프로그램을 만들때 사용해보고,
실기시험을 통한 간단한 예시 정도로만 코딩을 해보고는
실무에서 직접 생성해서 적용하는 걸 거의 못해봤네요 ㅠㅠ
(거의 구현된 것을 디버깅 하는 경우가 많다보니..)

아무튼 그리하여, 이번 기회에 좀 더 이해하고 정리하는 기분으로 글 하나 작성합니다.

리눅스 환경이면 gcc가 있을테니 바로 사용가능하고,
윈도우의 경우 MinGW나 Cygwin을 설치하면 크로스 컴파일이 가능해집니다.

크로스 컴파일 --> http://ironmask.net/298


출처:

http://enst.tistory.com/95 [개발 이야기]



또한 1부터 num까지 세는 Thread는 하나씩 셀 때마다 1000마이크로 초(1ms)를 쉰다
쉬지 않으면 SumThread가 끝나기 전에 CountThread가 끝나버려서 Thread가 제대로 돌아갔는지 알 수 없기 때문이다.

PThread를 사용하려면 pthread.h를 인클루드 시켜줘야 한다.
또한 pthread_t 라는 자료형의 변수와 함수들을 사용해 thread를 제어한다.

pthread_t라는 변수형은 thread의 id를 저장한다.

이 프로그램에서 사용한 함수들은 이렇다.

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);

이 함수는 thread를 생성하는 함수이다.
첫번째 인자는 생성할 thread의 id
두번째 인자는 thread의 특성인데, 보통 NULL을 집어넣는다.
세번째 인자는 thread를 실행할 함수가 온다. thread를 실행할 함수는 포인터 함수이므로 인자값으로 올 수 있다.
네번째 인자는 thread를 실행할 함수에 넣어줄 인자값이 온다. 인자값은 하나지만 여러개의 인자값을 넣어주는 꼼수도 존재한다.(이건 다음에 포스팅)

int pthread_join(pthread_t thread, void **rval_ptr);

이 함수는 main이나 부모 thread에서 자식 thread가 종료할 때까지 대기하는 함수이다. main이나 부모thread가 끝나버리면 자식 thread 또한 종료되기 때문이다.
첫번째 인자는 생성한 thread의 id
두번째 인자는 해당 thread가 종료되면 return받을 변수. 리턴받을 값이 없으면 NULL을 넣으면 된다.

void pthread_exit(void *rval_ptr);


이 함수는 thread를 종료할 때 사용한다.
첫번째 인자는 thread를 종료하고 pthread_join() 함수 두번째 인자에 리턴할 변수. 리턴할 값이 없으면 NULL을 넣으면 된다.

pthread_t pthread_self(void)

이 함수는 실행하고 있는 thread의 id를 리턴한다.


또한 gcc에서 PThread를 사용할 소스를 컴파일 할때 맨 뒤에 -lpthread 명령어를 붙여줘야 한다.





이런식으로
MinGW로 컴파일 할때도 마찬가지.

아래는 소스.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h> 
#include <stdlib.h> 
#include <pthread.h> 
 
void *CountThread(void *); 
void *SumThread(void *); 
 
int main(void
int num; 
int result[2]; 
int i, rc; 
pthread_t threads[2]; 
 
printf("input number : "); 
scanf("%d"&num); 
 
pthread_create(&threads[0], NULL&CountThread, (void *)&num); //Count를 할 Thread함수를 threads[0]에서 실행(인자값은 num) 
pthread_create(&threads[1], NULL&SumThread, (void *)&num); //Sum을 구할 Thread함수를 threads[1]에서 실행(인자값은 num) 
 
for(i = 0; i < 2; i++
rc = pthread_join(threads[i], (void **)&result[i]); 
 
if(rc != 0//rc가 0이 아니면 오류 발생 
printf("Error in thread[%d] : %d\n", i, rc); 
exit(1); 
 
printf("Result of CountThread : %d\n", result[0]); 
printf("Result of SumThread : %d\n", result[1]); 
 
return 0
 
void *CountThread(void *arg) 
int i; 
int num = *(int *)arg; //인자값을 사용해야할 때마다 일일이 void* 포인터에서 int* 포인터로 바꿔줘야 해서 귀찮아지므로 그냥 변수를 하나 만들어서 인자값을 넣어줌 
 
for(i = 1; i <= num; i++
printf("In CountThread(0x%lx) : %d\n", pthread_self(), i); 
usleep(1000); 
 
printf("CountThread End\n"); 
pthread_exit(NULL); //인자값을 return하고 Thread함수 종료 
 
void *SumThread(void *arg) 
int result, i; 
int num = *(int *)arg; 
 
for(result = 0, i = 1; i <= num; i++
result += i; 
 
printf("SumThread End\n"); 
pthread_exit((void *)result); //인자값을 return하고 Thread함수 종료(인자값이 void형 포인터로 들어가므로 void형 포인터로 형변환) 
 
 

cs


좀 더 간단한 예시

- 아규먼트를 사용하지 않는 함수의 경우

- arg에 NULL 을 삽입하여 생성

- 아규먼트를 받는 함수의 경우

-arg를 통해 아규먼트를 함께 넘겨주어야 함

void *

- pthread_create 함수 타입

- 아규먼트/반환 타입이 void * 인 함수를 실행

- void * 인 이유

- void * 는 주로 임의의 data type을 가리키는 용도로 사용

- 임의의 data type을 아규먼트/반환 값으로 넘겨줄 수 있음

단일 아규먼트 전달

- 아규먼트로 정수 n을 받고 0 ~ n-1 의 숫자를 출력하는 경우

- pthread_create의 마지막 아규먼트 사용(void * 로 integer 변수를 가리킴)

- main 스레드의 경우

- 아규먼트(n)를 가리키는 포인터 설정

- 포인터를 아규먼트로 넘김  

ex) Main 함수의 n 값을 아규먼트로 받아 Thread에서 0 ~ n 까지의 값을 출력

출처: http://ypangtrouble.tistory.com/70 [끄적끄적 소소한 일상]



참고:

http://underresearch.blogspot.kr/2013/05/pthread-thread.html

http://www.joinc.co.kr/w/Site/Thread/Beginning/PthreadApiReference#AEN226

http://www.morenice.kr/75

http://www.joinc.co.kr/w/Site/system_programing/Book_LSP/ch07_Thread

http://m.blog.naver.com/cky5122/80198083088

http://www.joinc.co.kr/w/Site/Thread/Beginning/PthreadApiReference#AEN226

https://kldp.org/node/93835

http://blog.naver.com/rbosc/90016327317





 

다시 주목받는 Bluetooth 통신 BLE Beacon

Posted by ironmask84
2017. 7. 28. 11:42 컴퓨터공학/통신 기술


BLE(Bluetooth Low Energy)란?         

 

Bluetooth는 주변에서 자주 접하는 무선 통신 방법 중 스마트폰, 마우스, 이어폰 등 여러 방면에서 사용 되는 근거리 무선 통신방법의 하나로, Bluetooth v4.0기준 2가지 기술로 구분하고 한다.

– Bluetooth Classic

– Bluetooth Smart (BLE)

– Bluetooth Smart Ready(Classic and Smart)


출처 : http://www.Bluetooth.com

Bluetooth Classic은 데이터 스트리밍, 대용량의 데이터 전송 서비스를 지원하며 최대 데이터 전송률과 전력소모가 높다는 특징을 갖고 있어 적은 용량의 배터리 사용 및 작은 데이터 전송을 사용 하는 분야에서 약점을 갖고 있다. 이를 보안하기 위해 등장한 기술이 Bluetooth Smart 또는 BLE라 불리는 경량화된 Bluetooth v4.0 기술이다.



출처 : http://verticalplatform.kr/archives/2010

Beacon과 BLE(Bluetooth Low Energy)

Apple과 Paypal이 최근 공개한 BLE 방식의 Beacon 방식은 아니지만 두 사업자들 보다 먼저 Beacon을 이용해 솔루션을 구축한 사업자가 있다. Local Commerce의 구세주라 불리우는 Shopkick이다. Shopkick은 저주파 Sound Beacon을 통해 자동체크인 기능을 중심으로 모바일 리워드 서비스를 제공며 약 3년간  500만 명의 가입자를 확보하는 등 성공가도를 달리고 있다. 이미 Beacon을 이용해 성공한 사업자가 있었음에도 불구하고 최근 Beacon이 주목을 받는 것일까? 그 첫번째 이유로 BLE 기술을 꼽을 수 있다. 

Bluetooth 기술은 1994년 Ericsson의 무선 개발 연구를 기반으로해 1998년 Ericsson, Nokia, Tosiba, IBM, Intel 등이 참여해 조직한 Special Interest Group에 의해 개발되었다. 2010년 6월 30일에 채택된 Blutooth4.0이 가장 최신 버전 이며, Bluetooth4.0은 기존의 버전과 다른 주요 특이점을 가지고 있는데 동전 크기만한 전지만으로 1년 이상 Device를 사용할 수 있을 정도로 저전력의 장점을 가지고 있다. 또한 2011년 말에 Bluetooth Smart와 센서를 위한 Bluetooth Smart가 BLE의 새로운 로고로 선보였다. 또한 이전 Bluetooth 버전의 경우 Slave 기기가 7대 까지만 가능했으나 Bluetooth 4.0부터는 무제한 동기화가 가능하게 되었다.

Shopkick의 Sound Beacon과 비교해 기기의 소형화, 저전력화, 그리고 벽과 같은 물리적인 환경 요인의 영향이 적은 Bluetooth 의 장점들으로 인해 Apple과 Paypal은 BLE를 선택한 것으로 판단된다. 이미 이러한 장점들로 인해 다양한 IoT 제품들이 대부분 Bluetooth를 적용하고 있다.

 

Beacon과 NFC (Payment & 위치측위)

Google은  NFC 기반 Wallet 서비스를 통해 Local Commerce Redemption Loop를 닫고자 했으나 이해관계자 간의 불화와 동글 보급에 대한 문제 등으로 인해 현재까지 결제 또는 전자태그를 이용한 정보를 읽는 수준의 서비스만이 제공되고 있다. 최근 Google이 Cloud 기반의 Google Wallet 서비스를 지원함에 따라 NFC의 종말을 암시하는 것이 아니냐는 목소리가 힘을 얻고 있다. 이런 상황속에 Paypal과 Beacon을 이용한 결제 서비스를 공개 함에 따라 모든 이들이 BLE Beacon에 주목하게 만들었다. Apple 역시 결제와 연계한 실내 위치 측위 기반의 플랫폼이 iBeacons를 내놓음에 따라 Beacon은 더욱 주목을 받을 수 밖게 없는 분위기다.

BLE Beacon은 NFC와 비교해 전송거리가 10~50 미터 까지 넓기 때문에 위치측위 기능을 통한 마케팅 플랫폼과 결제 서비스를 통합해 제공할 수 있는 우위를 가지고 있다. 뿐만 아니라 BLE Beacon은 NFC 보다 이해관계자가 적어 Local Commerce Redemption Loop를 닫을 수 있는 Key Man이 되지 않을 까하는 기대를 모으고 있다. (Redemption Loop에 대한 자세한 내용이 알고 싶으면 9월 28일에 올라온  "커머스 플랫폼의 성공, 'Redemption Loop'를 닫는데 달렸다."  참조)

 

개방성으로 인한 잠재력

Beacon으로서 Apple의 iBeacons이 Shopkick과 비교해 더 주목을 받는 이유는 3rd Party 개발자들(ex. Estimote, Roximity 등)의 참여로 다양한 풍부한 애플리케이션이 개발되고 이를 다시 스마트폰 이용자가 이용하게 되는 생태계를 구축했다는 점이다. 또한 Passbook 역시 iBeacons 생태계와 통합되어 Passbook에 저장된 티켓 또는 쿠폰 등이 iBeacons을 통해 좀더 정교한 위치 기반으로 Alert 기능을 제공할 것으로 보인다. Shopkick의 솔루션이 3rd Party 개발자를 포함해 생태계를 구축한다면 현재 단계에서 1단계 Quantum Jump를 할 수 있는 기회를 마련 할 수도 있지 않을까라는 개인적인 생각을 해본다.





'컴퓨터공학 > 통신 기술' 카테고리의 다른 글

LAN과 WAN 그리고 Ethernet  (2) 2017.08.08
최신 WiFi 기술 어디까지 왔나?  (0) 2017.07.28
cdma 1x, cdma 1x evdo, wcdma 간단 비교  (0) 2010.12.02
CDMA 1x EVDO의 정의  (0) 2010.12.02
CDMA2000 1X EVDO의 비교  (0) 2010.12.02
cdma2000 1x EVDO의 초간단 정의  (0) 2010.12.02
 

최신 WiFi 기술 어디까지 왔나?

Posted by ironmask84
2017. 7. 28. 09:36 컴퓨터공학/통신 기술


현재 세상에서는 여러 무선 통신 규격이 존재합니다.
그 중 WiFi 의 동향에 대해 간략하게 소개합니다. ^^



우리 생활에 통신 기술이 발전해온 과거를 조금 되짚어 보겠습니다.. (제 인생 기준 ^^)

1990년대는 모뎀을 이용한 PC통신이 한창 유행이었습니다. (하이텔, 나우누리, 천리안 등)

2000년대 들어서면서 광케이블을 이용한 초고속 유선 인터넷을 통해 인터넷이 보급화 되기 시작했습니다.

2005년 쯤일까요 데스크탑이나 노트북에 사용되는 블루투스를 이용한 무선 마우스, 무선 키보드가 보이기 시작했고,

2007년에는 아이폰이 등장하면서 WiFi을 이용한 무선인터넷, 블루투스를 이용한 오디오 송수신이 활성화 되기 시작합니다.

2009년에 아이폰이 국내 통신사를 통해 정식으로 보급되면서 WiFi와 블루투스 라는 기술은 빠르게 확산되고 인식됩니다.
             이때, 스마트폰이라는 용어가 나돌기 시작합니다.

2010년 이후, 무선통신을 이용한 제품들이 쏟아져 나오기 시작합니다. 
          무선 스피커, 무선 헤드폰, TV 무선연결, 자동차에 접목, 가전제품 접목을 통한 홈네트워크 등
          기존에 있던 제품들에 이러한 무선통신이 탑재됩니다.

그리고 언제부턴가 유비쿼터스라는 용어가 나돌더니, 요즘은 IoT 라는 용어가 나돌기 시작합니다. ㅋㅋ
크게는 둘다 비슷한 뜻으로 어디서든 통신이 이루어지는 세상이 그려지네요.

최근 센서 관련 연구개발에 발을 들여놓게 되어서 무선통신에 다시 관심이 쏟기 시작하는 요즘입니다.


서론이 길었네요..ㅋㅋ WiFi 기술이 발전해온 로드맵은 아래와 같습니다.



최근에는 슈퍼와이파이로 불리는 802.11af의 경우,  54~790MHz사이의 VHF와 UHF에서 TV 화이트 스페이스(TVWS)에서 무선인터넷을 가능하게 하는 무선표준기술입니다.  기존무선보다 도달거리가 3배이상 높고, 투과율은 9배, 커버리지 면적은 16배에 달하는 것으로 알려져있습니다.



                                     [TTA 저널 제공]



 

                                    [TTA 저널 제공] 



아래는 최근 WiFi 이용 동향에 관한 기사입니다.



http://www.etnews.com/20161117000312



http://www.datanet.co.kr/news/articleView.html?idxno=107039

출처 : http://unjerry.blog.me/220991647323



 

수영 훈련 기록 #2 - 접영까지 마치며..

Posted by ironmask84
2017. 7. 24. 23:02 생각과 일상/오늘의 일상


2월 부터 수영을 시작하여 자유영 50m를 5월 말쯤 한 번에 돌파 성공하고,

링크 : http://ironmask.net/320

이어서 6월 동안 이번엔 접영까지 마무리 하고 2번째 기록을 남깁니다. ^^

접영이 어렵다고 하여 1달만에 어느정도 익힐 수 있을까 걱정했는데, 
무난하게 가능하게 되었습니다!!

확실히 자유영, 평영보다 재밌는 느낌입니다.
물론 자유영보다 더 힘이 들긴 합니다..
자유영이 숨이 차는 느낌이라면, 접영은 근육에 먼저 지치는 느낌이네요.

수영 수업엔 사람 수가 많아서 지도 받는 시간이 적은데,
이를 커버하기 위해 종종 자유수영 연습하러 나온 것이 빨리 익히는데 유효 했습니다.

그리고 유투브에 많은 수영 교육 영상이 있는데, 그 중에 이현진씨 영상을 추천합니다. ^^
자유영 부터 접영까지 step by step 으로 꽤 꼼꼼하게 설명해줘요~


5개월 과정 동안 실질적으론 4개월 반정도 참석해서
자유영, 배영, 평영, 접영 4가지 다 터득한 성취감이 있네요 ^^

대단한 것은 아니지만, 수영 배우면서 나름 익히는데 도움 된 팁을 나누고자 합니다.
5개월차 초보이지만, 이제 막 배우는 분들에겐 조그만 팁이 되길 바라며..

1. 수경을 착용 후, 가운데를 눌러 압착 시킨다.

2. 다리를 뻗고, 무릎을 굽히지 않고, 허벅지 힘으로만 물을 튀긴다.

    --> 이때, 발목이 자연스레 구부렷다, 펴졌다 된다.

3. 허벅지 힘으로 하되, 빠르게 보다 일단 동작을 크게 하도록 하자.

4. 팔돌리기 할 때, 팔을 쭉 뻗으면서 어깨를 내리는 동시에 팔에 머리를 붙이고 호흡을 빠르게 한다.

5. 허벅지가 빨리 힘들어지면, 발차기 연습 더 필요 ㅜㅜ

6. 평영 시, 다리를 접은 후 모아줄 때 발목을 접은채로 가다가 쭉 펼 때 발목도 펴주면서 차렷자세

           그리고 모아줄때 빨리 차렷자세로 모아줘야 한다.

           팔은 물위로 많이 안나오도록 움직인다.  팔을 모아줄때 쭉 밀어주면서 나가야 한다.

7. 배영 시, 턱을 밑으로 붙인다.  호흡을 잘하는지 체크 

           팔은 손목을 꺾으면서 돌려야 자연스럽게 손바닥이 물을 밀어내면서 잘 나갈 수 있다.

           고급과정으로 팔을 올릴때 사선으로(대각선 45도 정도)로 연속으로 계속 프로펠러처럼 저으면 더 빠르다.

8. 접영 시, 웨이브 타면서 팔을 쭉펴서 올라갈 때 팔이 머리보다 위에 있어야 하고, 

           웨이브를 깊게 타지 않아야 올라간 팔을 내리는 동시에 킥을 뻥하고 차줘야 상체가 좀 쉽게 올라가면서 팔을 올릴 수 있다.

9. 공통적으로

   발차기 시, 자연스레 무릎이 조금씩 구부렷다 펴진다 한다.

   숨쉬기 시, 물에 들어가서 조금 멈춰있다가, 코로 내쉬면서 얼굴을 들어 숨을 다 내쉬고 들이쉰다.

   수영폼으로 뻗어있다가, 팔을 쭉편채로 내리고 다리는 가슴쪽으로 구부려 모으면 자연스레 일어나진다.