최근 1162회차 로또의 숫자가 특정 숫자대로 몰렸다.  

 

그 전의 1152회차도 .. 30번대로 압도적으로 몰렸다. 

 

 

 


 

 

📌 그렇다면 1172회차 로또 번호는 10번대로 예상할 수 있다!

 

하지만 뒤에 2개의 숫자가 다르다는점. 

10,11,12,15 이 4개 말고 다른 2개로 나올 수 있는데!

 

 

🔮 하지만.. 10번대가 아니라, 40번대나 1번대가 나올 가능성도 무시할 수 없다. 

 

 

 


 

최종적으로 10번대의 숫자의 모든 조합을 사려면 얼마가 필요할까?

10,11,12,13,14,15,16,17,18,19 (총 10개)

 

10개의 숫자의 모든 조합은 총 210개이다. 

 

210 * 1000원 = 210,000원!

 

21만원으로 최소 1억의 기회를 가질 수 있을까?!

도전해 보겠다 .

 

 

 

 

 

 

 

패키지 설치 없이 사용할 수 있는 간편한 디자인. 

 

 

1. 

Button일 경우 padding이 안먹히는데. 
ContentPresenter 속성의 margin으로 하면 내부컨텐츠를 움직일 수 있다. 
https://stackoverflow.com/questions/48804439/to-set-padding-for-textblock-inside-contentpresenter

 

To set padding for textblock inside ContentPresenter

<ControlTemplate TargetType="TabItem"> <Border x:Name="Border" Margin="{TemplateBinding Margin}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{

stackoverflow.com

 

 

2. 아주 기본 아이콘 

https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font

 

Segoe MDL2 Assets icons - Windows apps

This article lists and provides usage guidance for the glyphs that come with the Segoe MDL2 Assets font.

learn.microsoft.com

 

사용 방법(wpf용)

<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE760;" FontSize="32"/>

 

 

 

 

 

3. 이건 xml은 아니고  html, css 이뻐서 들고옴. 코드를 볼 수 있어서 참조용

https://www.frontendplanet.com/css-pagination-examples/

 

31 CSS Pagination Examples

 

www.frontendplanet.com

 

 

 

 

 

 

visual studio에서 Application already started 
프로젝트 복사 후 이름도 변경하고, 어셈블리 이름도 변경했는데 
왜 에러가 날까?

mutex 이름도 달라야한다.
나는 mutexName으로 되어있었다. 

ViewLoading.xaml.cs에 mutex가 존재했다. 

 

 

 

 

그냥 기본 설치시, Visual Studio에서 코드 내에서 Color 변경을 할 수 없다. 

추가적으로 설치를 해야한다. 아래에 방법을 적어 보았다.

 


 

Visual Studio Extension 사용 (Color Picker)

Visual Studio의 확장 기능을 설치하여 색상 선택기 개선.

Color Picker와 같은 확장 기능을 사용하면 더 직관적인 색상 선택기 도구를 제공 받음.

  1. 확장 기능 설치
    • Visual Studio에서 상단에 Extensions(확장) 메뉴를 열고, Manage Extensions(확장관리)를 선택.
    •  Color Picker와 같은 확장을 검색하여 설치 선택.
    • 모든 Visual Studio 관련 프로그램을 끄면 설치가 시작되고, Color Picker 도구를 사용할 수 있는 기능을 활성화 됨.

1, 2

 

 

색상 코드 아래에 색선이 생겼고, 그것을 선택하면, 왼쪽같은 창이 나온다. 

A라는 알파 (투명도)를 선택할 수 있어서 정말 편리하다. 

 

 

나는 컴퓨터 공학전공을 나왔으며, 정처기가 있다. 

뭔가 통신쪽을 공부하는겸 자격증을 따려고 찾아보니, 네트워크 

 

전자기기기능사,

통신기기기능사

통신선로기능사

Cppg, Ccna, ccnp

정보통신기사

전파전자통신, 무선설비, 방송통신, 전자기기, 전자계산기, 철도전기신호

등등이 나왔다. 

 

국가기술자격검정 사이트에서 관련 자격증들을 살펴볼 수 있다. 

 

 

 Ccna, ccnp은 40만원가까이 들고, 네트워크 관리사 1급을 작업형 실기가 있어서 그냥 

정보통신기사로 정했다. 

 

책은 이기적으로 골랐다. 다른건 뭐... 모르겠다. 

 

 

책을 읽어보니, 무선설비기사랑 조금 비슷한 내용이 많다고 한다. 

처음에는 정보처리기사가 있으니 뭐 나쁘지 않겠지?.... 라는 생각으로 시작했는데!

 

 

 


 

 

이게 무슨 말이지?

 

 

 

1장_ 정보전송일반 부터 무슨 소리인지 모르겠다. 

 

 

 

 


1). PCM, DM 등 원천부호화

원천부호화라는 것이 뭔말이지...?

 

목차, 대제목부터 막혔닼ㅋㅋㅋㅋㅋㅋ...

 

*원천부호화는 디지털 통신에서 정보를 효율적으로 표현하기 위해 사용하는 과정으로, 이를 통해 신호나 데이터를 디지털화하거나 압축하여 전송 효율성을 높이고, 통신 시스템의 대역폭 사용을 줄이는 데 도움을 준다.

원천 부호화는
일반적으로 아날로그 신호 -> 디지털 신호로 변환하거나, 디지털 데이터를 더욱 효율적으로 표현하는 과정.

 

3쪽을 읽고 문제도 풀면서 이해하니, 아주 간단한 말이 었다. 

아날로그 신호를 디지털 신호로 변환하는 것이고, 이에 관련된 PCM라는 과정을 더 깊이 있는 설명이 들어있다. 

 

 

1_1. PCM (Pulse Code Modulation, 펄스 부호 변조)

PCM은 아날로그 신호를 디지털로 변환하는 가장 기본적인 방식.

  • 단계:
    1. 샘플링(표본화): 아날로그 신호를 일정 시간 간격으로 측정(샘플링)합니다. 이때 샘플링 주파수는 나이퀴스트 이론에 따라 원 신호의 최대 주파수보다 최소 2배 이상이어야 합니다.
    2. 양자화(Quantization): 샘플링한 값을 일정한 디지털 값(레벨)으로 근사화.
    3. 부호화(Encoding): 양자화된 값을 이진수 형태로 표현.
  • 응용: 전화, 오디오 녹음, 디지털 방송 등에서 많이 사용.

1_2. DM (Delta Modulation, 델타 변조)

DM은 PCM보다 단순화된 부호화 방식으로, 신호의 변화량만을 표현.

  • 작동 원리:
    • PCM처럼 절대적인 신호 값을 기록하지 않고, 직전 값과의 *차이(Δ)*만 부호화.
    • 신호가 변화하는 방향(증가/감소)을 1비트로 표현하기 때문에, 데이터 양이 줄어드는 장점.
  • 제한점:
    • 신호 변화가 급격할 경우 왜곡이 발생할 수 있습니다(슬로프 과부하).

 

 

 

 

 


2) 반송파

정보(음성, 영상, 데이터 등)는 보통 낮은 주파수(저주파) 대역에 존재함.

하지만 저주파 신호는 직접 전송하기 어렵다. 이를 해결하기 위해 고주파 신호인 반송파에 정보를 실어 보냄(변조)

반송파는 다음과 같은 역할을 한다.

  • 정보 전달: 반송파에 정보를 실어 전송.
  • 멀리 보내기: 고주파 신호는 저주파 신호보다 더 멀리 전달 가능.
  • 신호 분리: 여러 신호를 주파수 대역으로 구분해 통신 시스템에서 서로 혼선 없이 사용 가능.   

 

2_1. 반송파와 변조

반송파는 그 자체로는 아무 정보도 포함하지 않는다.

정보를 반송파에 실으려면 변조라는 과정을 거쳐야한다.

변조란 반송파의 특정 특성을 변형해 정보를 표현하는 방법 | 반송파를 주파수가 낮은 신호파와 대응시켜 신호의 형태를 변화 시켜 이득 봄.

 

주요 변조 방식:

  1. 진폭 변조(AM, Amplitude Modulation):
    • 반송파의 진폭을 변화시켜 정보를 실음.
    • 라디오 방송 등에서 사용.
  2. 주파수 변조(FM, Frequency Modulation):
    • 반송파의 주파수를 변화시켜 정보를 실음.
    • FM 라디오, 고품질 음성 전송에 사용.
  3. 위상 변조(PM, Phase Modulation):
    • 반송파의 위상을 변화시켜 정보를 실음.
    • 디지털 통신에서 사용.

 

하지만 저주파 신호는 직접 전송하기 어렵다.  왜?!

1. 멀리 가는 힘이 약하다

저주파 신호는 파장이 길다. 파장이 길다는 건 에너지가 넓게 퍼지기 쉽고, 전파가 약해져서 멀리 보내기 어렵다는 뜻.

  • 예시: 사람 목소리(저주파)는 가까운 사람에게는 들리지만, 먼 거리에서는 잘 안 들리는 것 처럼

2. 안테나 크기 문제

전파를 잘 보내려면 안테나의 크기가 신호의 파장과 비슷해야 효과적.

  • 예를 들어:
    • 저주파(1kHz): 파장은 300km! → 300km 크기의 안테나가 필요.
    • 고주파(1MHz): 파장은 300m → 현실적으로 설치 가능.

저주파를 그대로 쓰면 비효율적이고, 안테나를 어마어마하게 크게 만들어야 하니 고주파로 바꾸는 게 더 실용적.


3. 혼선이 생긴다

저주파 신호는 많은 기기가 동시에 쓰면 서로 섞여서 구분하기 어려워요.

  • 반면, 고주파는 각각 다른 주파수 대역(채널)을 나눌 수 있어 혼선 없이 여러 신호를 동시에 전송 가능.

4. 정보를 더 많이 담기 어렵다

저주파는 *데이터 전송량(대역폭)*이 제한적.

  • 고주파를 쓰면 더 많은 정보를 담을 수 있어서, 영상, 음악, 데이터 전송에 적합해요.

정리하자면,

  • 저주파는 멀리 보내기 어렵고, 안테나가 비효율적이며, 혼선이 생기기 쉽고, 데이터를 많이 담기 어렵기 때문에,
  • 고주파 신호(반송파)를 사용해 정보를 변조하여 전송함. 쉽게 말하면 저주파 신호를 "탈것(반송파)"에 태워 더 멀리 보내는 과정.

 

2번 안테나 문제는 어떤 말인가?

1. 전파의 파장과 안테나 길이

안테나는 전파(전자기파)를 방출하거나 수신하는 장치.
안테나가 효과적으로 동작하려면 전파의 *파장(λ)*과 밀접한 관계가 있음.

  • 파장이란? 전파가 한 번 진동하면서 이동하는 거리.
  • 파장은 주파수(f)와 빛의 속도(c)의 관계식으로 계산됩니다:

c=300,000km/s  (빛의 속도)


2. 저주파의 파장이 긴 이유

저주파는 주파수(f)가 낮아서 파장 (λ)이 매우 길다. 예를 들어:

  • 1kHz(1,000Hz) 신호:

  • → 300km 파장에 맞는 안테나는 150km(1/2 파장) 크기로 만들어야 효과적.

이런 저주파 신호를 전송하려면 안테나를 엄청나게 길게 만들어야 합니다. 현실적으로 너무 크고 비싸서 불가능.


3. 고주파의 파장이 짧은 이유

주파수를 높이면 파장이 짧아져서, 더 작은 안테나로 전파를 방출하거나 수신 가능:

  • 1MHz(1,000,000Hz) 신호:

  • → 300m 파장에 맞는 안테나는 150m(1/2 파장) 정도면 충분.

이 정도 크기는 현실적으로 제작이 가능.


4. 안테나 설계의 기준

안테나 길이는 보통 1/2 파장이나 1/4 파장으로 설계.

  • 1/2 파장 안테나: 가장 기본적인 설계로, 신호를 효과적으로 방출하거나 수신 할 수 있음.
  • 1/4 파장 안테나: 지면을 반사면으로 활용해 안테나 길이를 절반으로 줄인 설계.

5. 왜 고주파가 유리할까?

고주파를 사용하면 파장이 짧아져 작고 효율적인 안테나 설계가 가능해짐.

  • 저주파(긴 파장)는 안테나가 너무 크고 비싸서 실용성이 떨어짐.
  • 고주파(짧은 파장)는 현실적인 크기로 설계할 수 있음.

 

 

 


계산 문제1 _ 5[kHz]의 음성신호를 재생시키기 위한 표본화 주기(T)는?

책이랑 설명이 달라서 헷갈렸는데, 책은 주파수의 공식을 그대로 가져오는데, chat gpt에서는 주파수로 가져와서 2가 없었던것....

 

아무튼 5[kHz]은 5000을 의미하고 이것에 2를 곱한것이 분모!  10의 4승이 나오는데, => 역수는 10의 -4승

[μs] 단위로 변환을 해야하는데, [μs]은 10의 6승이다. 

 

즉, 10의 -4승 * 10의 6승을 하면 => 10의 2승 = 100[μs]

 


[chat gpt]에 추가적인 문제를 달라고 했다.

 

 

문제 1: 샘플링 주파수 계산

1. 20[kHz]의 음악 신호를 정확히 복원하기 위해 최소한의 샘플링 주파수는 얼마여야 하는가?

주파수는 음성신호에 *2 이상이어야한다. 

따라서 정답은 40[kHz].

 

 

문제 2: 복원 가능한 최대 주파수

2. 샘플링 주파수가 44.1[kHz]일 때, 복원 가능한 최대 주파수 대역은 몇 [kHz]인가?

샘플링 주파수(fsf_s)는 신호의 최대 주파수의 2배 이상이어야 합니다.

따라서, 샘플링 주파수가 44.1[kHz]일 때, 복원 가능한 최대 주파수샘플링 주파수의 절반입니다.

따라서 정답은 22.05[kHz].

 

문제 3: 샘플링 주기 계산

3. 신호의 최대 주파수가 12[kHz]일 때, 신호를 정확히 복원하기 위해 필요한 최소 샘플링 주기의 값은 몇 [μs]인가?

샘플링 주파수는 24이고, 

[μs]은 10의 6승

 

그럼 생략하면 24분의 1000이 되는데, 

간단하게 1000을 24로 나누면 41.67이 나온다!

 

 

 

 

 

지금 총 4p보는데, 개념 하나도 모르겠어서 2시간 넘게 걸린 것 같다... 매일 이 속도라면 140일 넘게 걸릴 것 같은데,

과연 나의 도전을 성공할 것인가?

 

먼저 나의 스펙을 말하자면, 대학 시절 성적은 나쁘지 않았고 수상 경력과 논문도 있었지만, 특별히 내세울 만한 건 없었다.

  1. 토익은 발바닥 수준.
  2. 정보처리기사도 못 땄다.

이런 상태에서 멀티캠퍼스에서 Java 백엔드 교육을 들었다(온라인).

하지만 솔직히, 멍 때리고 놓치면 하루 종일 헤매는 정도였고, 나에게 큰 도움이 되지 않았다.

6개월의 교육이 끝났지만, 결국 CURD 정도만 할 줄 아는 백엔드 개발자로 느껴졌다. 그 이상은 없었다.

 

 

 

교육이 끝난 후,

자소서를 쓰다가 답이 없길래 대충 30군데 정도 이력서를 넣었다.

기대도 안 했는데, 4군데에서 연락이 왔다. 처음에는 Java 관련 회사에만 지원하다가,

찾아보니 C#, WPF라는 분야도 있다는 걸 알게 되었다.

 

악명 높은 제조업 분야였다. 인터넷에서 "제조업 가면 안 된다", "공장에서 산다"는 말들이 많았다. 그래도 면접을 보러 갔다.

면접에서는 지식 위주로 질문을 받았고, 결국 합격했다.

(c#,wpf 2곳을 봤는데 남은 한곳은 술이 필수이며, 공장에서 살아야한다! 라고 했....음;; 요즘 시대에?)

 

 

현재 상황을 정리하자면:

C#은 백엔드, WPF는 프론트엔드였다!

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

그냥 웹과 비슷하게 윈도우 프로그램을 만든다고 생각하면 된다. 웹을 해봤다면 쉬울 수도 있다(내 경험상 그렇다).

 

기계 자동화 기술과 PLC(Programmable Logic Controller) 관련 지식이 필요하긴 하지만,

나는 그쪽을 직접 다루지 않는다.

 

회사에서 이미 만들어둔 코드를 복사해 약간 수정하는 수준이다.

코드를 복사하면서 이해하고, 약간의 변형을 주는 정도다.

 

아직 공장 현장에 직접 간 적은 없고,

상사분들도 많아야 일주일에 1~2번 가는 정도다.

주로 프로젝트 마무리나 설치할 때 현장에 가는 것 같다.

(그렇다고 공장에 길어야 4시간 정도고 하루종일 있지 않다)

주로 회사에서 코딩한다. 

 

아직 현장 경험은 없지만, 지금까지는 회사 생활에 만족하고 있다.

칼퇴! 칼퇴! 땡하면 집가!!!!

회식도 나의 환영회 말고는 없었다! 


 

역시 인터넷 세상을 믿을게 못되는 것 같다. 

직접 해보지 않으면 모르는 것들이 너무나 많다. 

다른점도 너무나 많고, 

비행기는 매번 탈때마다 느낌이 다르고, 해외에서 악명 높은 비행기 '라이언에어'도 타봤지만 

나는 세상에서 가장 침대같은 느낌의 착륙느낌이었다. (처음 느껴보는! )

셀프체크인할때도 직원분이 코리아 좋다면서 웃으면서 말걸어주기도 하였다!

 

 

이렇게 매 시기마다 후기는 달라진다. 

세상에 얼마나 많은 중소기업이 있는데!

 

 

 

'중소벤처기업부' 사이트를 보면 다음과 같이 말한다. 

 

 

2023년 기준, 한국에는 약 700만 개의 중소기업이 있습니다.
중소기업은 전체 기업 수의 99% 이상을 차지하며, 전체 고용의 약 **80%**를 담당하고 있습니다.

https://www.mss.go.kr/site/eng/02/20202000000002019110610.jsp

 

Ministry of SMEs and Startups

SMEs play an important role in Korean Economy. According to business statistics, SMEs take up ninety-nine percent of number of enterprises, eighty-three percent of total employment, thirty-four percent of export.

www.mss.go.kr

 

 

고작 인터넷의 안좋은 글만 보고, 대기업을 못가는 사람들이 중소기업을 쳐다도 안보고

집에서만 있는 행위는 멈추기 바란다. 

 

공부도 하기 싫은 데 취직 공부한다는 다짐만하고 아무것도 안할 바에는 좋은 중소기업가서 편하게 일하고 1년에 3천만원이라는 돈을 버는게 나에게는 최선이라는 것이다. 

 

 

[문제]

mssql에서 중국에 저장할려고 하는데, 

愛你愛你愛你라는 글자가  愛?愛?愛? 이런식으로 저장이 된다. 

 

 

 

[해결 방법] 

愛你愛你愛你 와 같은 문자열을 삽입하려면 따옴표를 적절하게 이스케이프해야 합니다.

1. 문자열 앞에 N을 붙여서 Unicode 문자를 사용

2. 문자열 내의 단일 인용부호는 두 개의 단일 인용부호로 변경

나는 1번 2번 둘다 해서 해결했다. 

 

 


 

 

 

[예시]

1.  문자열 앞에 N을 붙여서 Unicode 문자를 사용

string.Format("insert into 테이블명(id, one) values('{0}', 'N{1}'))", ID, ONE);

 

INSERT INTO YourTable (YourColumn)
VALUES (N' 愛你愛你愛你 ')  이런식으로 되겠다. 

 

 

2. 문자열 내의 단일 인용부호는 두 개의 단일 인용부호로 변경

sQuery = string.Format("insert into 테이블명(id, one) values('{0}', 'N{1}'))", ID, ONE.Replace("'", "''"));

해당 변수뒤에 .Replace("'", "''") 을 붙여주면 되는데... 

 

Replace(" ' ", " ' ' ") 이런 것이다. 

' 하나를 '' 2개로 해주면 해결된다?!

 

 

 

단일 인용 부호(')를 두 개의 단일 인용 부호('')로 바꾸는 이유는 SQL 인젝션 공격을 방지하고 문자열을 올바르게 처리하기 위함.

즉,  

 

  • SQL 인젝션 공격 방지: 사용자 입력을 안전하게 처리하여 악의적인 코드 실행을 방지합니다.
  • 문자열 이스케이프 처리: SQL 쿼리에서 문자열을 올바르게 처리하여 구문 오류를 방지합니다.

 

 

 

XML이란?

XML(Extensible Markup Language)는 데이터 저장 및 전송을 위한 마크업 언어입니다.

XML은 주로 데이터 구조를 정의하고 정보를 계층적으로 표현하는 데 사용됩니다.

 

 

XML의 기본 구조

XML 문서는 다음과 같은 기본 구성 요소로 이루어져 있습니다:

  1. 선언:
    • XML 문서의 시작 부분에 XML 선언이 포함됩니다. 예: <?xml version="1.0" encoding="UTF-8"?>
  2. 루트 요소:
    • XML 문서는 단 하나의 루트 요소(root element)를 가져야 합니다. 모든 다른 요소는 이 루트 요소의 하위 요소가 됩니다.
  3. 요소(Elements):
    • 요소는 XML 문서의 기본 단위로, 시작 태그와 종료 태그로 구성됩니다. 예: <element>Content</element>
  4. 속성(Attributes):
    • 요소는 추가 정보를 제공하는 속성을 가질 수 있습니다. 속성은 시작 태그 내에 정의됩니다. 예: <element id="1">Content</element>
  5. 텍스트 콘텐츠:
    • 요소는 데이터를 담고 있는 텍스트 콘텐츠를 포함할 수 있습니다. 요소는 텍스트, 다른 요소, 또는 두 가지를 모두 포함할 수 있습니다.

 

[예시코드]

<?xml version="1.0" encoding="UTF-8"?>
<Library>
    <Book id="1">
        <Title>Effective C#</Title>
        <Author>Bill Wagner</Author>
        <Year>2019</Year>
    </Book>
    <Book id="2">
        <Title>Learning XML</Title>
        <Author>Erik T. Ray</Author>
        <Year>2003</Year>
    </Book>
</Library>

 

  • 루트 요소: <Library>
  • 하위 요소: <Book>, <Title>, <Author>, <Year>
  • 속성: <Book id="1">에서 id 속성

 

 

XML의 장점

  1. 가독성: XML은 텍스트 기반으로, 사람이 읽고 이해하기 쉽습니다.
  2. 확장성: 새로운 데이터 구조를 쉽게 추가할 수 있습니다.
  3. 표준화: 다양한 플랫폼과 언어에서 지원됩니다.

 

 


 

 

 

 

 

이 함수는 화면의 버튼을 클릭하면 작동하는 함수이다. 

코드에 주석으로 아주 자세히 작성해였다. 

 private void btn_Add_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     try
     { 
		// 파일 열기 대화상자를 생성
         OpenFileDialog dlg = new OpenFileDialog();

		// 사용자가 파일을 선택했는지 확인
         if(dlg.ShowDialog() == DialogResult.OK)
         {
         	 // XML 문서를 로드하기 위한 XmlDocument 객체 생성
             XmlDocument doc = new XmlDocument();
             // 사용자가 선택한 XML 파일을 로드
             doc.Load(dlg.FileName);

             // XML 내의 모든 Message 노드를 가져오기
             // XPath 쿼리를 사용하여 A아래의 B노드들을 선택
             XmlNodeList messageNodes = doc.SelectNodes("/A/B");

             foreach (XmlNode messageNode in messageNodes)
             {
                 // <B> 노드의 id 속성 값
                 string messageId = messageNode.Attributes["id"].Value;

                 // <B> 하위의 <one>, <two>, <three> 값 추출
                 string ONE = messageNode.SelectSingleNode("one")?.InnerText.Trim();
                 string TWO = messageNode.SelectSingleNode("two")?.InnerText.Trim();
                 string THREE = messageNode.SelectSingleNode("three")?.InnerText.Trim();                         
				 
                 // 데이터베이스에 메시지를 저장하는 메서드 호출
                 this.{db 불러오는 형식}.(messageId, ONE, TWO, THREE);
             }
         }
     }
     catch(Exception ex)
     { 
     }
 }

 

 

 

 

별도로 체크해야할 것

 

 

1. .XML의 구조


<?xml version="1.0"?>
  <!-- ================================================================ -->
  <!--                             정보                       -->
  <!--                             정보~               -->
  <!-- ================================================================ -->
<A> 
  <B id="WHAT">
    <one> information </one >
    <two> information </two >
    <three> information  </three >
  </B>

  <B id="how">   
    <one> information </one >
    <two> information </two >
    <three> information </three >
  </B>
</A>

 

 

2. db 연결 부분 

{} 안의 내용을 각자 개별적으로 알아서 수정해야한다. 

(물론 {}도 나중에 삭제해야함!)

 

 

 

 

 

 

[ 문제 ]

DevExpress WPF Charts에서 

일, 주 일때는 그래프가 잘 보이는데, 

달(month)일때는 실같이 얇~게 보여서 엥엥엥 하루종일 찾아봤는데 결국 못찾음......

그 후 시간이 흘러 ......

 

 

 

 

이것도 안됨..

                //for (int i = 0; i < 4; i++)
                //{
                //    var series = new BarStackedSeries2D();
                //    series.BarWidth = 1;  
                //    this.cht_Main.Series.Add(series);
                //}

 

 

chat gpt는 다음과 같이 알려줌.. (이건 걍 안됨)

axisy.wholerange.setminmaxvalues(0, 30);

 

 

 

 

 

[해결방법]

아래와 같이 하면 된다.!

https://docs.devexpress.com/WPF/115179/controls-and-libraries/charts-suite/chart-control/axes/axis-scale-types

   this.cht_Main.AxisX.DateTimeScaleOptions = new ManualDateTimeScaleOptions()
   {
       MeasureUnit =DevExpress.Xpf.Charts.DateTimeMeasureUnit.Month
   };

 

 

 

 

부제 : 내 손으로 만드는 자동 주식 거래 시스템

 

 

1부 : 파이썬 프로그래밍

3장_ 기본 자료구조* (리스트, 튜플, 딕셔너리)
#리스트
#생성
list = [] 
list = [100, 200, 300] 
list.append(400) #추가
list #출력

buy_list = ['Naver', 500]
buy_list[0] #인덱싱 출력

kospi_top5 = ['삼성전자', 'SK하이닉스', '현대차', '한국전력', '아모레퍼시픽']
kospi_top3 = kospi_top5[0:3] #슬라이싱
kospi_top3 #출력 => ['삼성전자', 'SK하이닉스', '현대차']

# 삽입
buy_list.insert(2, 'Daum')
buy_list

#삭제
del buy_list[1]
buy_list

len(buy_list)

 

#튜플
#리스트는 리스트 내의 원소를 변경할 수 있지만
#튜플은 변경 불가능. 즉, 변경없는 데이터는 튜플로 하면 빠르다!

tuple =()
t = ('Samsun', 'LG', 'SK')
t
len(t)
t[1]
#t[0] = "Naver"  #err tuple' object does not support item assignment

#슬라이싱
t[0:2]



#딕셔너리 = 사전
#키와 값의 쌍으로 저장
#순서가 없기에 인덱싱 지원 안함. 
#키를 통해서 검색한다. 

dictionary = {}
type(dictionary)


dictionary['Naver'] = 300000
dictionary  #{'Naver': 300000}

#del dictionary['Naver']
#dictionary    #{}

dictionary.keys()
dictionary.values()

 

 

 

 

 

[ 연습문제 ]

#3-1 ~ 3-5
naver_closing_price = [488500, 500500, 501000, 461500, 474500]
naver_closing_price
print(max(naver_closing_price)) #501000
print(min(naver_closing_price)) #461500
print(max(naver_closing_price) - min(naver_closing_price)) #39500
print("수요일 종가: ", naver_closing_price[2]) #501000

 

 

#3-6 ~ 3-7
naver_closing_price2 = {'09/07':474500, '09/08':461500, '09/09':501000, '09/10': 500500, '09/11':488500}
naver_closing_price2

print(naver_closing_price2['09/09']) #501000

 

 

+ Recent posts