c#으로 윈도우 메모장에 있는 기능 대부분을 구현해보았습니다. 소스 코드는 나중에 github 저장소에 저장해놓았습니다.

github.com/jeongilhwa/NotePad_0.2

 

jeongilhwa/NotePad_0.2

Contribute to jeongilhwa/NotePad_0.2 development by creating an account on GitHub.

github.com

 

 

 

'개발 > c#' 카테고리의 다른 글

C# WebBrowser 자동 로그인  (4) 2021.04.15
Boxing UnBoxing  (0) 2021.04.14
c# WebBrowser 만들기  (0) 2021.04.12
Buble Sort (버블소트) 정렬알고리즘  (0) 2021.04.01
10 까지의 합구하기  (0) 2021.03.31

4장. 개발자가 꼭 알아둬야 할 유니코드와 문자 집합에 대한 고찰 1편

우리가 사는 세계 에는 여러가지 언어들이 존재한다 

하지만 많은 소프트웨어 개발자가 문자집합, 인코딩, 유니코드와같은 신비로운 세계를 빨리 따라 잡지 못한다는거에 낙남을 한다고 한다. 우리가 많이 아는 아스키 코드는 문자 하나 담는 데이터사이즈는 2바이트 밖에 되지 않습니다.

그러나 우리가 아는 세계언어 는 문자하나에 2바이트를 담는게 불가능할수있다. 각자의 나라에서 쓰는 문자는 쓸수 있어도 중국의 언어가 들어있는 문자열을 한국에서 열어봤다고 치면 이 문자가 중국말인지 한국말인지 알수가 없다

한국에서 열어본 문자열은 그저 쓰레기 값이될수 밖에없다 그래서 한국말로 궯냟쒊꿜 같은 문자로 표현될수가있다.

그러면 우리는 어떻게 이문제를 해결 해야 하는가 이다 . 그 문제 해결은 이미 나와있다. UTF-8 유니코드이다

가변길이 문자열로 이문자열 안에는 이 문자열이 한국말로 되어있는지 영어로 되어있는지 중국어로 되어있는지 알수있는 구분 코드가 있다.

3장 조엘 테스트 : 더 다은 코드를 위한 12단계 2편

이 책에서 조엘은 더나은 코드를 위한 12단계를 설명했다.

  1. 소스코드 관리시스템을 사용하고 있는지.
  2. 한번에 빌드를 만들어낼 수 있는지
  3. 일일 빌드를 하고 있는지
  4. 버그 추적시스템을 운영하고 있는지
  5. 코드를 새로 작성 하기 전에 버그를 수정하는지
  6. 일정을 업데이트 하고 있는지
  7. 명세서를 작성하고있는지
  8. 조용한 작업 환경에서 일하고 있는지
  9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있는지
  10. 테스터를 별도로 두고 있는지
  11. 프로그래머 채용 인터뷰 때 코딩 테스트를 하는지
  12. 무작위 사용편의성 테스트를 수행하고 있는지

6 . 일정을 업데이트 하고 있는지

개발 이 가장 중요한 요소라면 완료 시점을 파악하는것도 매우 중요하다 .

 

7. 명세서를 작성하고 있는지.

명세서를 작성하는 건 대다수 프로그래머들이 싫어하는 작업이다.

하지만 설계단계에서 문제를 발견하면 쉽게 몇줄만 수정할수있지만 

기능이 다 완성되고나서는 시간과 비용이 급격히 낭비가도니다 그리고 그코드를

작성한 프로그래머에게도 정신적 타격이 일어난다. 

그렇기에 코드를 작성하기전 살계 명세서를 하는것이 중요하다.

 

8. 조용한 작업 환경에서 일하고 있는지

지식 노동자에게 생산성을 극대화 할수있는 조용한 작업환경을 주는게 좋다

시끄러운 분위기에서 1분 집중력이 흟어지면 업무흐름이 끊겨 15분이라는 시간이 날라갈수가 있다.

 

9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있는지.

기본적인 업무의 최적화 되어있는 컴퓨터와 모니터 프로그램들이 있으면 생산성을 더욱 극대화할수있다.

모니터 한대로 사용자 인터페이스 코드를 디버깅하는 작업과 

모니터 두대로 디버깅하는 작업은 업무의 효율성부터 차이가난다.

화력이 떨어지는 도구를 사용하고 그 피로가 누적이 된다면 프로그래머는 비생상적으로 바뀔수있다.

 

10. 테스터를 별도로 두고 있는지 

프로그래머 2~3명마다 별도의 테스터를 두고 있는것이 오히려 비용낭비를 줄일수있다.

사람들이 테스트의 중요성을 모르고있다.

 

11. 프로그래머 채용 인터뷰때 코딩 테스트를 하는지.

오디션을 볼때 , 학교를 들어갈때 우리는 모두 시험에 쳐서 들어간다 

프로그래머도 마찬가지 여야 한다.

 

12.무작위 사용편의성 테스트를 수행하고 있는지.

지나가는 사람을 붙잡아 방금 작성한 코드를 하용해보는 기법입니다. 

이렇게 하면 사용편의성 문제를 약 95% 를 찾아낼수 있다.

무작위 사용편의성 테스트는 사용자 인터페이스를 점점 개선 할수있는 큰장점이 있다.

HTML로 리스트를 표현하고 싶으면 어떻게 해야 할까요?

단순히 - , 1. 2. 이렇게 글자로 표현하는게 맞을까요?

물론 이방법도 있지만 우리는 더 HTML 스럽게 표현 하도록 배워보도록 하겠습니다.

이렇게 표현되게 작성 되어있는 태그는 <li> </li> 입니다.

<!DOCTYPE HTML>
<html>
<head>
<meta charset = "utf-8">
</head>
<body>
	<h1> HTML 기초배우기 </h1>
	<li>서울</li>
	<li>대전</li>
	<li>대구</li>
	<li>부산</li>
	
		

</body>
</html>

 

그리고 이번엔 리스트가 여러개가 붙어있는데 이리스트를 분류를 해보겠습니다.

만약 서울, 대전이랑 대구랑 부산을 분류를 하고싶을땐 어떻게 해야할까요

그건 <ul> </ul>태그입니다.  ul 태그안에 li 태그를 각각 분류해서 넣어보겠습니다.

<!DOCTYPE HTML>
<html>
<head>
<meta charset = "utf-8">
</head>
<body>
	<h1> HTML 기초배우기 </h1>
	<ul>
	<li>서울</li>
	<li>대전</li>
</ul>
<ul>
	<li>대구</li>
	<li>부산</li>
</ul>


</body>
</html>

 

 

 

이렇게 태그를 분리할수있습니다.

그러면 1. 2. 3. 4. 를 번호를 붙일수 있는 리스트는 어떻게 할까요

바로 <ol> </ol> 태그입니다 ul태그와 사용법이 같습니다. 대구 부산만 ol 태그를 묶어보도록하겠습니다.

이렇게 번호가 붙어있는걸 확인 할수있습니다. 

'개발 > HTML' 카테고리의 다른 글

HTML (박스 모델) 기초 5-2편  (0) 2021.04.12
HTML (박스 모델) 기초 5-1편  (0) 2021.04.11
HTML (밑줄, 기울기, 줄바꿈, 굵기)기초 2편  (0) 2021.04.09
HTML( 제목, 단락) 기초 1편  (0) 2021.04.08
HTML 의 구조  (0) 2021.04.07

HTML 의 폰트를 사용하는 방법을 알아보겠습니다.

 

<!DOCTYPE HTML>
<html>
<head>
<meta charset = "utf-8">
</head>
<body>
	<h1> HTML 기초배우기 </h1>
    <strong>줄굵게</storng>
    <i> 기울기</i>
    <u>밑줄</u>
    <br>줄<br>바<br>꿈
    
</body>
</html>

<storng> </strong> 글자 굵기를 나타내는 태그입니다.

<i> </i> 글자 기울기를 나타내는 태그입니다.

<u> </u> 밑줄을 나타내는 태그입니다.

<br> 줄을 바꿀수 있는 태그입니다.

결과는 이렇게 나옵니다.

 

 

'개발 > HTML' 카테고리의 다른 글

HTML (박스 모델) 기초 5-1편  (0) 2021.04.11
HTML (리스트 ) 기초 3편  (0) 2021.04.10
HTML( 제목, 단락) 기초 1편  (0) 2021.04.08
HTML 의 구조  (0) 2021.04.07
HTML소개 및 HTML Editor 설치  (0) 2021.04.07

##3장 조엘 테스트 : 더 다은 코드를 위한 12단계 1편##

이 책에서 조엘은 더나은 코드를 위한 12단계를 설명했다.

  1. 소스코드 관리시스템을 사용하고 있는지.

  2. 한번에 빌드를 만들어낼 수 있는지

  3. 일일 빌드를 하고 있는지

  4. 버그 추적시스템을 운영하고 있는지

  5. 코드를 새로 작성 하기 전에 버그를 수정하는지

  6. 일정을 업데이트 하고 있는지

  7. 명세서를 작성하고있는지

  8. 조용한 작업 환경에서 일하고 있는지

  9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있는지

  10. 테스터를 별도로 두고 있는지

  11. 프로그래머 채용 인터뷰 때 코딩 테스트를 하는지

  12. 무작위 사용편의성 테스트를 수행하고 있는지

  1. 소스코드 관리시스템을 사용하고 있는지.
    형상 관리 툴 CSV, SVN, GIT 은 좋은 프로그램이다. 프로그래머들이 많은 함께 일하려면 형상광리 툴 을 이용하는것이
    가장 효과적이라고 한다. 그리고 이러한 형상관리 툴을 이용한곳은 코드를 날렸다는 이야기를 들어본적이 없다고 한다.

  2. 한번에 빌드를 만들어 낼수 있는지
    빌드를 만들기 위해 몇단계 거치는건 비효율적이라고 한다. 빌드 프로세스가 한번에 끝나지 않을경우 실수하기가 쉽다고 한다.

  3. 일일 빌드를 하고있는지
    소스 코드를 관리할때 빌드가 깨진상태로 소스코드를 넣는 것과
    깨진걸 수정하였는데 코드 저장소에 업데이트를 안했을때 다른개발자들은 빌드 깨져 자기의 일을 할수없게 된다 .
    그래서 점심시간이나 퇴근하기전 업데이트는 습관화 가 되어있어야 한다.

  4. 버그 추적시스템을 운영하고 있는지
    버그 관리 시스템을 사용하지않으면 품질이 나쁜 코드가 나올수 있다고 한다.
    버그가 1개정도일때는 기억하기 쉬우나 2개 이상의 버그가 생겼을때 프로그래머는 버그를 지억하기 쉽지않다고 한다.
    그래서 버그 추적 시스템을 잘활용 하고 버그 추적 소프트웨어가 복잡하다면 중요한 항목만 뽑아서 활용하기를 바란다.

  5. 코드를 작성하기 전에 버그를 수정하는지.
    새로운 코드를 작성하기전 버그는 발견 즉시 수정을 해야한다 버그를 방치해두고 새로운 코드를 작성하고 시간이 흐른뒤
    우리는 그버그가 어떤 코드에서 일어났는지 까먹을 수가 있다. 출시한후에 버그가 발결됬다고 해보자 버그를
    찾으려고 많은 자본과 시간을 쏟아야한다.

웹페이지를 처음들어가보면 본문 제목과 본문의 글은 우리가 보는 정보문서의 필요한 요소들입니다.

오늘은 제목 태그와 단락 태그의 대해서 알아보겠습니다.

생성해둔 폴더의 우클릭후 newfile을 눌른후 파일이름.html 을작성후 생성합니다

 

<!DOCTYPE HTML>
<html>

<head>
</head>

<body>
	<h1> HTML 기초배우기 </h1>
    <p>
    하이퍼텍스트 마크업 언어(HyperText Markup Language, HTML, 문화어: 초본문표식달기언어, 
    하이퍼본문표식달기언어)는 웹 페이지를 위한 지배적인 마크업 언어다. 또한, HTML은 제목, 단락,
    목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 
    인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다. 
  	</p>
  </body>

</html>

<h1> </h1> 제목을 나타내는 태그입니다. 이태그들은 h1~ h8 까지 존재합니다.

 

<p> </p> 단락을 나타내는 태그입니다 이태그들은 글자를 줄바꿈하지 않아도 본문의 글을 알맞게 나눠주는 역할을 합니다.

이파일을 저장하고 파일을 실행 시키면 웹브라우저로 열리는걸 알수있습니다.

 

 

'개발 > HTML' 카테고리의 다른 글

HTML (박스 모델) 기초 5-1편  (0) 2021.04.11
HTML (리스트 ) 기초 3편  (0) 2021.04.10
HTML (밑줄, 기울기, 줄바꿈, 굵기)기초 2편  (0) 2021.04.09
HTML 의 구조  (0) 2021.04.07
HTML소개 및 HTML Editor 설치  (0) 2021.04.07

1장. 언어선택 

각기 다른 사람들이 업무를 수행할때 개발언어를 선택하는 이유는 언어의 특성 마다 다르다.

속도를 중요시 할때는 C를 선택하고 

배포판의 크기를 윈도우용 최소화할려면 MFC와 C++ 을선택하고 

모든 운영체제에서  자바를 사용한다. 각기 다르지만 많은 언어를 선택할때는

그언어의 특성을 고려하고 업무의 있어서 필요로하는 언어를 선택한다.

 

2.장 기본으로 돌아가기

사람들이 실수하는 이유중 하나는 최저층에 동작원리를 알지 못해 생긴다고 한다.

그래서 우리는 기본으로 돌아가 바이트만을 생각하고 코드의 구조도 어떻게 돌아가는 지 확인할 필요가있다.

기초를 탄탄히 쌓으라는 이야기이다. 단순히 프레임워크에서 제공하는 하는 함수만사용해서 끝나는것이아닌

이 코드가 어떻게 돌아가고있는지 그 내부를 알고있어야한다.

C에서의 문자열 동작하는 방법이다. C의 문자열은 끝에 null이 붙어 문자열의 끝을 알린다.

A문자열과 B문자열을 합치는 걸 예로 들어보겠다.

C언어 에서 strcat 이란 함수는 A문자열을 첫번째부터 하나씩 검사하면서 null값을 찾는다 그리고 null을 찾은 값에

B문자열의 한글자 한글자씩 A문자열뒤에 붙여넣는다. 이렇게 되면 속도가 느려질수밖에없다.

이것을 페인트공 알고리즘이라고 한다 

우리는 이것을 조금 영리하게 A열의 문자열 끝을 포인터로 저장하고 B문자열을 하나씩 넣어서 개선시킬수있다.

 

 

 

+ Recent posts