posted by REDFORCE 2017. 3. 22. 16:05

최근 구직 활동을 하면서


석사과정 당시 적었던 나의 논문이 어딘가에서 참조되어 인용되고 있다는 것을 알게 되었다.


논문 저자 이름은 뭔가 쑥쓰러워서 아래사진에서는 감춰뒀지만 어짜피 구글에서 검색하면 다나온다...(씁쓸)



사진에서 보다시피 인용수가 그렇게 많은 것은 아니지만 차츰차츰 계속 상향 그래프가 그려지는 것으로 보아


아마 컴퓨터 비전 연구가 계속 활성화 되면서 인용 건수가 늘게 되지 않았나 라는 생각이 든다.



논문 활용도와 이용기관을 확인해보면 역시나 계속해서 인용에 인용을 더해서 활용 건수가 증가되어지는 것 같다.


논문 자체는 스플라인 곡선을 이용한 감시영역 설정에 대한 주제였으나


아마 이 연구 자체는 곡선을 활용한 어떤 시스템 설계에도 적합하지 않을까 라는 생각도 든다.

(이제 와서는 어짜피 = _=무념무상이다...인용하여 써주면 감사하고...)


dbpia를 통해서 확인된 바로는 해당 관련 분야 상위 15% 논문이라고 적혀있는데 이게 뭐...사실인지 아닌지


그래서 얼마나 좋은건지 가늠이 되지 않는다.



아무튼 구직 활동을 하면서 새삼 이렇게 인용 건수가 증가하고있었구나 하는 점에 대해서는 신기할 따름이다.


HOJBC0_2015_v19n9_2145.pdf


posted by REDFORCE 2017. 3. 22. 15:53

예전 실험실에서 작업하던 MFC 프로그램이 생각났다.


지금 다시 MFC를 공부해서 뭘 만들어라 라고 하면 너무 불편한 관계로


차라리 C#을써서 WPF로 만들겠다는 생각이 강하지만



당시엔 아무것도 몰랐기에 = _=...그리고 삼성 카메라의 sdk를 활용하기 위해선 자체 제작되있는 activeX컨트롤러를 쓸 수 밖에 없었다.


덕분에 MFC로 개발해야하는 환경으로 제한이 되어버렸던게 아쉽다..




위 사진에는 여러가지 UI들이 첨부 되어있지만 지금와서는 다 까먹었다...

(저 UI를 왜 저렇게 만들었더라.. O_ oa;;)


역시나 본인이 연구했던 스플라인과 MFC 환경구축자체가 제일 공부가 되었던 것 같다.


지금와서는 당시 진행한 스플라인 연구로 인해 Game Graphics에서 그래프를 그리거나 곡선을 처리하는 방식에 대해서 많은 도움이 되었다고 생각한다.

posted by REDFORCE 2017. 3. 22. 15:49

글을 작성하기에 앞서 아래의 링크에 걸려있는 내용을 참조하였음을 알려드립니다.


[LINK] << Click - New Window

[slideshare] Modern C++ 프로그래머를 위한 CPP11/14 핵심  (저자: 홍배 최 교수)



평상시 공부하면서 지하철을 오갈때 할거 없으면 매번 이 슬라이드를 봤었다..

본거 또 보고 본거 또 보고...

그러나 아직도 공부하면서 스마트 포인터 같은 녀석들은 잘 써먹기가 힘든 것 같다.


-------------------------------------------------


이번 글에서는 그간 공부하면서 활용했던 Modern C++ 항목들에 대해 정리하고자 합니다.


Modern C++에 대한 정리 글은 총 12편으로 나뉘어 작성 될 예정 입니다.


목차


1. Auto

2. range based for

3. enum class

4. non-static data member initializers

5. initializer lists

6. default / delete definition

7. override / final

8. emplacement

9. constexpr

10. lambda

11. random

12. thread



이 글은 [1편] auto에 대한 내용입니다.


1. auto


auto 는 최근 개인적으로 코드를 작성할 때 iterator를 대용하는 목적으로 많이 이용하고 있는 방식이다.


 A. auto란??


auto에 대해서 간단히 설명하자면


 (1) 변수 정의 때 명시적으로 type을 지정하지 않아도 된다.

 (2) auto로 정의한 변수는 초기화할 때 type이 결정 된다.

 (3) 컴파일 타임 때 type이 결정 된다.

 (4) 템플릿 프로그래밍에 사용하면 코딩이 간편해진다.

 (5) 코드 가독성이 향상된다.

  (개인적으로 (5)번은 잘 모르겠다...개인적으로 써보면서 향상 되는건 사실이지만 남발하면.....= _=;;)



auto는 위와 같이 어느 변수타입이든 대용이 가능하다.


마치 c#의 var와 같은 느낌?


C++에는 var가 없기 때문에 위와 같이 auto를 활용할 수가 있다.



기본적으로 타입이 제한되어져서 나올 값들이라면 타입을 지정해서 쓰겠지만


string이나 char* 같은 녀석들을 리턴받고 던진다거나 빠르게 프로그래밍 해야 할 때는 auto로 받는것도 나쁘지 않을 것 같다.

(그래도 왠만하면 습관적으로 명시하여 쓰겠지만...)



위와 같이 포인터 형에 대한 것도 받아서 쓸 수가 있다.



참 편리하다...



구조체나 클래스도 마찬가지로 받을 수 있다.




그리고 본인이 개인적으로 가장 많이 활용하는 iterator의 대용이다.



정말 iterator 자체를 auto로 대용할 수 있다는 게 코드를 얼마나 많이 줄일 수 있는지는 그리고 auto를 알고 있다면


가독성이 얼마나 편해지는지 가늠 할 수 있을거라 봅니다.

(auto 짱짱맨!! |O_ o/)




 B. 일반함수의 반환 값 auto 지정에 의한 형 추론

  • C++ 14의 새로운 기능
  • 일반 함수에서도 반환 값 타임을 추론할 수 있는 기능
  • 반환 값 타입으로 auto를 사용한다.

   

위의 말 중에 반환 값 타입으로 auto를 사용한다가 무슨 말이냐면...


보통 함수의 반환 값으로 bool, int 등을 선언하여 반환 값 타입이 미리 지정하여 사용하지만..



auto를 활용하면!!


위와 같이 function 자체의 return 값을 auto 로 받아서 타입 추론형으로 반환 할 수가 있다.


이 얼마나 편하단말인가!!!

(auto 짱짱맨 |O_ o/)  x 10


근데 실제로 저렇게 반환시키는 코드를 작성해본 적은 없는거 같다.

(왜...?)


음...개인적으로 저런식으로 반환형 타입을 추론형으로 만들어버리면 


다른 클래스에서 저 함수의 리턴 타입이 auto로 나와버려서 대체 무슨 타입을 리턴하는거지? 


하고 한번더 함수를 F12 누르고 들어가게 됐었다.




꼭 필요할 땐 활용해야겠지만, 팀 프로젝트에서는 조금 자중할 필요가 있지 않을까? 하는 생각이 든다.




그리고 끝으로 auto를 사용할 땐 함수에서 리턴 타입을 동결시켜줘야 한다.


코드로 적어보자면 아래와 같다.




결론. auto 짱짱맨 |O_ o/  x 119




다음 글은 range based for에 대해서 적어보도록 하겠습니다.