이미지, 컨테이너, VM
·
네트워크
1. vm (가상머신)- 서버 역할을 할 실행 환경이다. 온프레미스, 클라우드 둘 다 여기에 해당 됨- 가상머신이기 때문에 우리가 직접 네트워크 설정, 서버의 용량 등등 지정해줘야 함.- 다만 클라우드 같은 경우, 사용하는 클라우드 업체가 L1,L2 계층(물리 계층, 데이터 링크 계층)을 알아서 처리해주므로, 우리는 L3 계층부터 설정하면 됨 2. 이미지- 개발한 소스들을 실행할 수 있는 소프트웨어 패키지- 결국 어떠한 환경에서도 우리가 짠 소스들이 실행되어야 하기 때문에, 소스와 관련된 설정파일들까지 필요함- 실행에 필요한 라이브러리, 설정 파일, 환경 변수, 그리고 OS 커널을 제외한 사용자 영역(user space)을 포함한 패키지 3. 컨테이너- 만들어 놓은 이미지들을 실행시킨 상태- 하나의 이미..
[React] React Hooks 정리
·
Front-End
React에서 Hooks 는 함수형 컴포넌트에서 상태관리를 하기 위해 만들어진 도구이다.상태관리로 웹페이지를 렌더링 시키는 React의 특징을 잘 살릴 수 있는 도구라고 생각하면 된다.본 게시글에서는 자주 사용하는 Hook 들에 대해 알아보려고 한다. 1. useStateuseState는 리액트에서 가장 기본이 되는 상태 관리 훅이다.리액트는 컴포넌트의 상태(state)가 변경되면 가상 DOM을 통해 변경 사항을 감지하고, 필요한 부분만 다시 렌더링한다.이때 우리가 직접 상태값을 만들고, 변경할 수 있도록 도와주는 도구가 바로 useState 훅이다. useState 는 다음과 같이 사용된다.const [state, setState] = useState(initialValue); state : 현재 컴포..
쿠버네티스 K8s
·
kubernetes
과거에는 기업들이 직접 인프라를 구축하고 서버를 운영했지만, 유지보수의 복잡함과 높은 비용 때문에 클라우드라는 서비스 모델이 등장했다.이에 따라 많은 기업들이 직접 서버를 설치·운영하는 대신, 클라우드 환경에서 손쉽게 서버를 구성하기 시작했다.하지만 클라우드 환경에서도 여전히 문제가 남아 있었다. 서버에 장애가 발생하면 개발자가 직접 문제를 해결해야 하고, 애플리케이션을 수동으로 배포해야 했다. 이를 해결하기 위해 등장한 것이 쿠버네티스(Kubernetes)다.쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포·스케일링·관리할 수 있게 해주는 오픈소스 플랫폼이다.자체적으로 클라우드를 제공하지는 않지만, 클라우드 위에서 동작하며 클라우드를 훨씬 효율적으로 사용할 수 있도록 돕는 핵심 기술이다. 쿠버네티스..
디자인 패턴
·
복습 및 회고록
디자인 패턴이란 무엇인가?소프트웨어를 개발하다 보면 반복적으로 비슷한 문제에 부딪히게 됩니다.이때 등장하는 것이 디자인 패턴(Design Pattern)입니다.디자인 패턴은 단순한 코드 조각이 아니라, 문제를 해결하는 일반적인 설계 청사진입니다.즉, "이런 상황에서는 이렇게 설계하면 좋다"라는 검증된 해결 방법을 알려주는 개념입니다.하지만 패턴을 그대로 붙여넣기 식으로 사용할 수 없습니다.개발자는 패턴의 원리를 이해하고, 자신의 프로그램에 맞게 적절히 적용해야 합니다.알고리즘과 디자인 패턴의 차이디자인 패턴은 알고리즘과 혼동되기 쉽습니다.둘 다 문제를 해결하는 일반적인 방법을 다루기 때문입니다.알고리즘: 목표 달성을 위해 따라야 하는 명확한 단계와 절차입니다.디자인 패턴: 문제 해결을 위한 상위 수준의 ..
성능좋은 쿼리문을 작성하는 방법
·
SQL
실무를 경험하기 전에는, 쿼리문은 단순히 데이터를 가져오는 도구라고만 생각했다.“데이터만 잘 긁어오면 그만이지”라는 생각으로 프로젝트를 진행했지만, 취업 후 실무를 경험하며 쿼리 하나하나가 서버 성능에 막대한 영향을 끼친다는 것을 깨달았다.내가 이전에 사용했던 더미 데이터는 많아야 몇 백 건 수준이었다.하지만 실무에서 운영되는 웹 애플리케이션의 데이터는 십만, 많으면 백만 단위를 넘어간다.몇 백 건을 처리하던 쿼리가, 수십만 건을 대상으로도 같은 속도로 동작할 수는 없는 것이다. 그렇다면 쿼리 성능을 높이려면 어떻게 해야 할까? 1. 필요한 값만 SELECT SELECT *로 테이블의 모든 컬럼을 가져오는 쿼리는, 서버 입장에서는 불필요한 작업이 많아진다.예를 들어, 회원 이름과 이메일만 필요할 때, S..