목록분류 전체보기 (239)
사고쳤어요
카카오맵은 지도와 관련된 다양한 API들을 제공해준다.웹 페이지에서 카카오맵 API를 연동하여 지도를 띄워보자. https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com위는 kakao developers 메인 페이지이다.내 애플리케이션을 관리할 수 있고 여러 API 사용법을 안내하고 있다. https://apis.map.kakao.com/web/guide/위는 카카오맵 API를 알려주는 공식 문서이다.위 페이지에서 카카오맵 관련 다양한 API들의 공식 사용 설명을 안내받을 수 있다. 먼저 위 사이트에 로그..
소프트웨어 개발과 배포 과정은 점점 자동화되고 있다.CI/CD 환경이 일반화되면서 더 이상 개발자가 직접 배포하지 않고 자동화된 파이프라인이 이를 대신하고 있다. 그러나 자동화가 이루어진다고 해서 모든 문제가 해결되는 것은 아니다.어떤 시점에 빌드와 배포가 이루어졌는지,코드 변경 사항은 무엇이었는지,시스템 상태는 어떤지를 명확하게 인지하고 관리하는 것은 여전히 중요하다. 이때 필요한 것이 바로 파이프라인 모니터링이다.빌드와 배포 상태 실시간 확인파이프라인 모니터링의 핵심은 운영자가 빌드 및 배포가 실행되고 있다는 사실을 인지할 수 있도록 알림을 설정하는 것이다.보통 릴리스 브랜치를 따로 구성하고, 해당 브랜치에서 파이프라인이 동작하게 설정하여 명확성을 갖는다.이러한 알림은 일반적으로 Slack과 같은 협..
클라우드 컴퓨팅클라우드 컴퓨팅은 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어 등의 컴퓨팅 자원을 필요에 따라 제공하고 사용하는 기술이다덕분에 사용자는 물리적인 하드웨어를 직접 관리하지 않고도 원하는 만큼의 자원을 유연하게 사용할 수 있다.대표적인 클라우드 서비스 제공업체로는 아마존 AWS, 마이크로소프트 Azure, 구글 클라우드 플랫폼(GCP) 등이 있다. 클라우드 컴퓨팅의 기반 기술클라우드 컴퓨팅이 작동하기 위해서는 다양한 기술이 유기적으로 결합되어야 한다. 주요 기반 기술은 다음과 같다.1. 가상화(Virtualization)가상화는 하나의 물리적 서버를 여러 개의 가상 머신(VM)으로 분할하여 운영할 수 있게 하는 기술이다.이로 인해 자원의 활용도가 극대화되며, 다양한 운영..
소프트웨어를 개발하는 방식은 시대의 흐름과 함께 진화해왔다.소프트웨어 공학은 소프트웨어를 개발하고 유지보수하는 데 필요한 원칙, 방법론, 도구들을 체계적으로 적용하는 학문이다.즉, 무작정 코드를 작성하는 것이 아니라, 과학적이고 공학적인 접근 방식을 통해 고품질의 소프트웨어를 만드는 것이 목표이다.그리고 오늘날 대표적인 개발 방법론으로 폭포수(Waterfall) 개발과 애자일(Agile) 개발이 사용되고 있다.워터폴워터폴 개발은 1970년대부터 널리 사용되어 온 전통적인 소프트웨어 개발 방법론이다.이름 그대로 개발 과정이 위에서 아래로, 즉 단계별로 흘러내리는 폭포와 같다.각 단계는 다음과 같으며 각 단계가 순차적으로 진행되며, 한 단계가 완전히 끝나야 다음 단계로 넘어갈 수 있다요구사항 분석설계구현테스..
운영체제의 역할과 구조컴퓨터를 처음 켜면 가장 먼저 실행되는 프로그램이 바로 운영체제이다.운영체제는 하드웨어와 사용자 프로그램 사이에서 중재자 역할을 하며, 컴퓨터 시스템의 전반적인 동작을 관리한다. 운영체제의 역할운영체제는 크게 다음과 같은 네 가지 핵심 역할을 수행한다.프로세스 관리프로세스란 실행 중인 프로그램을 의미한다.운영체제는 프로세스의 생성과 종료, 실행 순서 결정, CPU 할당 등을 담당한다.동시에 여러 프로그램을 실행할 수 있도록 CPU를 효율적으로 분배하는 것이 중요하다.메모리 관리메모리는 프로그램이 실행되는 동안 데이터를 저장하는 공간이다.운영체제는 각 프로세스에 메모리를 적절히 분배하고, 다른 프로세스의 메모리를 침범하지 않도록 보호한다.또한 가상 메모리 기능을 통해 실제 메모리보다 ..
컴퓨터는 0과 1, 딱 두 가지 숫자만 이해할 수 있는 기계이다.컴퓨터는 전기를 기반으로 동작하기 때문에 전기가 흐르면 ‘1’, 흐르지 않으면 ‘0’으로 표현할 수 있고 이진법을 사용한다.십진수는 컴퓨터가 바로 사용할 수 없기 때문에, 컴퓨터는 모든 수를 이진수로 변환해서 저장한다. 예를 들어, 십진수 5는 이진수로 다음과 같이 표현된다:5 (10진수) = 101 (2진수)양수양수는 이진수로 바로 변환해서 저장하면 된다.예를 들어, 8비트(1바이트) 공간을 사용한다고 가정하면, 십진수 10은 이렇게 저장된다: 10 (10진수) = 00001010 (8비트 이진수) 앞쪽의 0들은 자릿수를 맞추기 위한 것이며, 실제 값은 뒤쪽에 위치한다.음수음수는 - 기호를 통해 음수라는 것을 명시해주어야 한다.이진수는 본..
AWS를 활용한 실습 환경EC2: Minikube 클러스터, 웹 서버(Nginx), DB(MariaDB) 설치 및 실행ECR: 컨테이너 이미지 저장소S3: Terraform 상태 데이터 저장소Elastic IP와 도메인 이름 연동 배포 환경 설정 – EC2와 Minikube 클러스터 구성먼저 EC2 인스턴스를 생성하고, 이를 Minikube 클러스터의 노드로 사용한다.EC2 인스턴스 생성 (t3.medium, 16GiB)Key pair 발급 및 SSH 접속 설정Elastic IP 할당 및 도메인 이름 연결Minikube 설치 및 활성화로컬에서 kubectl을 통해 클러스터 원격 제어 가능하도록 인증 파일 전송 및 설정이후 브라우저, MySQL 클라이언트 등에서 실제 클러스터 및 DB 연결을 확인하며 인프..
프론트엔드 단위 테스트프론트엔드에서는 여러 컴포넌트들이 구조를 이루어 화면을 렌더링한다.그리고 각 컴포넌트들에 대하여 단위 테스트를 진행하여 이들이 주어진 역할을 잘 수행하는지 확인해야 한다.회원가입 버튼인 을 예로 들면, 다음과 같은 요소들이 테스트 대상이다.HTML 요소의 정상 렌더링 여부회원가입 버튼 클릭 시 onSubmit 콜백 호출이메일/비밀번호 입력값 전달비밀번호 불일치 시 alert() 호출 및 콜백 미실행로그인 링크 클릭 시 /login 이동테스트 도구@testing-library/react : DOM 렌더링 및 이벤트 시뮬레이션@testing-library/user-event : 사용자 입력 시뮬레이션jest : 테스트 러너jest-dom : DOM matcher 확장설정 예시// ren..