Auto-Property
·
C#
public int Age { get; set; }⬇️private int _age;public int Age{ get { return _age; } set { _age = value; }} ⬇️class Student{ public string Name { get; set; } public int Age { get; set; }}// 보통 특별한 경우가 아닌 이상, 이렇게 많이 사용 get만 쓰면 읽기 전용
C# 클래스 만들기
·
C#
1. class 키워드 사용: class 키워드를 사용해 클래스를 선언2. 클래스 이름 정의: 클래스 이름은 대문자로 시작하는 것이 일반적3. 멤버 정의: 클래스 내부에 필드(변수)와 메서드(함수)를 정의하여 객체의 속성과 동작을 구현 // 클래스 정의public class Person{ // 필드 (속성) public string Name; public int Age; // 생성자 (객체를 만들 때 호출되는 특별한 메서드) public Person(string name, int age) { Name = name; Age = age; } // 메서드 (동작) public void Introduce() { Conso..
반복문과 제어
·
C#
반복문(while, do while, for, foreach)제어문(break, continue, goto, return, throw) 이해 및 사용
ini 프로그램 10/31 완성본 (클래스 사용전)
·
C#
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO; // 파일스트림using System.Windows.Forms; // OpenFileDialogusing System.Runtime; // Trimnamespace IniProgram{ public partial class Test : Form { // string filePa..
객체지향(OOP) / 클래스
·
C#
데이터와 메서드를 하나의 단위로 묶어서 캡슐화이를 통해 객체를 생성하고 사용 클래스는 일종의 설계도이며,설계도에 맞게 실체를 만든 것이 객체 기본형태[접근제한자] class [클래스명]{ // 데이터 // 메서드 } 접근제한자: 1. public2. private [ 키워드 ]식별자: 클래스, 매서드, 변수 등을 구별하기 위해 지을 수 있는 이름 클래스: 새로운 데이터 타입을 만드는 방법 중 하나 매서드: 클래스 내에서 일련의 코드 블럭을 실행시키는 함수 변수: 데이터를 담을 수 있는 메모리 공간, 고유한 이름을 갖음 오버로딩: 동일한 이름으로 여러 개의 메서드를 작성 오버라이딩: 기존에 있는 연산자를 재정의 하여 기존과 다른 기능을 수행하도록 함 네임스페이스: 클래스를 담아 ..
break문 분석
·
C#
private void showValue(string userInputSection, string userInputKey, string[] data) { // 존재한다면? 밸류값 띄우기 // A 섹션의 1번 Key의 값은 a 이다. // 키의 인덱스와 같은 인덱스를 가진 밸류값을 찾으면 됨 // 아 근데 이거 어떤 섹션인지 어떻게 구분하지? // 클래스를 만들어야하나? // 일단 유저가 입력한 섹션의 인덱스번호에 +1,+2,+3을 해서 찾자 // ini 데이터를 한줄씩 담은 배열 = data // 유저가 입력한 섹션이 data에서 몇번째..
data 변수의 자료형을 list<string> 으로 바꾼 버전
·
C#
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO; // 파일스트림using System.Windows.Forms; // OpenFileDialogusing System.Runtime; // Trimnamespace IniProgram{ public partial class Test : Form { // string filePa..
ini 프로그램 (노지피티)
·
C#
[프로그램 개요]- ini 파일을 읽고 수정할 수 있다.1. 파일을 읽는다.2. 파일을 조회한다.3. 파일을 수정한다.4. 파일을 저장한다.# 피드백1. 리스트 원리2. 주석은 나를 위해 다는 것3. 좀 더 개발속도 높이기 = 개인시간 할애하기(정공법)4. 기능수행 검증하면서 하기using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO; // 파일스트림using Syste..
반복문 for VS for each 차이
·
C#
for 문은 인덱스를 직접 제어하며 반복 횟수를 지정하는 데 유용하고, foreach 문은 컬렉션의 요소를 순차적으로 가져와 각 요소에 대해 반복하므로 코드가 더 간결해집니다. for 문은 인덱스 기반 접근이 필요할 때, foreach 문은 단순히 컬렉션의 각 항목에 대한 작업을 수행할 때 주로 사용됩니다. for문은 인덱스를 직접 제어하며 반복 횟수를 지정하는데 유용함특정 인덱스 접근이 필요할 때 사용 foreach문은 모든 요소를 순차적으로 가져와 반복하므로 코드가 더 간결함
ini 프로그램 (gpt 사용)
·
C#
Form1.csusing System;using System.IO;using System.Windows.Forms;namespace PRAC_251024{ public partial class Form1 : Form { // --- 전역 변수 선언 --- // ini 파일 경로 string iniFilePath; // 섹션 이름을 저장할 배열 (예: [A], [B], [C]) string[] sections; // 각 섹션별 키의 값을 저장할 2차원 배열 // 예: values[섹션인덱스, 키인덱스] = "값" string[,] values; // 섹션 개수 (현재까지 몇 개의 섹션..
바코드 종류
·
카테고리 없음
1. 1D 바코드우리가 흔히 마트에 가면 상품에 붙어있는 바코드이다.정보가 1차원 방향으로만 표현되어있다. 2. 2D 바코드정보가 2차원 방향으로 표현되어있다. [ 참고 사이트 ]https://retailtalk.co.kr/Trend/?bmode=view&idx=16947915
C# ini 파일 읽기
·
C#
ini 파일은 보통은 시작할때 읽어들이는 정보를 담은 파일을 뜻함. C#에서 ini 파일을 읽으려면 System.IO 네임스페이스를 사용하거나,kernel32.dll 의 GerPrivateProfileString 함수를 이용할 수 있음.System.IO를 사용하면 파일을 직접 파싱하여 읽고, kernel32.dll을 사용하면 Windows API를 호출하여 ini 파일의 값을 읽어옴. 주로 ini파일은 값이 자주 바뀌는 경우에 사용, 자주 바뀌지 않는 다면 app.config나 xml파일도 사용함 커널쓰지않고 클래스 추가하여 사용하는 법https://plzhoney.tistory.com/39
.ini 파일
·
C#
변수값을 하드에 저장해야 할 때, C#에서는 ini 파일을 사용함ini파일은 매개변수와 섹션으로 이루어져 있고, 매개변수는 이름과 값을 가지고 있다.[섹션]키=밸류[owner]name=홍길동organization=최고의 제품[database]server=192.0.2.62port=143file="payroll.dat"using System.Runtime.InteropServices; //DllImport이게 있어야 [DllImport("kernel32")] 이거를 할 수 있다.using System;using System.Runtime.InteropServices; // DllImportusing System.Collections.Generic;using System.ComponentModel;using..
파일 입출력
·
C#
**스트림(Stream)**은파일,네트워크,메모리 등 다양한 데이터 소스와 상호작용하는 방식데이터를 연속적인 흐름 으로 처리하며, 파일을 다룰 때 효율적이고 유연한 방법을 제공 클래스설명File파일에 대한 생성, 복사, 삭제, 이동 및 열기를 위한 정적 메소드를 제공FileInfo 파일에 대한 생성, 복사, 삭제, 이동 및 열기를 위한 속성 및 인스턴스 메소드를 제공FileStream 파일에 대한 스트림을 제공하여 동기 및 비동기 읽기/쓰기 작업을 모두 지원StreamReader 문자열에서 읽어오는 TextReader를 구현함StreamWriter TextWriter를 구현하여 특정 인코딩의 스트림에 문자를 씀 파일 쓰기 File.WriteAllText파일 읽기 File.ReadAllText using..
시리얼 통신
·
C#
시리얼 통신이란?직렬 연결이라는 뜻을 가지고 있으며, 직렬 연결은 한번 에 하나의 비트단위로 1(High)과 0(Low)의 신호로 데이터를 전송하는 통신 방법을 말한다. 이러한 시리얼 통신도 동기식과 비동기식의 2가지 방법으로 분류가 된다. 컴퓨터와 외부장비간의 통신에 주로 사용데이터를 한번에 하나의 비트 단위로 순차 전송하는 직렬 통신 방식대표 예시: rs-232, USB, 이더넷 ㄴ컴퓨터와 주변 기기를 연결하기 위한 비동기식 직렬 통신 표준 장점: 단순하고 저렴 / 긴 통신거리단점: 전송 속도 느림 https://learn.microsoft.com/ko-kr/dotnet/api/system.io.ports?view=netframework-4.7.2윈폼은 도구상자에 시리얼포..
JooFarm 프로젝트 개요
·
카테고리 없음
# 프로젝트 개요 – JooFarm (C# WPF, Windows 10 기준)## 1) 한눈에 보는 프로젝트- **프로젝트명:** JooFarm - **플랫폼/기술:** C# (.NET 8) + WPF + MVVM (CommunityToolkit.Mvvm), Visual Studio 2022 - **장르/목표:** 1주 스프린트로 만드는 **라이트 농장 경영 게임**(타일 기반 플롯 관리, 작물 성장 3단계, 수확·판매 루프) - **핵심 컨셉:** “**바이브 코딩(Vibe Coding)**”을 개발 방식 전면에 내세워, **AI와의 페어 프로그래밍**으로 설계·코드·에셋·문서를 빠르게 반복 개선 - **어셈블리명:** `JooFarm` (pack URI 및 네임스페이스에 동일 사용)---## ..
qmake 를 이용한 프로젝트 빌드
·
카테고리 없음
Qt 에서 제공하는 qmake 는 프로젝트 빌드하기 위해서 제공하는 툴이다.프로젝트에 는 소스코드 외에도 이미지 파일, 설정파일, uic, moc 등 파일들이 있다.이러한 파일들 을 이용해 쉽게 빌드할 수 있는 툴이라고 보면 된다.그리고 Debug 모드로 빌드 할 때 또는 Release 모드로 빌드할 때 어떤 특징을 조건으 로 설정할 수 있다.qmake 는 확장자가 .pro 이며 파일명은 프로젝트 이름을 사용한다.CMake 의 프로젝 트 파일명은 CMakeList.txt 이지만 qmake 의 프로젝트 파일 이름은 [프로젝트 명.pro] 이 된다.예를 들어 프로젝트명이 MyApp 이면 프로젝트 명은 MyApp.pro 가 된다.qmake 는 지금까지 가장 많이 사용된 빌드 도구 이다.
[MyCoach] 문제해결과정 - 체크리스트 생성 로직 수정 (요일 회전 기반)
·
프로젝트
# 요일 회전 기반 체크리스트 생성 로직 문제 해결 보고서## 1. 문제 파악- AI 기반 루틴 생성 플랫폼(MyCoach)에서, 사용자가 플랜을 실행할 요일을 자유롭게 선택(예: 수, 목 등)해도, 체크리스트 배열은 항상 월~일 순서로만 생성되어 원하는 순서대로 표시되지 않음.- 예를 들어, 시작일이 목요일이고, 실행 요일이 수·목이면 체크리스트상에서 실행 요일의 위치가 어색하게 배치되는 현상 발생.## 2. 원인 분석- 기존 generate_checklist 함수는 요일 리스트(days=[0,0,1,1,0,0,0])를 월~일 순서로 고정해서 반복문을 돌려 체크리스트를 만들고 있었음.- 사용자 루틴의 "시작 요일(start_day)"이 언제이든 상관없이, 체크리스트 배열은 항상 월요일부터 시작됨.- 실..
[MyCoach] 1-0-3 요청에 대한 응답도 1-0-3으로 할까?
·
프로젝트
고민: 1-0-3은 플랜 수정 요청이다.플랜 최초 생성이든, 수정이든 상관없이 1-0-2로 응답 해주고 있다. 그런데 수정 요청에 대한 응답은 1-0-3으로 보내주는게 좋을지 고민이 들었다. 결론은 만약 히스토리 관리나 ‘생성/수정 구분’ 기능이 불필요하다면단일 프로토콜(1-0-2)만으로도 충분함 1-0-3 으로 응답할 경우에 장점은 다음과 같다. 1) 플랜 히스토리/이력 관리가 명확1-0-2는 “최초 생성 결과”1-0-3은 “수정 결과”⇒ 서버, DB, 사용자 모두 ‘플랜의 생성/수정 구분’을 명확하게 알 수 있음2) 서버, 프론트에서 분기처리 용이어떤 응답이 “최초 플랜”인지 “수정 플랜”인지 if문으로 구분 쉬움사용자에게 ‘수정됨’ 배지, 이전 플랜 복원’ 등 추가 UX 제공 용이3) 추후 확장성여..
n주차 잘 전송되는 코드
·
프로젝트
# main.pyimport utilsimport tcpipimport ai_engineimport protocol_handlerimport pprint # 이쁘게 출력# 서버 정보SERVER_IP = "10.10.20.111"SERVER_PORT = 9000def main(): print("🔌 서버 연결 시도 중...") sock = tcpip.connect_to_server(SERVER_IP, SERVER_PORT) if not sock: print("❌ 서버 연결 실패. 종료합니다.") return try: print("\n🚀 [1-0-0] 연결 요청") result = protocol_handler.handle_1_0_0(..