류종택의 프로그래밍 강의실

고정 헤더 영역

글 제목

메뉴 레이어

류종택의 프로그래밍 강의실

메뉴 리스트

  • 홈
  • 분류 전체보기 (364)
    • 소프트웨어 공학 (21)
    • 프로젝트 (28)
      • FF-Player (2)
      • 엔트리 (1)
      • Ah!FreeCa (11)
      • HelloWorld (8)
      • 네트워크 (3)
      • Presentation Online (1)
    • RyuLib (26)
      • RyuLib for Delphi (16)
      • RyuLib for Android (9)
      • Super Socket (0)
      • Intel Encoder (1)
    • 프로그래밍 (133)
      • Delphi (39)
      • Arduino & IoT (66)
      • C & C++ (2)
      • Android (26)
    • 오픈소스 연구 (32)
      • FFMPEG (9)
      • WebM (3)
      • Opus (0)
      • SoundTouch (2)
      • MEncoder (1)
      • MinGW (12)
      • libtorrent (2)
    • 강의 (34)
    • 종태기 생각 (20)
    • etc (67)
      • 프로그래밍 퀴즈 (2)
      • 제품 리뷰 (4)

검색 레이어

류종택의 프로그래밍 강의실

검색 영역

컨텐츠 검색

소프트웨어 공학

  • 초보 탈출 #2 - 멀티 스레드 프로그래밍의 1

    2019.12.01 by ryujt

  • Episode #1 - 어려운 문제 조각내서 해결하기

    2019.11.24 by ryujt

  • 프로그래밍 칠거지악

    2014.11.21 by ryujt

  • 인터페이스를 통한 소프트웨어 설계

    2014.09.15 by ryujt

  • 재귀 호출

    2013.12.17 by ryujt

  • 클래스 상속과 인터페이스 구현의 차이 #2

    2013.12.12 by ryujt

  • PC 화면 압축과 실시간 전송에 대한 연구

    2013.10.20 by ryujt

  • HiMyTV 방송 서버 구조 #2 - DB에 대한 비동기 처리

    2013.07.22 by ryujt

초보 탈출 #2 - 멀티 스레드 프로그래밍의 1

http://10bun.tv/beginner/episode-2/ 링크 참고 핵심 강의 강의 개요 멀티 스레드가 필요한 가장 큰 이유는 프로그램의 실행 효율을 높이기 위해서입니다. 그러나, 스레드를 이용하면 코드가 복잡해지고 디버깅하기가 까다로워 집니다. 그리고 오히려 성능을 해치는 경우도 발생합니다. 이 강의에서는 기초적인 스레드 사용의 패턴을 통해서 효과적으로 스레드를 사용할 수 있는 방법들을 알아봅니다. ::: tip 제가 생각하는 중급으로 넘어가기 위한 장벽들입니다. 기초 알고리즘 OOP 멀티 스레드 (비동기 프로세스) 포인터 함수 호출의 구조 (재귀 프로세스 등) ::: 강의 전 준비 사항 Visual Studio 2015 Update 3 또는 이후 버전 git https://github.com/..

소프트웨어 공학 2019. 12. 1. 02:39

Episode #1 - 어려운 문제 조각내서 해결하기

설명 문서 자료: http://10bun.tv/beginner/episode-1/

소프트웨어 공학 2019. 11. 24. 11:42

프로그래밍 칠거지악

프로그래밍 칠거지악go to아직도 살아 있었냐? 멸종 된 이후 화석만이 가끔 발견된다고 하더니!전역 변수전역 변수는 여러 객체(요소)들을 하나로 연결하여 "스파게티 코드"를 유도하게 함어쩔 수 없는 경우가 아니라면 무조건 피해야 함중복 코드완전히 같은 코드의 반복유사한 코드의 반복나쁜 이름이름 만으로 무엇을 하는 지 짐작할 수 없는 함수어디서 소스를 복사 해 왔는 지, 하는 일과 전혀 다른 이름을 가진 변수, 함수, 객체 참조 변수 등..너무 깊은 블럭3중, 4중 반복(루프)? 오노!! (3차원 그래프 문제 등이 아닌 이상 3중 반복문부터는 고민을 해야 합니다)조건문의 반복도 문제너무 긴 블럭if () { 이 시작 한 뒤 한 참을 스크롤해도 나타나지 않는 }함수 하나가 A4 용지를 넘어가는 장편 소설!매..

소프트웨어 공학 2014. 11. 21. 15:26

인터페이스를 통한 소프트웨어 설계

스포츠 경기에 세트 플레이라는 것이 있습니다. 미리 약속한 방식으로 공격을 진행하는 것입니다. 하지만, 상대가 어떻게 나올 지 확신 할 수가 없는데, 약속 된 방식만으로 공격이 성공 할 수 있을까요?언제나 변수가 생긴다. 계획대로 되는 법이 없다.작전에만 집착하면 변수가 발생 했을 때, 적절한 대응을 할 수가 없다.큰 줄기만을 계획하고 세밀한 부분은 필드에서 각 선수들의 역량에 맡긴다. 이제 객체들의 세트 플레이를 생각해 보겠습니다.요구사항은 언제나 변한다. 설계대로 진행 되는 법이 없다.구체적이고 절대적인 구현에 집착하면 변화가 발생 했을 때 대응 할 수가 없다.설계는 인터페이스 단계에서 멈추고, 변화에 민감한 알고리즘은 객체 안에서 수용한다. 승리라는 하나의 목표를 위해서 여러 명의 선수들이 경기에 ..

소프트웨어 공학 2014. 9. 15. 11:54

재귀 호출

개요 이번 주제의 핵심은 재귀호출을 이해하는 것입니다. 재귀호출을 이해하기 위해서는 우선 함수가 호출 되었을 때 컴퓨터 내부에서 어떤 일이 벌어지는 아는 것이 도움이 됩니다. 따라서 간단하게 함수 호출의 원리를 설명하고 이어서 재귀호출에 대한 설명으로 이어가겠습니다. 함수 호출의 원리 일반적인 함수 호출 및 리턴 과정 C 언어를 이용하여 프로그램을 작성하던 중에 main() 함수에서 "함수 A"를 호출했는데, 다시 "함수 A"에서 "함수 B"를 호출하고, "함수 B"가 다시 "함수 C"를 호출한 경우를 그림으로 표현한 것입니다. main() 함수 중간에 "함수 A"를 호출하면서 코드 진행이 "함수 A"의 처음 부분으로 옮겨갑니다. "함수 A" 함수 중간에 "함수 B"를 호출하면서 코드 진행이 "함수 B"..

소프트웨어 공학 2013. 12. 17. 17:49

클래스 상속과 인터페이스 구현의 차이 #2

근래 제 블로그에 "클래스 상속과 인터페이스 구현의 차이"를 검색해서 들어오는 사례가 많아서 해당 글을 다시 한 번 정리합니다. (원글은 http://ryulib.tistory.com/76 에 있습니다.) 기본적인 개념 설명 결론부터 말한다면, 클래스 상속은 is-a 관계를 나타냅니다. 인터페이스 구현은 can-do 관계를 나타냅니다. 그리고, is-a 관계는 태생부터 무엇인가 기질을 타고 난 경우를 말합니다. 부모가 황인종이기 때문에 저도 황인종입니다. 이것은 상속 받은 유전적이며 선천적인 형질입니다. 저는 태어나면서부터 프로그래밍을 할 줄 알았던 것은 아니지만, 지금은 할 줄 알고 있습니다. 이런 후천적인 형질은 can-do 관계라고 할 수 있습니다. [그림 1] [그림 1]을 보면 "자식"은 부모에..

소프트웨어 공학 2013. 12. 12. 21:42

PC 화면 압축과 실시간 전송에 대한 연구

1997년 실시간 온라인 바둑 강의 시스템을 만들고 난 뒤부터 줄 곳 PC 화면을 실시간으로 송출하는 알고리즘을 만들어 왔습니다. 물론 업무에 시달리면서 틈틈이 해왔기 때문에 대부분의 시간은 집중하지 못하였지만, 근래 4년 동안은 상당히 많은 시간을 이 분야에만 매달려 왔습니다. 일단 PC 화면을 압축하는 방법 중에는 H264와 같이 이미 검증 된 솔루션을 사용해도 무방합니다. 하지만, 이는 압축하는 데 CPU 성능을 상당히 요구하며, 해상도가 큰 화면에서는 버겁습니다. (제 고객 중에는 1680x1050 해상도로 강의하시는 분도 계심) 또한 영화와 같이 변화와 컬러의 분포가 고른 동영상의 경우라면 몰라도, PC 화면처럼 변화가 대부분 극소적이 영역에서 그치고 컬러의 분포가 고르지 않는 경우에는 일반적인..

소프트웨어 공학 2013. 10. 20. 10:57

HiMyTV 방송 서버 구조 #2 - DB에 대한 비동기 처리

[그림 1] 이번에는 방송 서버의 다른 기능을 좀 부각해서 설명을 이어 갑니다. 바로 데이터베이스를 비동기로 처리하는 내용입니다. 지난 포스트의 클래스 다이어그램에서는 표시되지 않았지만, 룸서버는 데이터베이스를 처리하는 TDatabase 클래스와 상호 협조를 하고 있습니다. TDatabase는 일반적인 데이터베이스 시스템일 수도 있고, 현재 서비스에서처럼 http 프로토콜을 이용해서 사용자 정보 등을 쿼리해 올 수도 있습니다. 일단 예제로 로그인 과정을 한 번 살펴보도록 하겠습니다. [소스 1] 로그인 과정 procedure TRoomServer.rp_Login(AConnection: TConnection; ACustomData: DWord; AData: pointer; ASize: integer); v..

소프트웨어 공학 2013. 7. 22. 07:54

추가 정보

인기글

최신글

페이징

이전
1 2 3
다음
TISTORY
류종택의 프로그래밍 강의실 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바