2021-02-18-TIL

자기경영 노트

https://github.com/mazassumnida/mazassumnida

C++에 붙은 ++는 C언어에서 사용하는 증가를 뜻하는 연산자다. 즉 C언어에 몇 가지 함수가 더해진 것이 아니라 C언어의 개념이나 기능이 전체적으로 증가한 것이므로 ++라는 증가연산자를 뒤에 붙인 것이다. 그리고 원래부터 이 언어가 C++라는 이름을 가진 것은 아니다. 처음에는 ‘C with Class'라고 불렀다. 객체를 구현하기 위해서 클래스를 제공하는 C언어라는 뜻이다.

C++은 1979년에 미국의 벨 연구소에서 일하던 스트라우스트럽이 만든 컴퓨터언어로 C, 알골, 시뮬라 등의 언어를 기초로 해서 만들었다. 특히 1987년에 결성된 위원회에서 기존의 C 언어와 호환성을 갖도록 규정했기 때문에 C 프로그래머들은 큰 어려움 없이 C++를 사용할 수 있게 되었다. 기능과 문법이 C에서 영향을 받은 반면, C++의 대표적인 장점인 객체 지향 언어의 성격은 객체 지향 언어의 시초라고 할 수 있는 시뮬라에서 많은 영향을 받았다. 그리고 C++이 국내의 프로그래머에게 많은 사랑을 받는 요인을 손꼽으라면 C언어와의 호환성과 어셈블리어의 연결사용을 들 수 있다.

enum은 완벽한 타입이다. 따라서 type safe 하다. C언어의 enum은 type-safe 하지 않지만, 자바에서는 type-safe 하다. 즉, enum 자체가 타입으로 간주된다.

써야할 상수가 많고 같은 종류일 때, 관련있는 상태가 2개 이상일때, 불연속적인 이 많고 갯수의 제한이 있을 때

enum끼리 같은 타입이면 비교 등의 연산이 가능해야한다.

C언어에서 company.apple == fruit.apple 은 같다고 한다.
JAVA에서는 아예 에러가 난다.
Tip

package [package_name] 하고 바로 자동완성 키를 누르면 자동으로 패키지가 이동된다.

JUnit말고 assertJ사용해야한다.

옵션 + 엔터

동등성(Equivalence) 동질성(Homogeneity)

enum에는 순서가 있다.

왜 써야하는지 이유가 명확하지 않다면 안쓰는게 많다. (실무에서는) 공부할 때는 사용하는 것이

static 남발하면 서버가 죽을 수가 있다. 당장은 아니고 두달 뒤에 죽는다. 등 나만의 합리적인 이유를 꼭 만들자.

https://okky.kr/article/39509

String 은 + 안쓰는게 나은가요?

electric handheld game

enum의 가장 큰 목적은 DB때문이다.

enum Size{
SMALL, NORMAL, LITTLE_BIG, BIG
}
이렇게 LITTLE_BIG이 추가되면, 그것이 BIG이 되어버리는 문제가 발생한다.
MySQL의 enum은 회사에서는 절대로 사용하지 않는다.

ordinal은 평범한 상황에서 절대 사용하지 말것!!

유니크한 식별자가 없으면 VO다. 객체를 식별하는 것이 무의미할 때, 예를 들어, 니 천원 내 천원이 차이가 없을 때. enum은 일종의 VO이다.

https://www.geeksforgeeks.org/upcasting-vs-downcasting-in-java/?ref=rp


  1. 객체는 함수 내부에서 변경할 일이 많이 생기더라.
  2. 스택에 직접 구조체를 복사하면 난리가 난다.

자바에서는 메서드가 값을 변경하는지 알수없으므로 행동을 명확히 나타내도록 메서드명을 지정하는 것이 바람직하다.