본문 바로가기

분류 전체보기

(13)
[C#] DataGridView 로딩 시 셀 선택 막기 C# WindowForm 프로그램을 개발하다보면 DataGridView를 한번 쯤은 사용하게 된다. 보통 아무 설정을 하지 않았다면 DataGridView가 생성된 후 첫번째 셀이 자동으로 선택되어있다. 이것을 막으려면 다음과 같은 코드 둘 중 하나를 사용하면 된다. DataGridView.CurrentCell = null; DataGridView.ClearSelection(); 여기서 DataGridView는 본인이 생성한 그리드뷰의 객체가 오면 된다. ※ 만약 로딩 후 그리드뷰의 행들을 갱신 시킨다면 갱신시킨 후 위의 코드를 작성해야 셀 선택이 해제된다.
[Algorithm] 요일 구하는 알고리즘 앱을 개발하다가 특정일의 요일을 구해야하는 일이 생겨서 구글링을 해보았는데 알고리즘 세계에서는 꽤 흔한 알고리즘인 듯 하다.. 조건은 다음과 같다. Q . 2020년 1월 1일이 수요일 일 때 2020년 M월 D일이 무슨 요일인지 구하는 알고리즘을 작성하시오. A . #include #include using namespace std; string getWeekDay(int m, int d) { int month_list[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; string week_day_list[7] = {"WED", "THU", "FRI", "SAT", "SUN", "MON", "TUE"}; string week_day = ""; int t..
[Linux] 리눅스 가장 기본적인 명령어 10가지 요즘에는 리눅스를 사용한다고 꼭 터미널을 사용하지 않아도 된다. 우분투와 같은 GUI 환경의 리눅스가 나오면서 개발자들에게도 어느정도의 편의를 제공해주지만 역시 터미널을 사용하지 않고서는 리눅스를 쓸 큰 이유는 없다. 이번에는 리눅스를 사용할 때 가장 많이 사용하게 되는 기본적인 명령어 10가지를 정리해보겠다. 명령어 설명 ls 현재 위치의 파일, 디렉토리 목록 조회 pwd 현재 위치를 절대 경로로 조회 cd 디렉토리 이동 mkdir 디렉토리 생성 rm 파일 제거 mv 파일 이동 cp 파일 복사 cat 파일 내용 출력 find 파일 찾기 clear 화면 지우기 1. ls list 의 약자이다. 현재 위치에 있는 파일이나 디렉토리의 목록을 보여준다. 사용법 ls -l : 파일, 디렉토리 목록 상세 조회 l..
[C#] 동기 소켓 프로그래밍 예제 소켓 프로그래밍의 기본 개념을 알고 있다면 구현은 2가지 방법으로 가능하다. [C#] 소켓 프로그래밍의 기본 개념 소켓을 사용하려면 동기 / 비동기 방식 중 하나를 선택한다. 동기 방식을 쓰면 비교적 간단하지만 요청/응답 중에는 어플리케이션의 다른 기능들이 동작하지 않는다. 말 그대로 어플리케이션의 메인쓰레드와 동기로 동작하기 때문에 메인쓰레드가 할 일을 모두 잡아먹는다. 반면에 비동기 방식은 어플리케이션의 메인쓰레드와 비동기로 동작하기 때문에 메인쓰레드는 간섭하지 않는다. 따라서 메인쓰레드로는 나머지 원하는 작업을 진행시킬 수 있고 백그라운드에서 소켓의 송수신이 이루어진다. 이번에는 우선 동기방식부터 다루려고 한다. 서버와 클라이언트 순서는 상관 없지만 일단 클라이언트 소켓에 관한 예제이다. Clien..
[C#] 소켓 프로그래밍의 기본 개념 프로그램에서 네트워크를 통해 데이터를 송수신 할 때 쓰이는 개념, 장치 중에 하나로 '소켓' 이라는 것이 있다. 소켓의 원래 뜻은 "구멍, 연결"과 같은 사전적인 의미를 갖는다. 물론 컴퓨터에서의 소켓은 실질적인 물체는 아니고 일종의 인터페이스 역할을 해주는 것인데 사람 입장에서 이해하기 쉽게 추상적인 것을 소켓 이라는 이름으로 정의 내렸다. TCP/IP 라는 규약을 가지고 네트워크 상에서 콘센트 역할을 하며 데이터를 주고 받기 때문에 우리는 이것을 '소켓 프로그래밍' 이라고 부른다. 아무것도 모르는 입장에서 이렇게만 들으면 도대체 소켓이 뭔지 알길이 없지만 사실 쓰임은 간단하다. 프로그램에서 네트워크를 통해 다른 프로그램, 기기, 컨트롤러 등과 데이터를 주고 받고 싶다면 소켓을 생성해서 사용하면 된다...
[C#] 문자열 자르기 - Substring, Split, IndexOf 의 사용 언어를 불문하고 문자열을 자를일 조차 없는 프로그램은 드물것이다. 다른 언어로는 많이 했었지만 C# 으로는 처음 해보기 때문에.. 다행히 Substring 과 Split 이라는 통용되는 이름의 함수가 C# 에도 존재했다. 사용법도 다른 언어들과 비슷할 것 같으니 한번 사용해보자. Substring String 클래스의 Substring() 은 문자열의 원하는 위치, 길이만큼 자르고 싶을 때 사용한다. 2가지 사용법 Substring(Int32) : 지정된 문자위치에서 문자열의 끝까지 탐색해 반환한다. Substring(Int32, Int32) : 지정된 시작위치에서 지정된 길이만큼 탐색해 반환한다. string test = "This is the test"; Console.WriteLine("{0}", ..
[C++] 구글 C++ 코딩 스타일가이드 번역 언어는 약속이다. 코딩 또한 약속된 문법은 같지만 수많은 사람들이 본인만의 스타일로 코딩을 한다. 정답은 없지만 구글처럼 체계가 잘 잡힌 회사라면 코딩 규약도 깔끔하게 잘 잡혀있지 않을까? 모두가 100% 공감할 수는 없겠지만 그래도 구글이니 한번 알아보자. 구분선 아래는 개인적인 의견이 아닌 구글 공식 가이드의 번역임 일반적인 이름 규칙 다른 팀에서도 알아볼 수 있을 정도로 가독성이 좋으며 분명한 이름이어야 한다. 목적과 의도에 맞는 이름으로 지을 것. 이름이 길어지는 것은 신경쓰지 않는다. 그것보다 훨씬 중요한 것은 그 코드를 처음보는 사람을 즉시 이해 가능하게 하는 것이다. 단어 사이의 글자를 지워 약어로 만드는 것은 좋지않다. 단, 위키피디아에 실려 누구나 알 수 있을 정도의 약어라면 사용 가능...
[C#] 파일 이동 및 복사, 삭제 C#에서 파일을 읽고 쓰는 것 뿐만 아니라 이동하거나 복사하고 삭제하는 작업도 할 수 있다. 파일을 읽고 쓰는 것보다도 간단하며 경험상 속도도 굉장히 빠르다. string file_name = "test.txt"; string source_path = @"C:\Users\user\Desktop\old"; string target_path = @"C:\Users\user\Desktop\new"; string source_file = System.Io.Path.Combine(source_path, file_name); string dest_file = System.Io.Path.Combine(target_path, file_name); 일단 파일과 경로를 지정하는 코드이다. Path클래스를 사용해서 파일의 ..