분류 전체보기

· MSA
시스템의 구성이 이전과 다르게 Local 에서 Cloud로 개선되었고 그로 인해 확장성과 안정성이 강화되었고 지속적인 변동이 발생하더라도 시스템을 유연하게 사용할 수 있도록 개선되었다. 이러한 시스템을 구성하는 대표적인 특성을 AntiFragile 과 Cloud Native 의 방식을 가지고 정리할 수 있다. ⚡ AntiFragile 이전까지의 시스템은 Fragile 즉, 깨지기 쉬운 성격을 가지고 있었다. 하지만 최근에는 이와 상반되는 AntiFragile의 성격을 가지고 개발이 된다는 것을 알수가 있다. Auto Scaling ( 자동 확장성 ) 시스템을 구성하는 인스턴스를 auto scaling group으로 묶어 유지되어야 하는 최소 인스턴스를 지정하고, 사용량에 따라 변동이 가능한 방식을 사용하..
✍️ 1:1 피드백 코칭에서 받은 피드백 ▶ 얼어붙어 있는 시장 개발자의 시장이 꽁꽁 얼어붙었다는 말은 개발을 시작하고 나서 가장 많이 들은 말중 하나이다. 항해99 를 들어오면서 그리고 이력서 코칭을 받으면서 나아가 친구들과 얘기를 할 때에도 늘 한번씩은 나오는 얘기이다. 이런 얘기를 하면 어떤 마음일지 모르겠는데 그건 다른 직종도 마찬가지이다. 최근에 머리를 하러 가서 미용사분께 들은 말이 참 인상적이였다 "다들 자기가 제일 힘들대" 맞다. 세상 누가 편하게 일하고 돈 벌고 있을까? 나도 그렇다고 생각한다. 음악을 했던 사람으로써 따지면 음악을 시작하고 슈퍼스타K가 유행을 하기 시작했다 음악의 큰 부흥이 있었고 정말 많은 사람이 음악을 하기 위해 밖으로 나왔다. 그렇게 대학의 입시 경쟁은 실용음악학과..
✍️ 프로젝트 경험 구조화 세션 ▶ 코드 바라보기 이번주는 내내 이전에 만들었던 프로젝트를 돌아보는 시간이라서 오늘은 코드를 돌아보는 시간을 가졌다. 어떠한 코드를 작성했고 어떻게 작성하였는지 그리고 왜 작성했는지 그리고 이 코드들을 적으면서 무슨 일이 있었고 DB 관련 문제는 없었는지 등등 많은 이야기가 들어있었고 이를 채우는 시간을 가졌다. 날이 하루하루 지날수록 기술의 부재가 너무 심하다고 느끼고 있다. 그래서 안 뽑힌 걸 수도? 어쨌든 트러블 슈팅도 트러블 슈팅이지만 나의 기술 스택에 다양함이 부족한 게 좀 아쉽다. 물론 심도 있게 깊은 지식을 가지고 사용할리는 없겠지만 요즘 화두가 되고 대세가 되는 스택은 한 번씩 사용해 보는 것이 매우 좋은 것이라고 생각이 든다. 개인 프로젝트 기간의 나야 화..
✍️ 오늘까지 강의를 들으며 ▶ 내 식당의 메뉴판에 적힌 메뉴를 자랑하는 방법 최근에 길을 가다가 김치찌개를 하는 식당 두 개를 발견했다. 마침 배가 고픈 나는 두 개의 식당 중 어느 식당으로 갈지 고민하고 있었지만 두 식당은 차이가 있었다. A 가게는 자신의 메뉴를 자랑하는 설명을 적어두었다. 물론 글귀 자체는 흔했다. 몇년의 장인이 끓이고 김치가 얼마나 맛있고 육수는 어떤 육수를 사용하는지 자세하게 설명해두었다. 반면에 B가게는 아무런 설명이 없는 가게였다. 그리고 나의 발걸음은 자연스럽게 A 가게로 향했다 별 쓸데없는 말 같지만 이력서를 작성하고 강의를 들으면서 갑자기 이런 생각이 떠올랐다. 이력서를 작성하면서 자주 듣는 말중 "내가 이력서를 보는 사람이라면 뭐라고 작성해야 이력서를 볼까?" 라는 ..
자료구조 : 데이터를 저장하고 관리하는 방식 자료구조에서 사용하는 메모리는 크게 HDD 와 RAM 이 존재한다. HDD 는 우리가 코드를 작성하면 저장하는 곳이고 이 코드를 실행하는 곳이 바로 RAM 이다. 이 RAM에 대해서 알아보자 RAM 0과 1로 이루어진 컴퓨터 ( 이진법 ) 램에는 수많은 레지스터가 존재한다. 그 레지스터가 on 일시 1 을 뜻하고 off 가 되면 0 이된다고 쉽게 생각해볼때 한 개의 레지스터는 2개의 수를 나타낼수 있는 것이다. 한개의 레지스터는 이진수를 영어로한 binary digit의 약자 bit 가 되는 것이다. 즉, 한개의 레지스터는 1bit 가 되는 것이다. 이처럼 1bit는 2개의 숫자로 표현하는 이진법을 사용하게 되고 2bit는 4개 나아가 8bit(1byte) 는..
✍️ 항해 99 취업 리부트에 참여하는 마음가짐 ▶ 2기로써의 기대감 그리고 걱정 무엇이든 항상 뒤늦게 시작하던 내가 남들보다 앞서 무언갈 시작했다는건 마음이 설레는 일이다 때문에 나에게 취업 리부트 코스 2기라는 비교적 굉장히 앞에 있는 기수로 시작한 항해코스는 뜻 깊다고 말 할 수 있다. 또한 앞으로 취업 리부트 코스가 수차례 진행되어 기수가 쌓이면서 내가 좋은 선례가 될 수 있을지도 모른다는 기대감 또한 가지고 해당 부트캠프를 시작하고자 한다. 겨우 1일차이지만 굉장히 짜임새있고 체계적인 것을 느꼈고 해당 과정을 열심히 따라가다 보면 나는 개발자로써 단계가 업그레이드 되고 나아가 내가 기대하던 것보다 좋은 회사를 들어갈수 있겠다 라는 생각까지 들었다 하지만 솔직히 말해서 나는 다른 사람처럼 내가 필..
추상 클래스 미완성 설계도라고도 표현하는 추상 클래스는 일반 클래스와 다를 것이 없다. 그저 클래스 내에 추상 메소드가 하나 이상 포함되거나 클래스가 abstract로 정의되어 있는 경우를 말하게 된다. 그렇게 추상적으로 선언이 된 메소드를 자식 클래스에서 상속받아 완성하게 하는 목표를 가진 것이라고 할 수 있다. 하지만 상속을 위한 클래스이기 때문에 따로 객체를 생성할 수는 없다. abstract class name { ... public abstract void methodName(); } 이런 식으로 추상 클래스 안에 추상 메소드가 들어가있는 것이다. 물론 추상이기 때문에 메소드의 구현부는 작성하지 않는다. 추상 클래스의 규칙 추상 클래스는 abstract를 붙여서 표현해야한다 클래스를 abstra..
Blocking 과 Non-Blocking 사람들이 굉장히 많이 헷갈려하는 Blocking 과 Non-Blocking에 대해 알아보자 중요한것은 Blocking 과 Non-Blocking은 동기와 비동기와는 관점을 다르게 봐야한다. Blocking과 Non-Blocking은 제어권이 어디에 있느냐에 대한 관점이다 작업을 시킨 주체에게 제어권이 있는지 혹은 작업을 처리하는 주체에게 제어권이 있는지에 대한 것이다. Blocking : 직접 제어를 할 수 없는 대상의 작업이 끝날 때까지 기다려야 하는 경우 Non-Blocking : 직접 제어할 수 없는 대상의 작업이 완료되기 전에 제어권을 넘겨주는 경우 Blocking 직접 제어를 할 수 없는 대상의 작업이 끝날 때까지 제어권을 넘겨주지 않는 것이다. 예를 ..
들어가기전에... 자바는 OS에 독립적인 특징을 가지고 있다. OS에 독립적인 특징이라는것은 우리가 해당 코드를 실행하는 환경이 Window이든 MacOS이던지 차이가 없이 구동이 가능하다는 얘기이다. 그게 가능한 이유는 JVM덕분이다. 그렇다면 JVM의 어떠한 기능 때문에, OS에 독립적으로 실행시킬 수 있는지 자바 컴파일 과정을 통해 알아보도록 해보자 자바의 컴파일 과정 개발자가 Java를 사용해서 소스 코드를 작성한다(.java) 자바 컴파일러가 자바 소스파일을 컴파일한다. 이떄 나오는 파일은 자바 바이트 코드(.class)파일로 아직 컴퓨터가 읽을 수 없는 자바 가상 머신이 이해할 수 있는 코드이다. 바이트 코드의 각 명령어는 1바이트 크기의 Opcode와 추가 피연산자로 이루어져 있다. 컴파일된..
JIT 컴파일 또는 동적 번역은 프로그램을 실제 실행하는 시점에 기계어로 번력하는 컴파일 기법이다. 컴파일러 와 인터프리터 컴파일과 인터프리터 모두 high-level language를 machine language로 번역한다 컴파일러는 소스 코드 전체(우리가 사용하는 코드)를 한번에 번역하여 목적 파일(기계어)로 만들어 메모리에 적재한다. 인터프리터는 소스 코드를 한 줄 한 줄씩 중간 코드로 번역을 한 후에 실행한다. 컴파일러는 소스 코드 전체를 컴퓨터 프로세서가 실행할 수 있도록 바로 기계어로 변환하게 된다. 인터프리터는 high-level 언어를 중간 코드로 변환하고 이를 각 행마다 실행한다 일반적으로 컴파일러가 각 행마다 실행하는 특성을 가진 인터프리터보다 실행시간이 빠르다. 컴파일러는 전체 소스..