All Pages
1. 소켓 네트워크
1. 소켓 네트워크
2023.10.06Socket Socket Socket은 단말(eg. 전화기)을 논리적으로 추상화한 형태로, 일반적인 프로그램의 네트워크 기능은 Socket 표준 기반으로 구현되어 있다. C, C++, C#, Java, Python 등 프로그래밍 언어에서 사용하는 네트워크 라이브러리는 내부적으로 Socket 표준을 기반으로 한다. 그 중, 가장 기반이 되는 Low level Socket API 는, C언어 POSIX library 에 포함된 된 이다. 프로그래밍 언어마다 사용법이 상이한 네트워크 라이브러리 제공하더라도, Socket 을 조금 더 편리하게 사용하도록 발전된 형태의 라이브러리들에 불과하다. 그렇기에 C#, Java, Python 도 C언어의 Low level Socket API 와 비슷한 구현이 가능한 방법을..
Thread 04. Task, Async, Await
Thread 04. Task, Async, Await
2023.10.05비동기 프로그래밍CPU(중앙처리장치)는 정말 많은 작업을 요청받고 처리한다. 데이터를 읽고 쓰고, 네트워크로 데이터를 주고 받고, 화면 픽셀을 계산하는 작업 모두 중앙처리장치의 처리가 필요하다. 이런 중앙처리장치가, 특정 작업의 완료를 기다리는 것은 너무 비효율적이다. 그래서 중앙처리장치가 비효율적으로 낭비되지 않도록 비동기 프로그래밍 기술을 사용하여, 중앙처리장치가 입출력과 같은 낭비될만한 작업을 기다리는 대신 다른 업무를 처리하도록 하고 입출력이 완료되었을 때 기존 작업을 다시 시작하도록 프로그래밍한다. C# 에서 비동기 프로그래밍C# 에서 비동기 프로그래밍 Thread, ThreadPool 기반 기술로 시작했지만, Task Parallel Library (TPL) 기반 기술과 async / awa..
Thread ③ 스레드 사용법, 예제
Thread ③ 스레드 사용법, 예제
2023.10.04C# 은 MSDN이 정답이다. C# Threading 관련 기술 Thread System.Threading 네임스페이스에 정의되어 있다 .NET Framework 1.0부터 사용 가능하다 Thread에 실행될 로직을 넘겨주며, 생성한 후 명시적으로 실행 해야 한다. Thread는, 생성, 삭제될 때 상대적으로 많은 시스템 자원을 사용해 비효율적이다. ThreadPool 은 Thread 를 미리 생성해 두고, 필요할 때 사용하고 반환하는 방식으로 기존 Thread 를 개선했다. ThreadPool System.Threading 네임스페이스에 정의되어 있다 .NET Framework 1.0부터 사용 가능하다 ThreadPool은 특정 이름을 지정할 수 없다. Join 과 같은 조정을 사용할 수 없다. 백그라..
3. 닷넷(.NET) Framework
3. 닷넷(.NET) Framework
2023.10.04C# 을 공부하다는 것은, 닷넷(.NET) 프레임워크를 공부한다는 의미다. 학습방향 프레임워크란 무엇인가? 프로그래밍에서 프레임워크는 왜 중요한가? .NET 플랫폼에서 프레임워크를 이해해야 하는 이유는? Visual Studio 살펴보기 개발 프레임워크 선택 프레임워크(Framework) 의미 [어원] 'FRAME (틀, 규칙)' + 'WORK (작업)' 시스템 시스템은 왜 사용할까? 프렌차이즈는 매장 인테리어부터, 메뉴구성, 결제시스템, 접객 및 운영 방법까지 모든 것을 제공해 준다. 제조공정 - 분업과 대량생산, 그리고 생산 효율 향상 프레임워크 예 버튼, 폼 양식, 다이얼로그 등과 같이 자주 사용되는 UI를 미리 구현해서 제공하는 프레임워크이다. 프레임워크와 라이브러리 차이 프로그래밍 언어도, 정해..
2. 닷넷(.NET) Platforms
2. 닷넷(.NET) Platforms
2023.10.04C# 은 의 프로그래밍 언어 중 하나다. 학습방향 플랫폼은 무엇인가? 프로그래밍에서 플랫폼과 아키텍쳐는 왜 중요한가? .NET 이 추구하는 개발 플랫폼이란? Visual Studio 에서 살펴보기 프로젝트 생성 과정 개발 플랫폼 선택 Platform 의미 사람이 모이는 곳 [어원] ‘Flat(평평한) + Form(모습)’ 사람은 왜 모일까? 그곳에서만 가능한 무엇인가를 하기 위해서 특정 서비스를 이용하기 위해서 승강장 - 사람들이 기차를 쉽게 타고 내릴 수 있도록 평평하게 만든 장소를 의미한다. IT 산업과 Platform 플랫폼은 다양한 종류의 시스템이나 서비스를 제공하기 위해 공통적이고 반복적으로 사용하는 기반 모듈, 어떤 서비스를 가능하게 하는 일종의 ‘토대’로 정의한다. 제품·서비스·자산·기술·노..
1. 프로그래밍이란?
1. 프로그래밍이란?
2023.10.04더보기 파이썬 자료형 기본 자료형 - 숫자형, 문자형 복합 자료형 - 리스트, 딕셔너리, 튜플 로직, 순서도 순차구조, 선택구조, 반복구조 함수 로또, 숫자야구, 달력, 가위바위보 미니 프로젝트 키오스크 C언어 자기 주도 학습 C언어 스터디 학습 계획서 일정표 C언어 개발환경 설정 VSCode 에디터 MinGW 컴파일러 프로그래밍이란? 빌드, 실행 프로그래밍 언어, 어셈블리, 기계어 자료형 10진수, 2진수, 16진수 bit, Byte ASCii 로직, 순서도 파이썬 예제, 과제 컨버팅 별찍기, 피라미드 만들기, 풍차 돌리기 메모리 값의로 전달 포인터로 전달(참조) 미니 프로젝트 레전드 오브 복이 외전 "지호의 대모험 C++ 자기 주도 학습 C++ 스터디 학습 계획서 일정표 분할 컴파일, 헤더 사용 이유..
영문 입력 키보드 레이아웃 제거
영문 입력 키보드 레이아웃 제거
2023.09.23문제. 윈도우 기본 언어를 English, 입력을 Korean 으로 쓰게 되면 아래 이미지 왼쪽처럼 입력에서 English(US) 가 기본 입력 레이아웃으로 추가되어 삭제가 불가능하다. 한/영 전환시 불편하다. 해결법. Add a language 에서 언어를 english (united states) 로 설치하고 삭제하면, 입력에서 레이아웃이 제거된다. 순서. ① win + i ② Time & language >> Language & region ③ Add a language 클릭 ④ english (united states) 검색 ⑤ 체크 해제 후, 설치 ⑥ 설치된 english (united states) 제거 ⑦ 입력 레이아웃에서 English(US) 가 삭제된다.
VS2022 터미널 한글 깨짐
VS2022 터미널 한글 깨짐
2023.09.221. 시스템 로케일 korean 으로 수정https://basiclike.tistory.com/6 대부분 여기서 해결된다.1번으로 해결 안되면, 2번 실행2. 위 시스템 로케일 수정에서 Unicode UTF-8 사용 체크[시스템 로캘 변경] >> Beta : 세계 언어 지원을 위해 Unicode UTF-8 체크2번으로 해결 안되면, 3번 실행 *참고로, 한컴 문서를 사용하는 사람은, 시스템 로케일을 수정하면 안됨. 복붙시 한글 깨짐 발생함3. 비주얼 스튜디오 설정Visual Stdio 실행 후 도구(t) > 옵션 > 텍스트 편집기 > 일반 > 서명 없는 UTF-8 인코딩 자동 검색 체크 해제
3. Hello World :)
3. Hello World :)
2023.09.20Visual Studio 프로젝트 만들어서, 콘솔에서 Hello World 출력 해보세요 using System; using System.Threading; class Program { static void Main(string[] args) { Console.WriteLine("Hello Project"); Thread.Sleep(2000); } } ① Visual Studio → Create New Project ①.① Hello World Console Project ①.② 솔루션, 프로젝트 솔루션 속성→Startup Project, 프로젝트 속성→Target Framework ①.③ Build, Rebuild, Clean ①.④ Debug, W/ Debug ①.⑤ cs 파일 삭제 후 새로 만들기 ..
우분투에서 윈도우 멀티 부팅 설치
우분투에서 윈도우 멀티 부팅 설치
2023.09.19굳이 우분투에서 윈도우 멀티 부팅 세팅을 할 이유가 없다.아래 2가지 방법이 가장 쉽다. Windows 설치 후 우분투를 설치Windows 에서 WSL 이용 하지만 굳이 우분투에서 윈도우 멀티 부팅 세팅을 하려면 아래와 같은 순서를 따른다. 우분투에서 윈도우 멀티부딩 설치 방법 요약 uBuntu 설치 USB 에서 uBuntu liveUSB mode 실행gparted 프로그램으로 파티션 분할윈도우 설치 가능한 ntfs 파일 시스템 설정분할된 파티션에 윈도우 설치GRUB bootloader 복구 우분투에서 윈도우 멀티부딩 설치 방법 상세1컴퓨터 시작시 f2, f5, del 등으로 BIOS 진입USB로 부팅되도록 설정 2부팅 usb에서 ubuntu 선택Boot in normal mode 선택ubuntu 선택로..
Linux Package Tool 이해와 사용
Linux Package Tool 이해와 사용
2023.09.15linux window 에서 오피스 문서 프로그램을 사용하려면, 오피스 프로그램을 다운받아 설치하고 실행했다.리눅스에서는 이런 과정을 package 로 처리한다. package 관련있는 파일 모음 linux package 정의 프로그램이 실행하는데 필요한 파일(설치, 설정, 라이브러리 등) 모음윈도우의 설치, 삭제 프로그램 파일에 해당한다.리눅스는 패키지 단위로 프로그램을 관리한다. linux package 구분 소스 패키지(Source Package)오픈 라이브러리소스코드 수정 가능실행 환경에 맞게 컴파일 하여 사용 가능 바이너리 패키지(Binary Package)컴파일 된 실행 파일로, 다운 후 곧바로 실행 가능실행 환경과 맞지 않는다면 실행 문제 발생패키지 의존성(별도의 라이브러리가 추가적으로..
JDK 1.8.0 vs Java SE 8
JDK 1.8.0 vs Java SE 8
2023.09.11Oracle 공식 문서 Both version numbers (1.6.0 and 6) are used to identify this release of the Java Platform. Version 6 is the product version, while 1.6.0 is the developer version. The number 6 is used to reflect the evolving level of maturity, stability, scalability and security of JavaSE. Java 버전 정보 표기법 두종류는 같은 의미다. SE(Standard Edition, 공식 제품 버전) JDK(Java Development Kit, 개발 킷 버전) 6 = 1.6 7 = 1.7 8..