일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- java list 저장
- 격파르타비전공자
- java map 출력
- 격파르타장점
- javaJVM
- 프로그래머스제일작은수
- 항해15기
- java map
- 노베이스부트캠프
- java set 저장
- 컴파일
- 작은수제거하기
- 코딩부트캠프후기
- java알고리즘문제풀이
- sqld자격증합격
- 프로그래머스
- java list 출력
- java최솟값구하기
- 격파르타합격후기
- 항해99후기
- java기본자료형
- java참조자료형
- java알고리즘
- java set 출력
- 격파르타후기
- 인터프린터언어
- javaJRE
- java 자료구조 활용
- 비전공자sqld
- java map 저장
- Today
- Total
목록2세/Computer Science (12)
코딩과 결혼합니다

프로그래밍의 오류 종류 컴파일 에러 : 컴파일 시에 발생 런타임 에러 : 실행 시에 발생 논리적 에러 : 실행은 되지만 의도와 다르게 동작 컴파일 주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스(빌드) 대체로 문법상의 에러 에러가 발생한 부분을 알려준다. 예) ';' 누락 / 괄호가 안 맞음 / classpath에 누락된 클래스 런타임 프로그램이 컴파일된 후 실행하면서 에러 발생 대부분 개발 시 설계 미숙(논리적)으로 발생 에러 발생 시 프로그래머가 역추적하여 원인을 확인해야 한다. 예) NullPointerException / 무한루프 / 0으로 나누는 경우 논리 '버그' 프로그램이 멀쩡히 돌아가는 것이니 에러 메시지를 알려주지 않는다. 개발자는 프로그램의 전반..

서비스 거부 공격(DOS) 다른 사람이 서비스를 받지 못하게 특정 네트워크 서비스나 시스템을 사용 불가능하게 만드는 보안 공격이다. 이 공격은 대량의 트래픽을 특정 서버에 보내고 그 서버의 성능을 저하시키거나 완전히 중단시키는 방식으로 이루어진다. 취약점 공격 DOS 기본적으로 1500byte 이상의 데이터를 보낼 때에는 데이터를 여러 번으로 나누어 전송을 한다. 이때 순서가 뒤바뀌어 목적지에 도착하는 것을 방지하여 데이터(패킷)를 보낼 때, 앞에 순서를 붙인다. 이때 공격자는 데이터를 보내는 순서를 조작하여 불완전하게 만든다. 패킷을 보낼 때, 패킷을 보낸 주소를 패킷의 도착 주소와 같게 조작하여 보내어 무한루프에 빠져 오류를 일으키게 한다. 이 과정에서 컴퓨터 자원은 소모되고, 결과적으로 서비스 거부..
✏️REST API REST는 Representational State Transfer라는 용어의 약자로 웹의 장점을 최대한 활용할 수 있는 아키텍처이다. REST 구성 자원 - URI 행위 - HTTP METHOD 표현 REST의 특징 Uniform(인터페이스) URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일 Stateless(무상태) 작업을 위한 상태정보를 따로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리하면 된다. 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해진다. Cacheable(캐시 가능) HTTP라는 기존 웹표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 활용..
✏️Monorepo 하나의 레포지토리에 여러 개의 프로젝트를 통합하여 관리하는 방식 모노레포의 등장배경 주로 대형 기업의 소프트웨어 개발 과정에서 발생하는 문제를 해결하기 위해 생기게 되었다. 대형 기업에서 수많은 개발자들이 수천, 수만 개의 프로젝트를 동시에 개발하고 관리해야 하는 상황이 발생하는데 이러한 상황에서 각각의 프로젝트를 독립된 레포지토리로 관리한다면 많은 문제가 발생할 수 있다. 1. 코드 재사용과 공유 동일한 기능이나 컴포넌트를 다른 프로젝트에서 사용하려면, 해당 코드를 복사하거나 공유 라이브러리를 만들어야 했다. 이는 코드 중복과 관리 비용의 증가를 초래하였다. 2. 의존성 관리 다수의 프로젝트 간에 의존성이 존재할 경우, 각각의 프로젝트를 독립적으로 관리하다 보면 의존성 버전 충돌이 ..
✏️Serverless 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델. 서버리스는 동적으로 서버의 자원을 할당하여 자원을 효율적으로 사용할 수 있다. 예를 들어 사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어가게 된다. 또한 개발자는 스케일링, 업데이트, 백업, 보안 등 서버에 대해 일절 관리하거나 신경 쓸 필요가 없어 비즈니스 로직에 집중하여 개발할 수 있다. 클라우드 네이티브 애플리케이션 : 클라우드 컴퓨팅 기법과 기술을 기반으로 애플리케이션을 구축, 실행, 개선하는 것. 클라우 네이티브 개발은 아키텍처의 모듈성, 탄력적인 결합, 독립적인 서비스에 중점을 둔다. ..

✏️Docker Linux 컨테이너 기반의 오픈소스 가상화 플랫폼. Docker를 사용하면 컨테이너를 매우 가벼운 모듈식 가상 머신처럼 다룰 수 있다. Docker는 애플리케이션과 그 환경을 하나의 패키지로 만들어 이를 빠르고 쉽게 배포하고 실행할 수 있도록 도와주는 도구이다. 실행방식 Docker 기술은 여러 프로세스와 애플리케이션을 서로 개별적으로 실행하여 인프라를 더 효과적으로 활용하고 개별 시스템을 사용할 때와 동일한 보안을 유지할 수 있다. Docker를 포함한 컨테이너 툴은 이미지 기반 배포 모델을 제공한다. 따라서 여러 환경 전반에서 애플리케이션 또는 서비스를 모든 종속 항목과 손쉽게 공유할 수 있다. 또한 이 컨테이너 환경 내에서 애플리케이션 배포를 자동화한다. Dockerfile 작성 D..
✏️cache 요청을 받았을 때 더 빠르게 로드할 수 있도록 앱, 서버, 웹 사이트, 또는 브라우저에서 임시 파일 또는 데이터를 저장하기 위해 쓰이는 메모리이다. 데이터가 지속적으로 요청할 때마다 새로운 콘텐츠를 생성하지 않고 액세스 하거나 요청한 데이터를 저장하는 것을 기반으로 한다. CPU캐시 대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 1980년대 이후 대부분의 CPU는 하나, 많게는 5-6개까지의 서로 다른 기능을 가진 CPU캐시를 장착하고 있다. 디스크 캐시(=디스크 버퍼) 1980년대 후반 이후의 대부분의 하드디스크는 디스크 제어와 외부와의 인터페이스를 위해 작은 컴퓨터를 내장하고 있다. 대개 디스크에 입출력되는 데이터를 저장하는 작은 ..

✏️MSA 하나의 큰 애플리케이션을 여러 개의 작은 서비스로 분리하는 아키텍쳐 패턴을 말한다. 이 작은 서비스들은 각각 자신의 프로세스를 갖고 있으며, 비즈니스 목표를 달성하기 위해 서로 통신한다. 각 서비스는 독립적으로 배포할 수 있고, 각자 다른 프로그래밍 언어와 데이터베이스를 사용할 수 있다. 🔸 MSA의 등장배경 기존의 모놀리식 아키텍쳐의 한계를 극복하고자 하는 시도에서 시작되었다. 모놀리식 아키텍처는 애플리케이션의 모든 구성요소가 한 개의 단위로 시스템의 한 부분이 다른 부분과 강하게 연결되어 있는 구조로 시스템의 규모가 커질수록 코드의 복잡성을 증가시키고, 한 부분의 변경이 전체 시스템에 영향을 미칠 수 있다. 또한, 전체 애플리케이션을 한 번에 배포해야 하므로 배포 과정이 복잡해지고 많은 시..