김범수의 개발공부기록

2020-03-20 TIL

|

Today I Learend

윈도우즈 프로그래밍

  • 오늘은 윈도우즈 프로그래밍 OT 후 첫 강의다. 오늘은 C#에 대한 간단한 설명 및 실습을 배워보았다.
  • 느낀점 C# 에서 Hello World를 출력하는 예제를 실습해보았다. Winform 과 WPF에서 각각 버튼과 팝업창을 만들어 보는 예제를 해보았다. 버튼을 드래그해서 쉽게 만들어내고 UI를 편리하게 생성할 수 있어서 좋았다. Java에서 직접 하나하나 타이핑해서 만들어내는 것이 아니라 손쉽게 버튼을 만들어내니 재밌고 신기했다. 역시 윈도우 응용프로그램을 만들 때에는 C#이 정말 편한거 같다. 왜 프로그래밍의 목적에 따라 다른 언어들을 사용하는지 알 것 같다.

이산수학

  • 이산수학 1.4 까지 수강을 완료하였다. 전에 독학으로 했던 논리와 증명 파트를 다시 복습하는 기분으로 수강하였다.
  • 논리적 동치식을 이용하여 동치인가를 파악하는 문제는 꽤나 연습이 필요해 보였다. 교수님께서는 이를 집합과 유사하다고 가르쳐주셨다. AND는 교집합 OR은 합집합 NOT은 여집합 True는 전체집합 False는 공집합과 동일하다.
  • 만족 가능성과 술어논리에 대한 부분은 여전히 헷갈린다. 복습이 필요하다

Java 프로그래밍

  • Java 에 대한 기본적인 내용에 대해 배웠다. Java는 내가 이것이 자바다를 통해 선행 학습한 경험이 있어 익숙했다.
  • Java는 여러 플랫폼에서 작동할 수 있는데 이는 자바 코드를 플랫폼 독립적인 바이트 코드로 컴파일 하고 이를 플랫폼 종속적인 JVM 위에서 작동하기 때문에 여러 운영체제에서 각 운영체제에 맞는 JVM을 통해 다른 플랫폼으로 생성된 java 파일을 실행할 수 있게 된다.
  • Java에서는 멀티쓰레드를 지원하는데, 멀티 쓰레드를 알기 위해서는 멀티 프로세스에 대해 알아야한다. 멀티 프로세스는 하나의 cpu에서 하나의 프로세스만을 작동할 수 있지만 속도가 매우 빨라 여러 프로세스를 받아 번갈아가면서 실행해 동시에 여러 프로세스를 동시에 실행하는 것과 같이 느껴지는 것을 멀티 프로세스라고 한다. 멀티 프로세스에서는 자원을 공유하지 않는다.
  • 멀티 쓰레드는 하나의 프로세스를 여러 개의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화 하여 수행 능력을 향상시키는 것이다.

느낀점

  • 학교 사이버 강의 서버가 터지면서 여러 강의를 수강하지 못하고 1주차 학습을 마치게되었다. 아마 다음 주 부터는 사이버강의 서버가 터지지 않는다면 다른 모든 강의를 수강할 수 있을 것 같다.

Comments