TIL - 2021.1.20

3974 단어 2021JanTIL2021

Today, I Learned

  1. C++는 class에 대해 연산자 재정의가 가능함!
    Q. 왜 단순한 연산자의 재정의가 의미를 가지는가?
    A. 코드를 만드는 입장이 아닌, 코드를 사용하는 입장에서 고려해야 하기 때문이다.
    직관적인 '좋은' 연산자를 만들어 코드의 추상성을 높일 수도 있지만, 오히려 '좋지 않은' 연산자의 재정의는 혼란을 야기할 수도 있다!
  2. C++에서 operator(허용되는 변환), operator=(단순 대입 연산자) 구분!
    class의 method중, Java의 toString과 유사한 것은 전자, = + - 등의 연산자 재지정은 후자와 같이 한다.
  3. 왜 ec2 인스턴스를 생성할 때 마다 yum update or sudo apt-get update 명령어를 실행시켜야 하는가? -> ec2가 항상 최신 패키지를 가지고 있지 않으므로
    $sudo yum update
    Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
    Resolving Dependencies
    --> Running transaction check
    ---> Package chrony.x86_64 0:3.2-1.amzn2.0.5 will be updated
    ---> Package chrony.x86_64 0:3.5.1-1.amzn2.0.1 will be an update
    --> Processing Dependency: libnettle.so.4()(64bit) for package: chrony-3.5.1-1.amzn2.0.1.x86_64
    ---> Package cloud-init.noarch 0:19.3-3.amzn2 will be updated
    ---> Package cloud-init.noarch 0:19.3-4.amzn2 will be an update
    ---> Package p11-kit.x86_64 0:0.23.21-2.amzn2.0.1 will be updated
    ---> Package p11-kit.x86_64 0:0.23.22-1.amzn2.0.1 will be an update
    ---> Package p11-kit-trust.x86_64 0:0.23.21-2.amzn2.0.1 will be updated
    ---> Package p11-kit-trust.x86_64 0:0.23.22-1.amzn2.0.1 will be an update
    ---> Package tzdata.noarch 0:2020a-1.amzn2 will be updated
    ---> Package tzdata.noarch 0:2020d-2.amzn2 will be an update
    --> Running transaction check
    ---> Package nettle.x86_64 0:2.7.1-8.amzn2.0.2 will be installed
    --> Finished Dependency Resolution
    • yum update는 오래된 패키지를 업데이트.
    • yum upgrade는 update에 --obsoletes명령어 붙인것과 동일. 더 이상 사용하지 않는 관련 파일을 삭제함 --> sudo yum upgrade를 사용하자!
  4. about Docker...
    • Docker는 무엇인가?
      OS까지 포함된 VM을 생성하는 대신, 가상으로 파티션(Container)을 나누는 것을 도와준다. Linux 계열에서 동작하다보니, 현재 Windows에 설치된 Docker는 엄청난 메모리를 잡아먹고 있다...
    • 기본 명령어들
    docker ps (-a) ( = docker container ls) // Container 현황 확인
    docker pull <IMAGE> // docker hub에서 image를 pull받음
    docker run <IMAGE> // 해당 IMAGE실행. -it(상호작용 가능), -d(백그라운드 실행) 등..
    docker attach <NAME> // Ctrl+p, Ctrl+q로 detech한 Container 재실행
    docker rm <NAME> // 해당 Container 제거
    docker stop <NAME> // 해당 Container 실행 중지
  5. jenkins - CI/CD (지속적 통합/ 지속적 개발)를 위한 툴
  6. EC2인스턴스 초기 설정하면 좋은 부분
    Timezone 변경
    $ sudo rm /etc/localtime
    $ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
    Hostname 변경
    $ sudo vim /etc/sysconfig/network
    ##########################
    NETWORKING=yes
    HOSTNAME=[ServiceName]
    NOZEROCONF=yes
    #########################

Today, I Did

  1. Docker까지 오게 될 줄 몰랐는데, 어쩌다보니 Docker 배포를 하고있다. 아직 생소한 부분이라 진득하게 공부를 해 봐야할 것 같다.

  2. 배포는 생각보다 진짜진짜어렵다. 역시 아직 개발쪽으로 모르는 부분이 많다고 뼈저리게 느꼈다. 하지만, 이 기회에 이런 툴과 친해져 봐야겠다.

  3. 앞으로 계획
    Django Rest Framework, React, Webserver 총 3가지 Container를 가지는 multi container 구조를 elastic beanstalk를 통해 배포할 예정이다. 이후 Jenkins등을 이용하여 지속적인 통합, 개발이 가능하도록 한다!

좋은 웹페이지 즐겨찾기