본문 바로가기

분류 전체보기115

개발 공부를 하면서 느낀 개발 공부의 특징 개발 공부가 왜 이렇게 어려울까? 남들에 비해 느린 학습 속도 때문에 나는 이런 질문을 자주 나에게 던지곤 했다. 물론 내 성격이 모르는 것이 있으면 해소하지 않는 이상 다음 단계로 나아가지 못하는 성격 때문도 있을 것이다. 이건 장점이자 단점이다. 하지만 이런 성격과는 별개로 개발 공부가 쉽지 않다는 것을 자주 느낀다. 최근에 객체지향 설계와 관련해 예전에 구매한 책 두 권을 다시 읽기 시작하며 개발 공부 자체의 특징에 대해 조금 실마리를 얻기 시작했다. 책 하나는 조영호 님의 라는 책이고, 다른 하나는 스티브 맥코넬의 라는 책이다. 나는 자바의 문법은 이해했지만 그걸 왜 쓰는지 전혀 모르는 괴로움으로 인해 꽤 오래 전에 이 책을 구매했었다. 1~2년 되었을 것이다. 그런데 그때는 정말 아무리 읽어도 .. 2023. 11. 21.
코드 컴플리트 6장 - 클래스 다루기 요약 6장은 클래스를 다루기 위한 핵심 조언을 다룬다. 1. 클래스의 토대 : 추상 데이터형 1-1. ADT 사용의 좋은점 추상 데이터형(Abstract Data Type, wiki)이란 자료와 그 자료를 다루기 위한 연산을 정의한 것으로, 자료구조와는 달리 구체적인 구현을 숨긴 추상화된 데이터 타입을 뜻한다. 즉, ADT는 저수준의 구현이 아니라 문제 영역과 관련된 자료에 대한 개념과 그에 따른 조작만을 구축한다. 예를 들어, 워드 프로그램에서 텍스트의 폰트를 바꾸는 기능을 개발해보자. ADT를 사용할 경우, [CurrentFont]라는 추상 자료형을 설계할 수 있다. 그리고 이 추상 데이터(폰트)를 조작하는 일련의 연산을 아래와 같이 정의한다. CurrentFont.setSizeInPoints() Curr.. 2023. 11. 21.
C언어 컴파일 과정 1. C언어 컴파일 C언어를 처음 배울 때 C언어의 컴파일을 상세하게 공부하지 않았다. 사실 알고 싶었으나 설명이 워낙 어려워 그냥 그려려니 하고 넘어갔던 것 같다. 그러나 공부를 하면 할수록 하드웨어에 가까운 C언어를 익힌다는 것이 얼마나 중요한지 체감하게 되었다. (소프트웨어의 원형이 결국 C언어 스타일의 프로그램으로 귀결되더라.) 특히 window10과 같은 GUI 환경에서 Visual Studio 툴로 컴파일을 하게 되는데, 이 컴파일은 컴파일하자마자 즉시 실행 파일을 만들어준다. 그래서 C언어 컴파일 과정을 눈으로 익히기가 쉽지 않다. 이후 리눅스 환경에서 디폴트로 설치되어 있는 gcc 컴파일러 프로그램을 통해 C언어 소스코드의 컴파일 과정을 천천히 할 수 있게 되면서 신기해했던 경험이 있다. .. 2023. 11. 15.
왜 자바는 클래스를 난잡하게 쓰는 것일까 해답...!! 왜 자바는 모든 것을 class로 처리하려는 것일까? (주절주절) 공부하면서 느끼는 제 개인적인 생각과 감정입니다... 자바는 클래스에서 시작해서 클래스로 끝난다. 처음부터 객체지향 설계 언어를 목표로 만들어진 언어라 그런가 싶다. 하지만 본질적으로 linocraft.tistory.com 이전에 내가 공부를 하면서 들었던 의문이 오늘 약간이나마 해소된 기분이다. 나는 이전에 왜 자바가 모든 것을 지나치다 싶을 정도로 class로 처리하려는 것인지 의문을 품었었다. 위 링크를 들어가면 상세한 내용을 볼 수 있다. 여기서 간단히 요약하자면, Java에서는 순수한 데이터 구조 (C언어로 따지면 struct) 마저 객체로 만들어버린다. 로버트 c 마틴조차 이런 스타일을 사이비 객체지향이라고 비판하기도 했다. 그.. 2023. 11. 14.