아래의 글은 내가 생전 처음으로 코딩과 웹개발을 접했을 때 썼던 글이다.. 지금 생각해보면 절대로 예시 코드를 아래처럼 넣지 않을거지만, 옛날의 초심과 감성을 느끼기 위해서 기록용으로 남겨둔다.. HTML 이란? - HTML(Hyper Text Markup Language)로 웹 페이지를 위한 마크업 언어이다. 여기서 HyperText는 웹 페이지를 이동할 수 있도록 만들어진 문장을 뜻한다. HTML은 제목, 단락, 목록 등과 같은 웹 페이지 본문의 구조적 틀 구성을 만들수 있는 언어이다. HTML은 CSS와 JavaScript와 같이 쓰인다. HTML이 웹 페이지 콘텐츠를 구성하는 것이라면 CSS는 외관 및 배치를 다룰수 있게 해준다. JavaScript는 외관의 기능을 처리하도록 행동 방식을 정의해주..
* text input 폼에 글자를 넣고 원하는 옵션을 선택한 뒤 미리보기 버튼을 눌러보자. 내가 원하는 옵션대로 글자가 변경되도록 만들수 있을것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 간단한 자바 스크립트 function previewString(){ var objResult = docu..
* 회원가입 폼 만들기 HTML의 기본기를 익힌 후 회원가입 폼을 만들어보자. 필자는 체크박스 체크여부를 자바스크립트를 이용하여 중복체크 없이 하나씩만 체크 하도록 하였다. 자바스크립트 내용은 다음 포스팅에 쓰도록 하겠다. HTML의 폼을 만들기위한 목적이라면 자바스크립트를 굳이 넣지 않아도 된다. 호환을 위해 internet explorer보다 chrome으로 연결하여 실행시키는 것을 추천한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ..
* string class를 못 쓰는 상황일때, 직접 string 구조를 작성하시오.(아래 코드는 실행은 되지만 최적화 부분이 미완성인 코드 입니다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 1..
* 연산자 함수를 만들지 못하는 연산자의 종류(오버로딩 제한) c++의 모든 연산자들이 오버로딩의 대상이 되는 것은 아니다. 다음과 같이 오버로딩이 불가능한 연산자들도 있다. . 멤버 접근 연산자 .* 멤버 포인터 연산자 :: 범위 지정 연산자 ?: 조건 연산자(3항 연산자) sizeof 바이트 단위 크기 계산 typeid RTTI 관련 연산자 static_cast 형변환 연산자 dynamic_cast 형변환 연산자 const_cast 형변환 연산자 reinterperet_cast 형변환 연산자 연산자에 대해서 제한하는 이유는 c++의 문법규칙을 보존하기 위해서다. 만약에 위의 연산자들까지 오버로딩을 허용해 버린다면, c++의 문법규칙에 어긋나는 문장의 구성이 가능해지고, c++을 보다 혼란스러운 언어로..
* 연산자 함수 연산자(operator)는 간결하게 의미를 전달할 수 있는 편리한 기호이다. 일반적으로는 연산자 기호를 사용하는 편이 함수를 사용하는 것보다 이해하기 쉽다. sum = x + y + z; →연산자 사용 sum = add(x , add(y , z)); →함수 사용 연산자 함수는 객체를 가지고 연산을 도와주는 함수이다. 객체들 끼리 연산을 할 수도 있고, 객체와 데이터들이 연산을 할 수도 있고, 데이터와 데이터들이 연산을 할 수 도 있다. 연산자는 이미 정의되어 있는 하나의 개체이기 때문에 원래의 의미를 재정의 하여 의미를 고치면 사용할 수 없다. 연산자 함수는 개발자가 직접 제공을 해줘야 사용이 가능하다. 함수를 호출하면 언제든지 연산을 수행한다. * 연산자 중복 연산자 중복이란 여러 가지..
* 프렌드(friend) 클래스의 전용 멤버 변수들은 내부 데이터를 저장하고 있고 이것은 일반적으로 외부의 접근으로부터 은닉된다. 전용 멤버 변수들에 접근 할 수 있는 것은 멤버 함수 뿐이었다. 하지만 c++은 지정된 함수나 클래스에 한하여 내부 데이터에 접근할 수 있게 해주는 프렌드(friend)라는 기능을 제공한다. 즉 프렌드를 사용하면 프렌드로 지정한 하나의 클래스의 모든 멤버 함수는 내부 데이터를 참조할 수 있다. 내가 만약 하나의 클래스를 프렌드로 설정하면 클래스 안의 개체들이 접근지정자가 무엇이든 모든 것들을 쓸 수 있다. 하지만 그 클래스는 나에게 접근할 수 없다. 프렌드를 쓰는 이유는 주로 코드의 확장을 위함에 있다. 예를 들면 문법적으로 멤버 함수가 아닌 일반 함수가 클래스의 내부 데이터..
* 문제 데이터를 관리하는 부모 클래스 Memory class가 있다. Memory class를 상속받는 자식 클래스 MyStack과 MyQueue class가 있다. MyStack class는 먼저 입력한 메모리가 나중에 메모리가 삭제되는 구조이고, MyQueue class는 먼저 입력한 메모리가 먼저 메모리가 삭제되는 구조이다. 동적 할당과 동적 바인딩을 이용하여 메모리 구조 프로그램을 작성하시오. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ..
* 순수가상함수(추상 함수) 순수가상함수는 함수 헤더만 존재하고 함수의 몸체는 없는 함수이다. 순수가상함수를 하나라도 가지고 있는 추상클래스(abstract class)라고 한다. 추상 클래스로는 객체를 생성 할 수 없다. 추상 클래스는 추상적인 개념을 나타내거나 클래스와 클래스 사이의 인터페이스를 나타내는 용도로 사용된다. 추상 클래스는 멤버 함수의 원형만을 정의하는 것이고 그 구현은 자식 클래스에서 하게 된다. 추상 클래스를 상속받는 자식 클래스는 반드시 순수가상함수를 구현해야 한다. 순수가상함수는 형식 정의문에서 가상 함수 선언문 뒤에 =0 을 명시한다. 또 자식 클래스에서 부모 클래스의 순수가상 함수를 재정의(오버라이딩)하지 않으면 추상 클래스가 되어 객체를 생성할 수 없다. 따라서 객체를 생성 ..
* 동적 바인딩 함수 호출을 실제 함수의 몸체와 연결하는 것을 바인딩(binding)이라고 한다. 바인딩에는 정적 바인딩과 동적 바인딩이 존재한다. 컴파일 단계에서 모든 바인딩이 완료되는 것을 정적 바인딩(static binding)이라고 한다. 반대로 바인딩이 실행 시까지 연기되고 실행 시간에 실제 호출되는 함수를 결정하는 것을 동적 바인딩(dynamic binding)이라 한다. 동적 바인딩을 사용하면 객체 지향의 중요한 특징 중 하나인 다형성을 구현할 수 있다. 즉 객체에 메시지를 보내면 객체가 메시지를 해석해서 가장 적절한 동작을 하게 된다. c++에서 가상 함수가 아니면 모든 함수가 정적 바인딩으로 호출된다. 정적 바인딩은 호출 속도가 빠르지만 호출 함수가 컴파일 단계에서 항상 결정되므로 유연성..