본문 바로가기

별걸다하는 IT/프로그래밍언어

(55)
[Java 자바 입출력] BufferedReader/BufferedWriter [자바 입출력 함수] BufferedReader / BufferWriter BufferedReader/BufferedWriter은 이름처럼 버퍼를 이용해서 읽고 쓰는 함수입니다. 이 함수는 버퍼를 이용하기 때문에 이 함수를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아집니다. 한 번 거쳐가므로 느릴거 같은 데 왜 빠르냐고요? 하드디스크는 원래 속도가 엄청 느립니다. 하드뿐만 아니라 키보드나 모니터와 같은 외부 장치와의 데이터 입출력은 생각보다 시간이 걸리는 작업이예요. 버퍼링 없이 키보드가 눌릴 때마다 눌린 문자의 정보를 목적지로 바로 이동시키는 것보다 중간에 메모리 버퍼를 둬서 데이터를 한데 묶어서 이동시키는 것이 보다 효율적이고 빠릅니다. 그냥 전송하게 되면 CPU와 성능 갭이 많이 나서 비효..
[C/C++/C#]프로그램 구조(structure)-전처리기, 전역, 메인, 함수구간 [C언어, C++언어 강좌 모음 및 목차] C나 C++이나 C#이나 비슷하니 말할 때 그냥 C로 통칭할게요) 자 프로그래밍 언어로 코드를 짜서 우리가 원하는 프로그램을 만들 수 있다는 걸 알아요 하지만 프로그램을 만들어봐! 하면 막막하잖아요. 어떻게 시작하지? 뭐부터 짜야하지? 오늘은 C언어로 프로그램을 짜기 전에 어떤 구조로 짜야할지, 어떻게 구조가 이루어져있는지, 각각 구조는 무엇을 의미하는지 한 번 훑고 넘어가는 시간이 될거에요. 그리고 각각에 해당하는 부문은 나중에 좀 더 상세히 다룰겁니다. C프로그램 구조! (Structure of a C program) ㅎㅎ 열심히 그렸습니다 ㅋㅋ 프로그램은 대게 이런 구조를 띄고 있어요 꼭 이렇게 작성해야 하는 건 아니지만 모든 개발자가 지키고 있는 룰인거죠..
함수(function)란? 함수의 종류, 함수 역할 및 기능, 메인(Main)함수 [C언어, C++언어 목차 포스팅 링크 모음] [Java언어 목차 포스팅 링크 모음] 오늘은 기초 중의 기초 함수에 대해서 다뤄볼까해요. 함수(function)란? 수학에서 많이 봤기 때문에 익숙한 그림이죠? x를 넣었더니 안에서 뭔까 투닥투닥 짬뽕 후 f(x) 즉 y를 뱉어주는 그림이예요. 함수란 어떤 재료를 넣어 새로운 값을 만드는 틀이라고 생각하면 이해하기 쉬워요 근데 틀이 왜 필요할까요? 사용자 정의 함수 맨날 하던거처럼 예시로 이해해볼까요? 어차피 다 배울 거기 때문에 한 줄 한 줄 모든 코드를 이해하기보다는 요 포스팅에서는 '함수가 무엇이고 왜 필요한지' 흐름에 대한 이해를 잡는 것에 중점을 두는 것이 좋습니당 예시 ↓ 자 중간고사가 끝났어요!!. 학생들은 수학, 영어, 국어 과목을 시험을 봤..
[C, C++, java 공통] 오버로딩이란? Overloading 개념 [C언어, C++언어 완전 정복! 강의 목차 링크] 이번에는 overloading 오버로딩 vs overriding 오버라이딩 맨날 비교하는 질문 유명하죠? 말이 비슷해서 비교대조 문제로 종종 출제되는(?) 오버로딩에 대해서 알아볼게요 Overloading이란? 사진에서 볼 수 있듯이 'overload =너무 많이 적재하다'라는 의미를 가지고 있어요 즉 겹겹히 쌓아올리는 ~! 이런 느낌을 생각하면 됩니다. 자 그러면 C/C++, java, C# 등등 언어에서 사용되는 함수 오버로딩 또는 메소드 오버로딩은 무엇을 의미할까요? 일단 '함수/메소드 +오버로딩'이니 '함수를 겹겹히 덮어쓰는 행위'라는 것을 유추해볼 수 있어요. (= 함수 중첩) 함수 오버로딩이니 함수부터 생각해봅시다. 함수를 정의할 때 [ret..
프로그래밍에서 변수(variable)란? 자료형이란? 데이터 타입 종류 및 크기 [C언어, C++언어 완전 정복! 강의 목차 링크] C, C++, C#, Java, Python 등등.. 다양한 언어가 있는데요. 프로그래밍 공통은 이러한 언어들에서 공통적으로!! 나오는 개념을 정리하는 카테고리예요. 공통적으로 다 포함되어 있다는 말은 기초 중에 기초이면서도 그만큼 중요한 개념이라는 뜻이겠죠? 프로그래밍에서 변수란? 수학 과목을 들어본 학생이라면 변수라는 단어에 대해서는 익숙할 거예요. x+y+z=10 할 때 미지수 x,y,z를 변수라고 부르죠?! 수학에서는 정해지지 않은, 그래서 임의의 값을 대입할 수 있는 문자를 가리켜 변수라고 합니다. 프로그래밍에서도 변수는 이와 유사해요. 변수는 결국 정해지지 않은 값을 저장하는 그릇, 상자인거죠! 여기 보면 15라는 데이터값을 저장한 상자 하나..
[C++, java 언어공통]상속을 언제, 왜 쓸까?(inheritance, Is-A) [C언어, C++언어 완전 정복! 강의 목차 링크] 상황으로 상속 한번에 이해하기 자 우리가 메이플스토리 게임을 만들거예요 아주 대강~~~ 으로요 일단 메이플스토리 캐릭터들을 만들어봅시다. 음 마법사, 전사, 도적 이렇게 만들어볼게요 그러면 대락적으로 class 마법사 { ~ }; class 전사 { ~ }; class 도적 { ~ }; 이렇게~? 근데 캐릭터들은 당연히 움직일 수 있어야 하니까 관련 기능을 넣어줘야 겠죠? 기능을 함수(메소드)로 구현해줍니다. class 마법사 { void move() { ~긴 코드 ~ } void jump() { ~긴 코드 ~} //앗 점프할 수도 있어야 해요 void sit() { ~긴 코드 ~ } //앉기 기능도 있네요? } 이렇게 마법사에게 움직이고 뛰고 앉을 수..
[C/C++, java 등 언어 공통] Overriding 재정의, 오버라이딩이란? [C언어, C++언어 완전 정복! 강의 목차 링크] 오버라이딩은 오버로딩이랑 단어도 비슷해서 자주 비교해서 출제되요 그러니까 오버라이딩 보기전에 오버로딩이 헷갈리시다면 오버로딩 게시글을 보고 오는 것을 추천드려요. 오버라이딩 들어가기 전에 확실히 잡고 있어야 할 상속 개념~ Overriding 오버라이딩이란? 오버라이딩은 상속의 개념에서 자연스럽게 넘어가면 이해하기 편해요 저번 게시글에서 메이플 캐릭터를 예시로 상속에 대해서 얘기했었어요 오버라이딩은 결국 상속을 좀 더 편리하게 사용하기 위해 나온거랍니당 저번시간에 예시로 들은 코드를 다시 가져올게요 class 캐릭터 { void move() { this.speed = 10; } //대강~ 움직이는 속도가 10이라는 코드가 이렇다 합시다 void jump..