겸손한 개발을 위한 자양분

http://msdn.microsoft.com/en-us/library/ms632595(VS.85).aspx


WM_ACTIVATEAPP

The WM_ACTIVATEAPP message is sent when a window belonging to a different application than the active window is about to be activated. The message is sent to the application whose window is being activated and to the application whose window is being deactivated.

A window receives this message through its WindowProc function.

WM_CANCELMODE

The WM_CANCELMODE message is sent to cancel certain modes, such as mouse capture. For example, the system sends this message to the active window when a dialog box or message box is displayed. Certain functions also send this message explicitly to the specified window regardless of whether it is the active window. For example, the EnableWindow function sends this message when disabling the specified window.

A window receives this message through its WindowProc function.

WM_CHILDACTIVATE

The WM_CHILDACTIVATE message is sent to a child window when the user clicks the window's title bar or when the window is activated, moved, or sized.

A window receives this message through its WindowProc function.

WM_CLOSE

The WM_CLOSE message is sent as a signal that a window or an application should terminate.

A window receives this message through its WindowProc function.

WM_COMPACTING

The WM_COMPACTING message is sent to all top-level windows when the system detects more than 12.5 percent of system time over a 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low.

A window receives this message through its WindowProc function.

Note  This message is provided only for compatibility with 16-bit Windows-based applications.

WM_CREATE

The WM_CREATE message is sent when an application requests that a window be created by calling the CreateWindowEx or CreateWindow function. (The message is sent before the function returns.) The window procedure of the new window receives this message after the window is created, but before the window becomes visible.

A window receives this message through its WindowProc function.

WM_DESTROY

The WM_DESTROY message is sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed after the window is removed from the screen.

This message is sent first to the window being destroyed and then to the child windows (if any) as they are destroyed. During the processing of the message, it can be assumed that all child windows still exist.

A window receives this message through its WindowProc function.

WM_ENABLE

The WM_ENABLE message is sent when an application changes the enabled state of a window. It is sent to the window whose enabled state is changing. This message is sent before the EnableWindow function returns, but after the enabled state (WS_DISABLED style bit) of the window has changed.

A window receives this message through its WindowProc function.

WM_ENTERSIZEMOVE

The WM_ENTERSIZEMOVE message is sent one time to a window after it enters the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns.

The system sends the WM_ENTERSIZEMOVE message regardless of whether the dragging of full windows is enabled.

A window receives this message through its WindowProc function.

WM_EXITSIZEMOVE

The WM_EXITSIZEMOVE message is sent one time to a window, after it has exited the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns.

A window receives this message through its WindowProc function.

WM_GETICON

The WM_GETICON message is sent to a window to retrieve a handle to the large or small icon associated with a window. The system displays the large icon in the ALT+TAB dialog, and the small icon in the window caption.

A window receives this message through its WindowProc function.

WM_GETMINMAXINFO

The WM_GETMINMAXINFO message is sent to a window when the size or position of the window is about to change. An application can use this message to override the window's default maximized size and position, or its default minimum or maximum tracking size.

A window receives this message through its WindowProc function.

WM_INPUTLANGCHANGE

The WM_INPUTLANGCHANGE message is sent to the topmost affected window after an application's input language has been changed. You should make any application-specific settings and pass the message to the DefWindowProc function, which passes the message to all first-level child windows. These child windows can pass the message to DefWindowProc to have it pass the message to their child windows, and so on.

A window receives this message through its WindowProc function.

WM_INPUTLANGCHANGEREQUEST

The WM_INPUTLANGCHANGEREQUEST message is posted to the window with the focus when the user chooses a new input language, either with the hotkey (specified in the Keyboard control panel application) or from the indicator on the system taskbar. An application can accept the change by passing the message to the DefWindowProc function or reject the change (and prevent it from taking place) by returning immediately.

A window receives this message through its WindowProc function.

WM_MOVE

The WM_MOVE message is sent after a window has been moved.

A window receives this message through its WindowProc function.

WM_MOVING

The WM_MOVING message is sent to a window that the user is moving. By processing this message, an application can monitor the position of the drag rectangle and, if needed, change its position.

A window receives this message through its WindowProc function.

WM_NCACTIVATE

The WM_NCACTIVATE message is sent to a window when its nonclient area needs to be changed to indicate an active or inactive state.

A window receives this message through its WindowProc function.

WM_NCCALCSIZE

The WM_NCCALCSIZE message is sent when the size and position of a window's client area must be calculated. By processing this message, an application can control the content of the window's client area when the size or position of the window changes.

A window receives this message through its WindowProc function.

WM_NCCREATE

The WM_NCCREATE message is sent prior to the WM_CREATE message when a window is first created.

A window receives this message through its WindowProc function.

WM_NCDESTROY

The WM_NCDESTROY message informs a window that its nonclient area is being destroyed. The DestroyWindow function sends the WM_NCDESTROY message to the window following the WM_DESTROY message. WM_DESTROY is used to free the allocated memory object associated with the window.

The WM_NCDESTROY message is sent after the child windows have been destroyed. In contrast, WM_DESTROY is sent before the child windows are destroyed.

A window receives this message through its WindowProc function.

WM_NULL

The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore.

A window receives this message through its WindowProc function.

WM_PARENTNOTIFY

The WM_PARENTNOTIFY message is sent to the parent of a child window when the child window is created or destroyed, or when the user clicks a mouse button while the cursor is over the child window. When the child window is being created, the system sends WM_PARENTNOTIFY just before the CreateWindow or CreateWindowEx function that creates the window returns. When the child window is being destroyed, the system sends the message before any processing to destroy the window takes place.

A window receives this message through its WindowProc function.

WM_QUERYDRAGICON

The WM_QUERYDRAGICON message is sent to a minimized (iconic) window. The window is about to be dragged by the user but does not have an icon defined for its class. An application can return a handle to an icon or cursor. The system displays this cursor or icon while the user drags the icon.

A window receives this message through its WindowProc function.

WM_QUERYOPEN

The WM_QUERYOPEN message is sent to an icon when the user requests that the window be restored to its previous size and position.

A window receives this message through its WindowProc function.

WM_SHOWWINDOW

The WM_SHOWWINDOW message is sent to a window when the window is about to be hidden or shown.

A window receives this message through its WindowProc function.

WM_SIZE

The WM_SIZE message is sent to a window after its size has changed.

A window receives this message through its WindowProc function.

WM_SIZING

The WM_SIZING message is sent to a window that the user is resizing. By processing this message, an application can monitor the size and position of the drag rectangle and, if needed, change its size or position.

A window receives this message through its WindowProc function.

WM_STYLECHANGED

The WM_STYLECHANGED message is sent to a window after the SetWindowLong function has changed one or more of the window's styles.

A window receives this message through its WindowProc function.

WM_STYLECHANGING

The WM_STYLECHANGING message is sent to a window when the SetWindowLong function is about to change one or more of the window's styles.

A window receives this message through its WindowProc function.

WM_THEMECHANGED

The WM_THEMECHANGED message is broadcast to every window following a theme change event. Examples of theme change events are the activation of a theme, the deactivation of a theme, or a transition from one theme to another.

WM_USERCHANGED

The WM_USERCHANGED message is sent to all windows after the user has logged on or off. When the user logs on or off, the system updates the user-specific settings. The system sends this message immediately after updating the settings.

A window receives this message through its WindowProc function.

WM_WINDOWPOSCHANGED

The WM_WINDOWPOSCHANGED message is sent to a window whose size, position, or place in the Z order has changed as a result of a call to the SetWindowPos function or another window-management function.

A window receives this message through its WindowProc function.

WM_WINDOWPOSCHANGING

The WM_WINDOWPOSCHANGING message is sent to a window whose size, position, or place in the Z order is about to change as a result of a call to the SetWindowPos function or another window-management function.

A window receives this message through its WindowProc function.

Windows Common Controls

MSDN2009. 2. 18. 15:04
http://msdn.microsoft.com/ko-kr/ms632679(en-us).aspx

System class

Meaning

BUTTON

Designates a small rectangular child window that represents a button the user can click to turn it on or off. Button controls can be used alone or in groups, and they can either be labeled or appear without text. Button controls typically change appearance when the user clicks them. For more information, see Buttons.

For a table of the button styles you can specify in the dwStyle parameter, see Button Styles.

COMBOBOX

Designates a control consisting of a list box and a selection field similar to an edit control. When using this style, an application should either display the list box at all times or enable a drop-down list box. If the list box is visible, typing characters into the selection field highlights the first list box entry that matches the characters typed. Conversely, selecting an item in the list box displays the selected text in the selection field.

For more information, see Combo Boxes. For a table of the combo box styles you can specify in the dwStyle parameter, see Combo Box Styles.

EDIT

Designates a rectangular child window into which the user can type text from the keyboard. The user selects the control and gives it the keyboard focus by clicking it or moving to it by pressing the TAB key. The user can type text when the edit control displays a flashing caret; use the mouse to move the cursor, select characters to be replaced, or position the cursor for inserting characters; or use the BACKSPACE key to delete characters. For more information, see Edit Controls.

For a table of the edit control styles you can specify in the dwStyle parameter, see Edit Control Styles.

LISTBOX

Designates a list of character strings. Specify this control whenever an application must present a list of names, such as file names, from which the user can choose. The user can select a string by clicking it. A selected string is highlighted, and a notification message is passed to the parent window. For more information, see List Boxes.

For a table of the list box styles you can specify in the dwStyle parameter, see List Box Styles.

MDICLIENT

Designates an MDI client window. This window receives messages that control the MDI application's child windows. The recommended style bits are WS_CLIPCHILDREN and WS_CHILD. Specify the WS_HSCROLL and WS_VSCROLL styles to create an MDI client window that allows the user to scroll MDI child windows into view.

For more information, see Multiple Document Interface.

RichEdit

Designates a Microsoft Rich Edit 1.0 control. This window lets the user view and edit text with character and paragraph formatting, and can include embedded Component Object Model (COM) objects. For more information, see Rich Edit Controls.

For a table of the rich edit control styles you can specify in the dwStyle parameter, see Rich Edit Control Styles.

RICHEDIT_CLASS

Designates a Rich Edit 2.0 control. This controls let the user view and edit text with character and paragraph formatting, and can include embedded COM objects. For more information, see Rich Edit Controls.

For a table of the rich edit control styles you can specify in the dwStyle parameter, see Rich Edit Control Styles.

SCROLLBAR

Designates a rectangle that contains a scroll box and has direction arrows at both ends. The scroll bar sends a notification message to its parent window whenever the user clicks the control. The parent window is responsible for updating the position of the scroll box, if necessary. For more information, see Scroll Bars.

For a table of the scroll bar control styles you can specify in the dwStyle parameter, see Scroll Bar Control Styles.

STATIC

Designates a simple text field, box, or rectangle used to label, box, or separate other controls. Static controls take no input and provide no output. For more information, see Static Controls.

For a table of the static control styles you can specify in the dwStyle parameter, see Static Control Styles.

윈도우 스타일

MSDN2009. 2. 18. 11:31

/* Window Styles */
#define WS_OVERLAPPED       0x00000000L  // 기본 윈도우
#define WS_POPUP            0x80000000L  // 팝업 윈도우. WS_CHILD와 함께 쓸 수 없음.
#define WS_CHILD            0x40000000L  // 자식 윈도우. WS_POPUP과 함께 쓸 수 없음.
#define WS_MINIMIZE         0x20000000L  // 생성시 최소화
#define WS_VISIBLE          0x10000000L
#define WS_DISABLED         0x08000000L  // 생성시 사용불가 상태
#define WS_CLIPSIBLINGS     0x04000000L
#define WS_CLIPCHILDREN     0x02000000L
#define WS_MAXIMIZE         0x01000000L  // 생성시 최대화
#define WS_CAPTION          0x00C00000L    /* WS_BORDER | WS_DLGFRAME  */
#define WS_BORDER           0x00800000L  // 얇은 경계선, 크기 조정 불가
#define WS_DLGFRAME         0x00400000L  // 두꺼운 경계선, 타이틀바 삽입 불가
#define WS_VSCROLL          0x00200000L  // 수직 스크롤바를 가진 윈도우
#define WS_HSCROLL          0x00100000L  // 수평 스크롤바를 가진 윈도우
#define WS_SYSMENU          0x00080000L  // 시스템 메뉴를 가진 윈도우
#define WS_THICKFRAME       0x00040000L  // 두꺼운 경계선, 크기 조절 가능
#define WS_GROUP            0x00020000L  // 버튼등의 컨트롤을 그룹 지정할 때에 사용
#define WS_TABSTOP          0x00010000L

#define WS_MINIMIZEBOX      0x00020000L  // 최소화 버튼을 생성
#define WS_MAXIMIZEBOX      0x00010000L  // 최대화 버튼을 생성

#define WS_TILED            WS_OVERLAPPED
#define WS_ICONIC           WS_MINIMIZE
#define WS_SIZEBOX          WS_THICKFRAME
#define WS_TILEDWINDOW      WS_OVERLAPPEDWINDOW

/* Common Window Styles */
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED     | \
                             WS_CAPTION        | \
                             WS_SYSMENU        | \
                             WS_THICKFRAME     | \
                             WS_MINIMIZEBOX    | \
                             WS_MAXIMIZEBOX)

#define WS_POPUPWINDOW      (WS_POPUP          | \
                             WS_BORDER         | \
                             WS_SYSMENU)

#define WS_CHILDWINDOW      (WS_CHILD)

/* Extended Window Styles */
#define WS_EX_DLGMODALFRAME     0x00000001L  // 이중 경계선
#define WS_EX_NOPARENTNOTIFY    0x00000004L  // 생성/소멸시 WM_PARENTNOTIFY 메세지를 보내지 않음
#define WS_EX_TOPMOST           0x00000008L  // 항상 최상위 윈도우
#define WS_EX_ACCEPTFILES       0x00000010L  // 드래그되는 파일을 받을 수 있는 윈도우
#define WS_EX_TRANSPARENT       0x00000020L
#if(WINVER >= 0x0400)
#define WS_EX_MDICHILD          0x00000040L  // MDI 차일드 윈도우
#define WS_EX_TOOLWINDOW        0x00000080L  // 툴바 윈도우
#define WS_EX_WINDOWEDGE        0x00000100L  // 양각 윈도우
#define WS_EX_CLIENTEDGE        0x00000200L  // 음각 윈도우
#define WS_EX_CONTEXTHELP       0x00000400L  // 타이틀바에 ? 버튼 출력

#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)

#define WS_EX_RIGHT             0x00001000L
#define WS_EX_LEFT              0x00000000L
#define WS_EX_RTLREADING        0x00002000L
#define WS_EX_LTRREADING        0x00000000L
#define WS_EX_LEFTSCROLLBAR     0x00004000L
#define WS_EX_RIGHTSCROLLBAR    0x00000000L

#define WS_EX_CONTROLPARENT     0x00010000L  // Tab 키로 차일드 사이를 전환
#define WS_EX_STATICEDGE        0x00020000L  // 사용자의 입력을 허용하지 않는 형태
#define WS_EX_APPWINDOW         0x00040000L

#define WS_EX_OVERLAPPEDWINDOW  (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
#define WS_EX_PALETTEWINDOW     (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)

#endif /* WINVER >= 0x0400 */

#if(_WIN32_WINNT >= 0x0500)
#define WS_EX_LAYERED           0x00080000

#endif /* _WIN32_WINNT >= 0x0500 */

#if(WINVER >= 0x0500)
#define WS_EX_NOINHERITLAYOUT   0x00100000L // Disable inheritence of mirroring by children
#define WS_EX_LAYOUTRTL         0x00400000L // Right to left mirroring
#endif /* WINVER >= 0x0500 */

#if(_WIN32_WINNT >= 0x0501)
#define WS_EX_COMPOSITED        0x02000000L
#endif /* _WIN32_WINNT >= 0x0501 */
#if(_WIN32_WINNT >= 0x0500)
#define WS_EX_NOACTIVATE        0x08000000L
#endif /* _WIN32_WINNT >= 0x0500 */

다음은 대우 중공업 김규환 명장이 삼성에서 강의한 내용입니다.

사용자 삽입 이미지

- 저는 국민학교도 다녀보지 못했고 5대 독자 외아들에 일가 친척 하나없이15살에 소년가장이 되었습니다.
- 기술 하나 없이 25년 전 대우 중공업에 사환으로 들어가 마당 쓸고 물 나르며회사 생활을 시작했습니다.
- 이런 제가 훈장 2개, 대통령 표창 4번,발명특허대상,장영실 상을 5번 받았고1992년 초정밀 가공분야 名匠으로 추대 되었습니다.
어떻게 이런 제가 우리나라에서 상을 제일 많이 받고 명장이 되었는지 말씀 드릴까요?
사환에서 名匠이 되기 까지 부지런한 사람은 절대 굶지 않는다.
- 제가 대우에 입사해서 현재까지 오는 과정을 말씀 드리겠습니다.
- 제가 대우에 입사할 때 입사자격이 고졸이상 군필자였습니다.
이력서를 제출하려는데 경비원이 막아 실강이 하다 당시 사장이 우연히 이 광경을 보고 면접을 볼 수 있게 해줬습니다.
- 그러나 면접에서 떨어지고 사환으로 입사하게 되었습니다.
- 사환으로 입사하여 매일 아침 5시에 출근하였습니다. 하루는 당시 사장님이 왜 일찍 오냐고 물으셨습니다.
그래서 선배들 위해 미리 나와 기계 워밍업을 한다고 대답했더니 다음날 정식기능공으로 승진시켜 주시더군요.
- 2년이 지난 후에도 계속 5시에 출근하였고, 또 사장님이 질문하시기에 똑같이 대답했더니 다음 날 반장으로 승진시켜 주시더군요.

내가 만든 제품에 혼을 싣지 않고 품질을 얘기하지 마십시오.

- 제가 어떻게 정밀기계 분야의 세계 최고가 됐는지 말씀 드리겠습니다.
- 가공 시 온도가 1℃ 변할 때 쇠가 얼마나 변하는지 아는 사람은 저 하나 밖에 없습니다. 이걸 모를 경우 일을 모릅니다.
- 제가 이것을 알려고 국내 모든 자료실을 찾아봤지만 아무런 자료도 없었습니다.
그래서 공장 바닥에 모포깔고 2년 6개월 간 연구했습니다.
- 그래서 재질, 모형, 종류, 기종별로 X-bar값을 구해 1℃변할 때 얼마 변하는지 온도치수가공 조견표를 만들었습니다.
- 기술공유를 위해 이를 산업인력관리공단의 ‘기술시대’란 책에 기고했습니다. 그러나 실리지 않았습니다.
그런데 얼마 후 3명의 공무원이 찾아왔습니다. 처음에 회사에서는 큰일이 일어난 줄 알고 난리가 났습니다. 그런데 알고 보니 제출한 자료가
기계가공의 대혁명 자료인 걸 알고 논문집에 실을 경우 일본에서 알게 될까 봐, 노동부장관이 직접 모셔오라고 했다는군요.
장관 曰 "이것은 일본에서도 모르는 것이오." "발간되면 일본에서 가지고 갈 지 모르는 엄청난 것입니다."

= 목숨 걸고 노력하면 안되는 일 없다.
- 일은 어떻게 배웠냐?
어느 날 무서운 선배 한 분이 하이타이로 기계를 다 닦으라고 시키더라구요. 그래서 다 뜯고 닦았습니다.
모든 기계를 다 뜯고 하이타이로 닦았습니다 . 기계 2612개를 다 뜯었습니다.
- 6개월 지나니까 호칭이 ‘야 이 X끼 야’에서 ‘김군’으로 바뀌었습니다.
서로 기계 좀 봐 달라고 부탁했습니다. 실력이 좋아 대접 받고 함부로 하지 못하더군요.

- 그런데 어느 날 난생 처음 보는 컴퓨터도 뜯고 물로 닦았습니다. 사고 친 거죠.
그래서 그 때 알기 위해서는 책을 봐야 겠다는 생각을 가지게 되었습니다.

- 저희 집 가훈은 ‘목숨 걸고 노력하면 안되는 일 없다’입니다.
- 저는 국가기술자격 학과에서 9번 낙방,
1급 국가기술자격에 6번 낙방,
2종 보통운전 5번 낙방하고
창피해 1종으로 전환하여 5번 만에 합격했습니다.
사람들은 저를 새대가리라고 비웃기도 했지요.
하지만 지금 우리나라에서 1급 자격증 최다보유자는 접니다.


새대가리라고 얘기 듣던 제가 이렇게 된 비결을 아십니까?
그것은 목숨 걸고 노력하면 안되는일  없다는 저의 생활신조 때문입니다.

- 저는 현재 5개 국어를 합니다. 저는 학원에 다녀 본 적이 없습니다.
제가 외국어를 배운 방법을 말씀 드릴까요? 저는 과욕없이 천천히 하루에 1문장씩 외었습니다.
하루에 1문장 외우기 위해 집 천장, 벽, 식탁, 화장실문, 사무실 책상 가는 곳마다 붙이고 봤습니다.
이렇게 하루에 1문장씩 1년, 2년 꾸준히 하니 나중엔 회사에 외국인들 올 때 설명도 할 수 있게 되더라구요.

- 진급, 돈 버는 것은 자기노력에 달려 있습니다.
세상을 불평하기 보다는 감사하는 마음으로 사십시오. 그러면 부러운 것이 없습니다.
배 아파하지 말고 노력 하십시오.
의사, 박사, 변호사 다 노력했습니다. 남 모르게 끊임없이 노력했습니다.

= 하루 종일 쳐다보고 생각하고 또 생각하면 해답이 나옵니다.

- 저는 제안 2만 4천 6백 12건, 국제발명특허 62개를 받았습니다.

- 저는 조금이라도 도움이 되는 건 무엇이라도 개선합니다.
하루 종일 쳐다보고 생각하고 또 생각하면 해답이 나옵니다.
가공기계 개선을 위해 3달 동안 고민하다 꿈에서 해답을 얻어 해결하기도 했지요.

- 제가 얼마 전에는 새로운 자동차 윈도 브러시도 발명하였습니다.
유수의 자동차 회사에서도 이런 거 발명 못했습니다.

- 제가 발명하게 된 배경을 설명 드리겠습니다.
회사에서 상품으로 받은 자동차가 윈도 브러시 작동으로 사고가 났습니다.
교통사고 후 자나 깨나 개선 생각을 했습니다.
그러다 영화 타이타닉에서 배가 물을 가르는 것 보고 생각해 냈습니다.
대우자동차 김태구 사장에게 말씀 드렸더니 1개당 100원씩 로열티 주겠다고 하더라구요.

약속하고 오는 길에 고속도로와 길가의 차를 보니 모두 돈으로 보입디다.
- 돈은 천지에 있습니다. 마음만 있으면 돈은 들어옵니다.
회사에 대한 나의 생각 저의 종교는 대우중공업敎입니다.

- 저는 여러분들 한테 반드시 종교를 가지라고 말씀 드리고 싶습니다.
저도 종교가 있습니다. 하지만 저는 교회나 절에 다니지 않습니다.
제 종교는 대우중공업교입니다.
우리 집에는 대우 깃발이 있고 식구들 모두 아침 밥 먹고 그 깃발에 서서 기도합니다.

- 저는 하루에 두번 기도합니다.
아침에 기도하고 정문 앞에서 또 한번 기도합니다.

"나사못 하나를 만들어도 최소한 일본보다 좋은 제품을 만들 수 있도록 도와주십시오"


마지막 당부의 말

지금하고 있는 일에 최선을 다하는 자는 영화를 얻는다.

- 저는 심청가를 1000번 이상 듣고 완창을 하게 되었습니다.
심청가에 보면 다음과 같은 구절이 있습니다.
'한번 밖에 없는 인생 돈에 노예가 되지 마라!'
지금 하고 있는일이 너의 인생이다!
지금하고 있는 일에 최선을 다하는 자는 영화를 얻는다.

- 목숨 걸고 노력하면 안되는 것 없습니다.
목숨 거십시오.