프로그래밍 언어 92

[삽잡이::C++] vector 삽질 일지

안녕하세요 삽잡이 입니다. 이번 시간에는 간략하게 시행 착오들을 겪으며 삽질을 한....지금 생각해보면 내가 이런 허접한 실수를 했단 말인가... 하는 오류들을 정리해보려고 합니다. 물론... 가장 큰 목적은 나의 삽질을 기억하고 다시는 이런 실수를 하지 않기 위해서입니다. 1. vector안에 NULL 이 들어 있다면? 말 그대로 입니다. 간단하게(?) 도서 관리 프로그램을 구현하고 있었습니다. 매우 간단하게 말입니다...미리 vector의 사이즈를 100으로 resize 해놓고 모두 0으로 초기화를 했습니다. 왜냐, 원하는 인덱스 값에 데이터를 집어 넣으려고 한 이유죠...기존 vector를 사용할 때 push_back 이나 insert 같은 경우에는 데이터를 입력함으로써 vector의 사이즈가 유동..

#032_시(c)시(c)해서 C++?!_ Lambda 그리고 함수 객체를 사용하는 이유.

안녕하세요~! 삽잡이 입니다. 예전에 이런말을 들은 적이 있습니다.' 아는 만큼 보일 것이다...' 지금 생각했을때, 예전에 프로그래밍 언어에 대해서 질문을 했던 내용들을 떠올려보면참으로 부끄럽고도 우스운 내용들이 다반사였습니다. 지금 보면 별것 아닌 지식들이... 그 예전에는 왜 그런지에 대해 이해조차 가지 않았었는데...아는 만금 보인다라... 아직 패기 넘치는 혈기 왕성한 삽잡이는 알아가는 재미가 쏠쏠합니다. 더욱 폭 넓은 지식을 습득하기 위해, 더욱 폭 넓은 견문을 가지기 위해오늘도 삽잡이는 열심히 삽질을 하겠습니다~! 자... 이번 시간에는 함수 객체를 사용하는 이유에 대해서 알아보겠습니다.함수 객체에 대해서 왜 사용해야하는지 이게 뭔가하는 궁금증을 가지고 있었습니다... 하지만 그 궁금증은 시..

#031_시(c)시(c)해서 C++?!_ 함수 객체가 뭘까요?

안녕하세요 삽잡이 입니다. 하하... 어제의 글로 분명 C++에 대한 정리를 끝냈다고 생각했지만막상 함수 객체에 대해 접할 기회가 있었는데 가물가물 가물치 한 것입니다...죄송합니다. 지금 자고 일어나서 제정신이 아닙니다... 자... 잠도 깰꼄... 오늘도 힘차게 달려보겠습니다~! 함수 객체에 대해 알아보기 이전에는 연산자 중복 정의를 알아야합니다...지난 시간에 연산자 중복정의에 대한 간략한 정리를 진행 했었죠...그래서 함수 객체를 헷갈려하는 사단이... 발생...아무튼... 그러면 이번에는 우선 연산자 중복 정의에 대한핵심만을 간략하게 정리하고 본론인 함수 객체로 들어가보도록 하겠습니다. 연산자 중복정의는 '피연산자 중에 최소 하나 이상이 사용자 정의 형식일 경우에 해당 연산에 대한 기능을 정의 ..

#003_자료구조와 알고리즘_삽입 정렬

안녕하세요 삽잡이입니다. 이번 시간에는 지난 시간, 버블 정렬과 선택 정렬에 이은 삽입 정렬에 대해서 알아보려고 합니다. 삽입 정렬은 배열의 부분 배열을 정렬 시켜 나가는 정렬 방식입니다. 예를 들어보도록 하겠습니다. 삽잡이가 '원카드' 게임을 한다고 가정해보죠... 해당 게임에 사용하는 카드는 다이아, 하트, 스페이드, 클로버 모양과 각각 순서에 맞는 카드를 제공해줍니다.카드를 뒤섞어 놓고 상대와 본인은 한장씩 뒤집힌 카드를 가져갑니다. 왼손에 한장씩 카드를 가져오는데 평소 조그마한 정리 조차 하지 않으면 미칠듯이 불안감에 빠지는 삽잡이는한장, 한장 카드를 집어 왼손으로 가져올 때마다카드를 순서대로 정리합니다...그리고 정해진 수의 카드를 가져갔다면, 이제 게임은 시작 됩니다. 이게 삽입 정렬입니다. ..

#002_자료구조와 알고리즘_find_if 알고리즘

안녕하세요 삽잡이입니다. 이번시간에는 find_if 함수에 대해서 간략하게 알아보려고 합니다...자료구조 배열에 대해서 알아보다가find_if 함수가 뭔지 하는... 처음에 이해가 안갔었는데그 이유가 함수 객체에 대한 이해 부족 때문이었습니다... 왜 안되지 하며 한참 째려보기만 했다는... 하지만 째려보면 반드시 승리하게 되있습니다. 계속해서 째려보세요~!뭔 x소리인지... 죄송합니다. 참고로, 함수 객체에 대한 이해가 부족하시다면...C++ 글의 함수 객체에 대한 글을 참고하시길 바랍니다... 우선, find_if 함수는STL 에서 제공하고 있는 알고리즘인데요,컨테이너... 그러니까 자료를 보관하고 있는 메모리 구조에서 원하는 데이터를 찾을 수 있도록제공해주는 알고리즘입니다. 우선 원형을 살펴보시지요..

#001_자료구조와 알고리즘_프리뷰 + 정렬(버블 정렬, 선택 정렬)

안녕하세요 삽잡이입니다. 이번 시간부터는 자료구조와 알고리즘에 대해여 정리를 해보려고 합니다...엄청난 삽질을 하는 스스로의 모습이 벌써부터 떠오릅니다... 하지만... 의미 없는 삽질은 없다! 오늘도 달려갑니다~! 우선 자료구조란, '자료를 보관하는 구조'를 나타낸 것입니다. 예를 들어 앞으로 배우게 될 것이지만 간략하게 소개를 통해 이해를 해보자면... 선형... 한줄로 자료가 보관 되어있는 구조라던지,비선형... 나무 줄기 처럼 쭉쭉 나가는 모양새던지 원탁의 형태이던지... 아무튼 그와 같이 자료가 보관되어있는 모습을 자료구조라고 할 수 있습니다.자료들이 보관되어 있는 구조이니까요! 그렇다면 알고리즘은 뭘까요?인터넷에서 쉽게 검색하면 알 수 있듯이'문제 해결을 위한 논리의 전개 집합'을 우리는 알고..

#030_시(c)시(c)해서 C++?!_C++의 모든 것! 최종 정리 (2)

안녕하세요 삽잡이입니다...지난시간에 이어서 C++ 에 대한 총 정리를 진행해보려고 합니다...물론 '백문이 불여일타' 라는 말이 있듯이(?) 하하...열심히 코드를 쳐보며 접근해야하는 것이 맞으나, 가끔은 머리도 순환할겸... 개념도 정리할겸... 이렇게 정리를 통해 복습하는 것 또한 나쁘지 않다고 생각합니다... 이전 시간에도 언급했듯이,이 글은 이미 C++에 대한 경험이 있으시며, 다시한번 머리로 정리해볼 필요가 있으신 분들이 읽으시기에 보다 적합한 글이 될 것 같습니다. 물론 제가 글을 워낙 막쓰다보니... 이해가 안가시는 부분들이 많을 수 있겠지만....사전적 지식을 가지고 계신 분들이라면,무리없이 이해하시고 넘어가실 것이라는 믿음이 생기는 군요... 말이 길어졌군요... C++ 마지막(?) 총..

#029_시(c)시(c)해서 C++?!_C++의 모든 것! 최종 정리 (1)

안녕하세요 삽잡이 입니다... 이번 시간에는 그동안 알아오던 (저혼자...) C++에 대해서 정리할 시간을 가져보려고 합니다...물론... 실습 위주가 아닌 용어위주로 말이죠... 하하...사전에 C++에 대해 살펴보신 경험이 있는데, 가볍게 한번 훑고 지나가고 싶다 하시는 분들이읽으시기에 적당한 글이 될 것 같습니다.조금은 긴 글이 될 수 있겠군요... 바로 시작하겠습니다. C++은 C언어에 그 외 기능들이 +(plus) 된 언어입니다.해당 언어는 C언어에 비해 보다 신뢰성이 있는 언어로써, 객체 중심으로 프로그래밍을 할 수 있는 객체 지향 언어(OOP) 중 하나입니다. 물론, C++ 이후에 나온 Java, C#에 비하면 신뢰성이 보다 떨어질 수 있으나, C언어와 비교했을 때 보다 신뢰성을 추구하며,개..

#20150728_ back to the basic (회고)

심심해서 요 근래 3일동안 구현한 코드의 수를 세어봤다...헤더는 대략 430줄... 소스파일은 대략 2600줄...뭐 굳이 의미는 없다만...허접한 학부생으로써 요즘 기초의 중요성을 많이 느끼는 요즘이다... 그래서... 센치해지는 지금 시간대에... 느낀점을 몇자 적어보려고 한다.뭐 결론부터 말하자면... back to the basic 이다. 1. 설계의 중요성...우선 시나리오 즉, 요구사항에 대해 정리를 하며 키워드들을 정리하자.요구 사항에 대해 전체적으로 잘 표현해 줄 수 있도록 만들어놨다면, 이를 설계로 살며시 가져오자...몇 줄 안되는 정도면 상관이 없겠다만... 사람이란 망각의 동물이라던가... 우리의 기억은 완전하지 않기 때문에 원하는 목적을 수행하는데 이리저리 갈대 같이 흔들리며 목적..

#028_시(c)시(c)해서 C++?!_프로그램 설계 예시

안녕하세요 삽잡이입니다~! 오늘은 UML을 사용한 프로그램 설계의 예시에 대해 소개해드리려고 합니다.머릿속으로 설계를 하고 종이에 구현 방안에 대해서 설계하기에는어느정도 프로그램의 크기가 커지면 한계가 있다는 것을 몸소 느꼈습니다... 처음 분석하고 설계하는 시간이 많이 잡아먹고...또한, tool을 사용하는 시간까지 생각하면... 더 많이 잡아 먹습니다...만들면서도 내가 지금 뭘 하고 있는건가 하는 생각이 드는데요... 하지만, 분명한건 만들어두면 개발할 때에 정말 유용하다는거! 수업때 배운 예시를 보여드리도록 하겠습니다~! [ 요구 분석 (Use Case Diagram) ] - 전체 - 학교 [ 설계 ]- 클래스 다이어그램 [ 마을 형성 (시퀸스 다이어그램) ]- 생성시 - 종료시 - 학생 생성 시..