This document discusses plans for a cooking assistance application project. It includes sections on project overview, development environment, schedule, work assignments, use case diagram, use case definitions, and information collection. The development schedule covers April and May and assigns tasks like use case modeling, class modeling, database design, and programming. The document also provides a sample use case definition for a "food recommendation" feature and notes on information needed for food, cooking, and process registration.
스마트벤처 창업학교(대구)에서 스타트업 창업자분들을 대상으로 발표한 유니티 개발 자료입니다.
새로운 내용은 아니고..
기존에 발표 했던 유니티 관련 자료들을 하나로 모은, 총합편입니다.
ps. Unity 2D 소개와 PlayMaker 소개에는 동영상이 포함되어 있는데, 아마 슬라이드셰어에서 재생은 되지 않을듯 합니다. 다운로드 받으시면, 동영상도 보실수 있습니다.
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. Unity 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) - 링크
5. 유니티와 PlayMaker를 이용한 쉽고 빠른 게임 개발
This document discusses plans for a cooking assistance application project. It includes sections on project overview, development environment, schedule, work assignments, use case diagram, use case definitions, and information collection. The development schedule covers April and May and assigns tasks like use case modeling, class modeling, database design, and programming. The document also provides a sample use case definition for a "food recommendation" feature and notes on information needed for food, cooking, and process registration.
스마트벤처 창업학교(대구)에서 스타트업 창업자분들을 대상으로 발표한 유니티 개발 자료입니다.
새로운 내용은 아니고..
기존에 발표 했던 유니티 관련 자료들을 하나로 모은, 총합편입니다.
ps. Unity 2D 소개와 PlayMaker 소개에는 동영상이 포함되어 있는데, 아마 슬라이드셰어에서 재생은 되지 않을듯 합니다. 다운로드 받으시면, 동영상도 보실수 있습니다.
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. Unity 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) - 링크
5. 유니티와 PlayMaker를 이용한 쉽고 빠른 게임 개발
Custom TTS using multi-speaker-tacotron(nanheekim)Nanhee Kim
@NanheeKim @nh9k
질문이 있으면 언제든지 연락주세요!
Please, feel free to contact me, if you have any questions!
github: https://github.com/nh9k
email: kimnanhee97@gmail.com
라쎄 코스켈라 지음 | 이복연 옮김 | 한빛미디어 | 2013년 11월 | 25,000원
예스24: http://www.yes24.com/24/goods/1136108
테스트 라이브러리 사용법에서 나아가 ‘좋은 테스트란 무엇인가’, ‘좋은 테스트를 작성하려면 어떻게 해야 하는가’에 관한 현장의 물음에 해답을 제시한다. 테스트가 갖춰야 할 요건에 따라 나눈 테스트 카탈로그가 수록되어, 필요할 때마다 원하는 목록을 참고하여 자신이 작성한 테스트에서 문제를 발견하고 수정해 나갈 수 있으며 더욱 응용력 높은 학습을 할 수 있다.
스티븐 블랙히스, 앤서니 존스 지음 | 오현석 옮김 | 한빛미디어
함수형 반응형 프로그래밍에 관한 최초의 종합 안내서
프로그램은 ‘어떻게’가 아니라 ‘무엇’을 기술하는 선언적인 문서여야 한다는 주장을 받아들이는 사람이 점점 늘고 있다. 이런 흐름은 함수형 언어의 부흥으로 이어졌다. 함수형 언어로는 프로그램을 더 선언적인 방식으로 작성할 수 있고, 이를 이벤트 처리에 결합한 것이 함수형 반응형 프로그래밍(FRP)이다. 지난 수십 년 동안 이벤트 처리 인프라를 책임진 관찰자 패턴은, 한편으로는 버그의 온상이 되기도 했다. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다.
이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다.
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
Custom TTS using multi-speaker-tacotron(nanheekim)Nanhee Kim
@NanheeKim @nh9k
질문이 있으면 언제든지 연락주세요!
Please, feel free to contact me, if you have any questions!
github: https://github.com/nh9k
email: kimnanhee97@gmail.com
라쎄 코스켈라 지음 | 이복연 옮김 | 한빛미디어 | 2013년 11월 | 25,000원
예스24: http://www.yes24.com/24/goods/1136108
테스트 라이브러리 사용법에서 나아가 ‘좋은 테스트란 무엇인가’, ‘좋은 테스트를 작성하려면 어떻게 해야 하는가’에 관한 현장의 물음에 해답을 제시한다. 테스트가 갖춰야 할 요건에 따라 나눈 테스트 카탈로그가 수록되어, 필요할 때마다 원하는 목록을 참고하여 자신이 작성한 테스트에서 문제를 발견하고 수정해 나갈 수 있으며 더욱 응용력 높은 학습을 할 수 있다.
스티븐 블랙히스, 앤서니 존스 지음 | 오현석 옮김 | 한빛미디어
함수형 반응형 프로그래밍에 관한 최초의 종합 안내서
프로그램은 ‘어떻게’가 아니라 ‘무엇’을 기술하는 선언적인 문서여야 한다는 주장을 받아들이는 사람이 점점 늘고 있다. 이런 흐름은 함수형 언어의 부흥으로 이어졌다. 함수형 언어로는 프로그램을 더 선언적인 방식으로 작성할 수 있고, 이를 이벤트 처리에 결합한 것이 함수형 반응형 프로그래밍(FRP)이다. 지난 수십 년 동안 이벤트 처리 인프라를 책임진 관찰자 패턴은, 한편으로는 버그의 온상이 되기도 했다. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다.
이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다.
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
『클라우드 시스템을 관리하는 기술』 - 맛보기복연 이
토머스 리몬첼리 외 공저 / 류광 옮김 | 한빛미디어 | 2016년 2월 | 36,000원
예스24: http://www.yes24.com/24/goods/24557610
“클라우드 규모 서비스를 실현하는 이론과 실전 노하우를 정리한 지침서”
이 책은 대규모 클라우드 인프라와 서비스의 구조와 설계 패턴, 그리고 이를 운영하는 방법까지, 시스템과 팀이 유기적으로 움직이는 비법을 제시한다.
저자들의 구글, 엣시(Etsy), 트위터, 페이스북, 넷플릭스, 아마존 등 거대 기업에서의 사례와 경험에서 시기를 타지 않는 근본적인 원리(principle)와 관행(practice), 특정 제품이나 시스템을 선택할 때 독자가 반드시 살펴봐야 할 품질 요소들을 이 책에 담았다. 이러한 접근법 덕분에 시간이 흘러 기술이 변해도 독자는 이 업계에서 여전히 준비된 전문가로 남게 될 것이다.
REST (REpresentational State Transfer) is a web service architecture that uses HTTP requests to GET, POST, PUT, PATCH, and DELETE data in a stateless manner. It focuses on resources instead of remote procedures. REST examples show making GET requests to retrieve XML data from a URI and using RESTful principles like addressability, connectedness, statelessness, and a homogeneous interface with standard HTTP methods.
This document discusses media server options for Ubuntu, including iTunes Media Server which uses Digital Audio Access Protocol (DAAP) and the mt-daap and FirePlay clients. It also mentions the Media Player Daemon (MPD) as an alternative media server that includes an MPD server and clients that can control streaming.
This document discusses implementing a file upload feature using open source technologies. It describes using HTML forms to upload files and a PHP script to handle the upload. It then recommends using the open source Plupload library to add multiple file selection, client-side validation, and progress bars. The Plupload library allows uploading files to a PHP script which can then store the files in a database.
This document discusses computer security and threats. It covers authentication through passwords, program threats like trojan horses and trap doors, system threats such as worms and viruses. It also discusses threat monitoring through audit logs and scans, and encryption techniques like public-key encryption. The goal is to protect systems from unauthorized access, malicious modification, and accidental inconsistencies.
This document provides an overview of the Linux operating system, including its history, design principles, and key components. It began in 1991 as a small kernel developed by Linus Torvalds and has grown through collaboration over the Internet. The core Linux kernel is original but can run existing UNIX software. Major versions have added support for new hardware, file systems, networking, and multiprocessing. Key components include the Linux kernel, system libraries, and system utilities. The kernel uses loadable modules and supports process management and scheduling.
This document discusses protection in operating systems. It covers the goals of protection, domains of protection, access matrices, implementation of access matrices, revocation of access rights, capability-based systems, and language-based protection. The key aspects are that protection ensures each object is only accessed by allowed processes, domains define access rights to objects, access matrices represent access permissions, and capabilities and access control lists are approaches to implementing and revoking access rights.
The document provides an overview of the Unix operating system, including its history, design principles, interfaces, and key components. It was originally developed in 1969 at Bell Labs and incorporated features from Multics. The C programming language was developed to support Unix. Key aspects include its process management, memory management using paging and swapping, file system storing files in blocks and fragments, and user interface through command line shells.
This document summarizes key aspects of distributed file systems (DFS), including their structure, naming and transparency, remote file access using caching, stateful versus stateless service models, file replication, and examples like the Sun Network File System (NFS). A DFS manages dispersed storage across a network, using caching to improve performance of remote file access and dealing with issues of consistency between cached and server copies. NFS provides a specific implementation of a DFS that integrates remote directories transparently and uses stateless remote procedure calls along with caching for efficiency.
This document discusses network structures and communication. It describes different types of network topologies including fully connected, partially connected, tree-structured, star, ring, and bus networks. It also describes different network types like local area networks (LANs) and wide area networks (WANs). Additionally, it discusses important aspects of network communication like naming and addressing, routing strategies, connection strategies, contention, and design strategies using a layered approach.
This document discusses secondary storage devices used by operating systems, including disk structure, disk scheduling algorithms, disk management, swap space management, and tertiary storage devices. It provides details on disk addressing, mapping, scheduling algorithms like FCFS, SSTF, SCAN and C-SCAN. It also summarizes disk reliability techniques, stable storage implementation, removable media like floppy disks, tapes, optical disks and their applications. Hierarchical storage management and performance factors like speed, reliability and cost of different storage devices are also overviewed.
This document discusses various techniques for distributed coordination including event ordering, mutual exclusion, atomicity, concurrency control, deadlock handling, election algorithms, and reaching agreement. It provides details on implementing happened-before relations for event ordering, centralized and distributed approaches for mutual exclusion, using two-phase commit for atomicity, locking protocols and timestamp ordering for concurrency control, deadlock prevention and detection methods, and election algorithms for determining where to restart a coordinator process.
This document discusses input/output (I/O) systems. It describes I/O hardware, including devices, ports, buses and controllers. It explains how I/O requests are handled using techniques like polling, interrupts and direct memory access. It also discusses the role of the operating system kernel in managing I/O through subsystems that interface with applications, transform requests, handle buffers and errors. The performance of I/O systems is also covered.
This document discusses key aspects of file systems including file concepts, directory structures, access methods, allocation methods, and file system performance and recovery. It covers topics such as file attributes, operations, types, structures, tree-structured and graph-based directories, protection methods, free space management, efficiency techniques, and consistency checking. The goal is to provide an overview of file system interfaces and how different components are organized and managed.
Virtual memory allows a program's logical address space to be larger than physical memory by swapping pages in and out of memory as needed. Demand paging brings pages into memory only when they are referenced. When a page is not in memory and is referenced, a page fault occurs which causes the OS to locate a free frame, swap in the page, and update tables. Page replacement algorithms like FIFO and LRU are used to determine which page to swap out when there is no free frame. Thrashing can occur if working set size is larger than physical memory.
Windows NT is a 32-bit preemptive multitasking operating system that uses a microkernel architecture. It has several key goals including portability, security, POSIX compliance, extensibility, and compatibility with MS-DOS and Windows applications. The document discusses Windows NT's history, design principles, system components including the kernel, executive subsystems, virtual memory manager, process manager, file system, and networking. It provides details on how Windows NT achieves reliability, performance, and international support through its layered architecture and object-oriented design.
This document discusses various memory management techniques including paging, segmentation, and swapping. Paging divides memory into fixed-size blocks called frames and logical memory into blocks called pages. It uses a page table to map logical to physical addresses. Segmentation divides programs into segments and uses segment tables to map logical segments to physical frames. Swapping temporarily moves processes out of memory to disk to allow other processes to run.
1. 1
TTS System 을 이용한
교육용 소프트웨어 개발
내용 : 프로젝트 중간결과보고
작성자 : 김종명 ( 영남대학교 )
작성일 : 2001. 11. 25
2. 2
0. 차례
1. 프로젝트 개요 3
2. 개발 동기 4
3. 기반 기술 5
4. 프로그램 사용법 6
5. 프로그램의 특징 13
6. 발전 방향 14
3. 3
1. 프로젝트 개요
프로젝트 주제 : TTS System 을 이용한 단어암기 소프트웨어 개발
프로젝트 수행 기간 : 2001. 9. 20 ~ ( 업그레이드 중 )
프로젝트 참가인원 : 김종명 ( 영남대학교 통계 4)
프로젝트 감리 : 없음
4. 4
2. 개발 동기
다른 언어를 배우는데 있어서 가장 기본이 되는 것은 “단어”일
것이다 . 단어만으로도 의사소통이 쉽게 될 수 있음을 부인하는
사람은 없다 . 필자는 TOEIC 를 공부하면서 이공계열 전공자들
의 특징 중의 하나인 암기에 대한 게으름에 직면하게 되었다 .
또한 가장 뛰어난 프로그래머는 가장 게으른 프로그래머라는 말
이 있을 정도로 필요는 발명의 어머니요 , 개발의 시발점이 된다 .
필자는 그러한 연유에 의해 “ Learn Up”( 속칭 “외워버려” ) 를 개
발하게 되었다 . 지긋지긋한 암기로 부터 해방되고자 아이콘 모
양마저 ‘외워서 휴지통에 버려라’는 의미에서 휴지통을 선택하였
다 .
연구원들에게도 본인이 개발한 초기모델의 테스트를 의뢰하였
다 . 모두들 기발한 아이디어라는 칭찬을 하였고 , 그래서 본 프
로그램을 개발하게 되었다 .
5. 5
3. 기반 기술
본 프로그램은 단어장을 모듈화 하여 사용하는 콤포넌트 방식이
다 . 이를 위해서는 디렉토리 및 파일 관리를 철저히 해야한다 .
초기모델은 INI 파일을 이용하여 환경설정 데이터를 관리하였으
나 , 더 안전하고 빠른 레지스트리를 이용하게 되었다 . 이 프로
그램의 핵심 기술은 좋은 문제를 만들어 내기 위해 가능한한 비슷
한 타입의 단어들을 같은 파일안에 수록하여 문제를 추출하는 방
식을 사용하였다 . 초기모델에서는 단순히 random generater
를 문항을 생성하였으나 , 각 파일의 단어의 개수가 적을 수록 추
출 확률이 높아지는 단점을 보완하기 위하여 각 파일의 단어 개수
의 비율을 관리하는 변수를 따로 만들었다 . MFC 의 OOP 개념
을 적극 활용하여 프로그래머의 작업속도 또한 다른 프로젝트에
비해 상당히 높았다 . 또한 Speech SDK 를 이용한 TTS(Text-
to-Speech) 기술은 청취력 테스트를 가능하게 만들었다 .
6. 6
4. 프로그램 사용법 (1)
퀴즈 시작
퀴즈시작 단추를 누르게 되면 “ Are
You Ready” 라는 소리와 함
께 문제가 출력되고 프로글
래스 바가 생긴다 .
0.5 초 후 문제를 읽어주고 , 시간
내에 풀지 못하면 프로그래
스바 수치가 줄어들어 오답
처리로 간주한다 .
정답을 선택하면 해당 점수가 가산
되고 , 상단의 5~-5 의 숫자
가 6~-4 로 바뀐다 .
오답을 선택하면 프로그래스 바의 최하 점수가 가산되고 숫자판이 다시 5~-5 로 바뀐다 .
점수를 빨리 올리는 방법은 연속으로 빨리 정답을 선택하는 것이다 .
7. 7
4. 프로그램 사용법 (2)
아래 이미지는 프로그램 대화상자 좌측하단에 위치해 있는 캐릭터이다 .
문제를 맞추고 틀리는 것을 계산하여 다양한 표정을 만들어 낸다 .
8. 8
4. 프로그램 사용법 (3)
틀린단어 보기
2.0 버전의 틀린단어보기
의 새로운 기능은 부분삭
제와 리스트 전체 삭제 옵
션이다 . 좌측 하단의 “닫
을때 리스트 모두 삭제”를
체크하면 무조건 한번만
보고 삭제하게 된다 . 그렇
게 하지 않거나 부분삭제
할 경우 나머지 단어는 유
지된다 .
9. 9
4. 프로그램 사용법 (4)
점수보기
점수는 정답수와 관계가 있으
나 , 정답수가 작아도 점수
는 더 높을 수도 있다 . 이
유는 얼마나 빨리 정답을
선택했는가에 따라 다른 점
수를 배정받기 때문이다 .
10. 10
4. 프로그램 사용법 (5)
환경설정
2.0 버전에서 새롭게 추가된 옵
션은 출력방향 선택과 보고
듣기 선택기능이다 .
문제의 특성상 긴 문자열을 출
력해야하는 경우 한줄로 늘
어선 형태가 유리하다 . ‘ 문
제 듣기’를 선택한 경우 문
제의 소리가 나오고 텍스트
가 출력되지 않는다 . 결국
듣기 테스트가 가능한 프로
그램이란 얘기다 .
단어장 정보에는 해당 단어장을 편집한 사람의 이름 , 단어장의 수준 ( 중 , 고 , 토익 , 토
플 , 공무원시험용… ), 편집자의 말 등이 저장되어 있다 .
11. 11
4. 프로그램 사용법 (6)
단어장 관리
새로 개발된 단어장 편
집기는 ListView 를
가진 Document 윈도
우 상에서 구현되어
서 , 윈도우 전체화면
을 사용하게 된다 .
단어 통계정보기능이
추가되었으며 , 검색
창과 단어 추가 창이
따로 구현되었다 .
단어 추가시 가장 불편
한 문제였던 한 / 영
자동 변환 기능이 추
가되었다 /
12. 12
4. 프로그램 사용법 (7)
HELP
2.0 버전에서는 더 상세한
도움말이 제공된다 . 뿐
만 아니라 , 엑셀 및 기타
텍스트 편집기를 이용하
여 더욱 쉽게 단어장을
편집할 수 있는 TIP 을
제공할 계획이다 . HELP
메뉴에는 단어장 자료실
과 프로그램 홈페이지가
링크되어 있다 .
13. 13
5. 프로그램의 특징
1) 단어장을 모듈화 시켜서 사용하므로 다른 사람이 만든 단어장을
사용하거나 자신이 만든 단어장을 남에게 배포할 수 있다 .
2) 영어뿐만 아니라 , 일본어 , 중국어 등 많은 분야에서 응용이 가능
하며 , 단어 뿐만 아니라 객관식으로 출제가 가능한 모든 문제 출
제 분야에서 응용이 가능하다 .
3) 환경설정의 듣기 기능을 이용하여 청취력 테스트를 할 수 있다 .
4) 환경설정의 출력방향을 반대로 하면 , 어떤 언어든 호환될 수 있
다 . 예를 들어 영어 단어장으로 영어권 학생이 한국어를 배울 수
도 있다 .
5) 틀린문제로 단어장을 만들어 취약한 단어를 집중적으로 공부할 수
있다 .
14. 14
6. 발전 방향
물론 세상 모든 사람들이 자신의 프로그램을 웃으면서 사용하게 하는 것
이 개발자의 꿈이자 계획일 것이다 . 그러나 , 본 프로그램은 개발해야할
과제가 너무나도 많다 . 아이템이 없는 것이 아니라 누구나 무엇이 문제
이며 어떤 부분을 개발해야 한다는 것은 알고 있으나 , 시도를 하려하지
않았다 . 그 중에서도 음성 피치 비교를 이용하여 음성의 동질성을 파악
하면 가장 정확한 Speeking Test 를 할 수 있다 . 또한 사용자가 틀린 특
정 문항에 대한 가중치를 부여하여 그 문항의 추출률을 높이는 기법도 포
함되어야 한다 . 이러한 통계적 기법을 사용하면 프로세스의 양을 현저히
줄이면서 에이전트가 시스템과 같은 수준의 프로그램을 만들어 낼 수 있
다 .
이 프로그램은 누구나가 한번쯤은 생각해 본 것이라 생각된다 . 개발자
의 입장에서 사용자의 입장을 거의 알 수 없는것이 사실이다 . 그러나 ,
웹사이트를 통한 유저들과의 꾸준한 접촉으로 인하여 많은 아이디어와
개선의뢰를 받았다 . 결국 이 프로그램은 개선의뢰를 하는 바로 사용자들
에 의해서 최적의 프로그램으로 만들어 질 수 있다고 생각한다 .
마지막으로 10 개월전 처음 MFC 를 가르쳐 주신 영남대학교 오창혁 교
수님께 진심으로 감사드린다 .