전체 글

항상 부족합니다. 목표를 이룰 때 까지 계속 달리겠습니다.
· 자료구조
안녕하세요 dev_writer입니다. 그간 알고리즘을 공부하며 세그먼트 트리에 대해 정리하였고, 이를 다른 분들도 쉽게 이해하실 수 있도록 문제에 설명을 덧붙이는 식으로 PDF를 만들었습니다! 앞으로 자료구조와 알고리즘은 블로그에 글로 작성하기보다는 이렇게 PDF 형태로 만들 계획입니다. 틀린 사항 등이 있다면 댓글 남겨주시면 바로 수정하겠습니다! 원래는 알고리즘, 자료구조의 난이도 순으로 정리하려 했으나 그때그때 작성하는 게 더 좋겠다는 생각이 들어 비교적 어려운 알고리즘인 세그먼트 트리부터 작성해 봤습니다 :) 많은 도움 되시길 바랍니다!
0과 1로 숫자를 표현하는 방법 정보 단위 먼저 컴퓨터 안에서 흘러가는 데이터에 대해 알기 위해서는, 컴퓨터가 어떤 단위로 정보를 사용하는지 알아야 합니다. 컴퓨터에서는 가장 작은 정보 단위로 비트 (bit)를 가지고 있습니다. 비트는 쉽게 말하면 0과 1을 표현하는 가장 작은 정보 단위입니다. 1 비트가 0과 1을 표현할 수 있으니, n비트는 2^n 가지의 정보를 표현할 수 있음을 이끌어 낼 수 있습니다. 프로그램은 수많은 비트로 이루어져 있으나, 프로그램의 크기를 말할 때는 비트보다 더 큰 단위 (바이트, 킬로바이트, 메가바이트, 기가바이트..)를 사용합니다. 1바이트 (1byte) 8비트 (8bit) 1킬로바이트 (1kB) 1,000 바이트 (1,000 byte) 1메가바이트 (1MB) 1,000 ..
컴퓨터 구조를 알아야 하는 이유 좋은 개발자가 되기 위해서는 프로그래밍 언어의 문법과 함께 컴퓨터의 근간 (컴퓨터 구조, 운영체제)을 알아야 합니다. 이를 알게 된다면 문제 해결 능력 향상과 성능, 용량, 비용을 고려한 개발을 할 수 있게 됩니다. 문제 해결 능력 향상 개발을 하다 보면, 자신이 개발했던 환경에서는 문제가 없었으나 실제로 배포했을 때 문제가 생기는 상황이 종종 발생하곤 합니다. 심지어 컴파일 에러가 아닌데도 발생하기 때문에, 더 어렵게 느껴지기도 합니다. 이는 문법상의 문제가 아니라, 그를 넘은 영역의 문제입니다. 좋은 개발자가 되기 위해서는 컴퓨터 내부를 뜯어볼 줄 알아야 합니다. 그렇게 한다면 컴퓨터를 미지의 대상에서 분석의 대상으로 바라볼 수 있게 될 수 있기 때문입니다. 또한, 기..
· 💬 회고
제목에서 보시다시피, 아쉽게도 우아한테크코스 6기에 1차 불합격되어 최종 불합격 처리가 되었습니다. 이번 학기는 들이부었던 노력에 비해 매우 낮은 성과를 얻었는데, 앞으로의 성장에 있어 새롭게 마인드를 정리해 볼 겸 회고를 작성해보려 합니다. 우아한테크코스 불합격 다른 블로거 분들이 우아한테크코스 합격 글을 올리시는 것들을 보며, 저 또한 합격 메일을 받을 수 있도록 미련 없이, 후회 없이 이번 학기에는 우아한테크코스에만 집중해 보자는 결심을 학기 초부터 했었습니다. 하지만 위에서 작성했듯이 아래처럼 1차 심사에서 불합격이라는 결과를 얻었습니다. 프리코스를 진행하면서 평소에 두렵기만 했던 JUnit에 대해 깊게 파보고, 왜 존재하는지 잘 몰랐던 Enum에 대해서 깊이 탐구해 보게 되어 이 점을 성장한 점..
어느덧 프리코스의 마지막 미션이 주어졌습니다. 코수타 (코치와의 수다타임) 때 포비 님과 코치님들께서 말씀해 주셨듯이 쉽게 풀리지는 않았었습니다. 객체지향의 의미를 다시 생각하자. (현실 세계 반영 주의) 그동안 객체지향의 사실과 오해 책을 읽으며 블로그에도 기록했었는데요, 책에서는 다음과 같은 내용이 나옵니다. 객체지향이 단순한 현실 세계의 모방이 아닌 이유 중 하나는 현실 속에서 수동적인 존재가 객체지향 세계에서는 능동적인 존재가 될 수 있기 때문이다. 이는 객체를 의인화 (anthropomorphism) 하였기 때문이다. 즉, 진정한 객체지향을 구축하기 위해서 주의할 점은 현실 세계를 그대로 옮기는 행위는 하면 안 된다는 것입니다. 그러나 저는 날짜 (Day)와 주문 (Orders)를 만든 다음, ..
이 내용은 코드 리뷰 스터디를 했던 당시 벨로그에 작성했었던 내용입니다. Getter와 Setter 흔히 클래스가 가지고 있는 필드값들을 가져오거나 설정할 때 쓰이는 메서드들을 각각 Getter, Setter 메서드라 합니다. 또는 접근 제어자라고 하기도 합니다. public class Car { private static final int START_DISTANCE = 0; private static final int ACCELERATE_MINIMUM_VALUE = 4; private static final int ACCELERATE_MAXIMUM_VALUE = 9; private final Name name; private int distance; private Car(final Name name, ..
dev_writer
Always Be Curious