목록기타/기초 지식 (38)
코딩항해기

CAPTCHACompletely Automated Public Turing test to tell Computers and Humans Apart컴퓨터와 인간을 구분하기 위해 개발된 보안 메커니즘이다. 웹사이트에서 봇(Bot)과 자동화된 스크립트로부터 시스템을 보호한다. CAPTCHA의 진화 과정초기 텍스트 기반 CAPTCHA초기 CAPTCHA는 왜곡되고 읽기 어려운 텍스트 이미지로 구성되었다. 사용자는 이미지에 표시된 문자나 숫자를 입력해야 했다. 하지만 이 방식은 시각장애인에게 접근성 문제가 있었고, 기술 발전에 따라 봇을 거르지 못하게 됐다.이미지 선택형 CAPTCHAGoogle의 reCAPTCHA는 이미지 선택 방식을 도입했다. 예를 들어 "신호등이 있는 이미지를 모두 선택하세요"와 같은 과제를 ..
DNS의 개념DNS는 Domain Name System의 약자로, 인터넷의 전화번호부와 같은 역할을 한다. 우리가 웹 브라우저에 www.google.com과 같은 도메인 이름을 입력하면, DNS는 이를 컴퓨터가 이해할 수 있는 IP 주소(예: 172.217.161.36)로 변환해준다. 이는 마치 전화번호부에서 이름을 찾아 전화번호를 알아내는 것과 유사하다. DNS의 구조DNS는 계층적인 구조를 가지고 있다. 최상위에는 루트 도메인(.)이 있고, 그 아래에 .com, .net, .org와 같은 최상위 도메인(TLD), 그리고 그 아래에 google.com, naver.com과 같은 도메인이 존재한다. DNS 동작 과정웹 브라우저에 도메인 주소를 입력하면 다음과 같은 과정으로 IP 주소를 찾는다.브라우저는..

Lombok프로젝트 롬복은 표준판 코드를 최소화하거나 제거하는데 사용되는 자바 라이브러리이다. 개발 시간과 노력을 절약해주며, 어노테이션을 사용해 코드 가독성을 증가시켜준다. (기계적 코드 작성을 자동화 시켜주는 라이브러리) 필요성로그 프레임워크 (logback 등)을 사용할 때 상단에 객체를 선언하고 사용해야하는 번거로움이 있었다. 이때 롬복을 사용하면 선언을 생략할 수 있다.그 외에도 VO,DTO와 같은 클래스의 필드변수가 변경되었을 때 getter, setter, toString을 다시 만들어야하는 번거로움을 해소시켜주는 장점이 있다. 또한 getter setter 오탈자나, toString 일부 누락과 같은 휴먼에러를 줄여주는 역할을 수행한다. (가독성 증가) 환경세팅이클립스에서는 설치가 필요하며..
시간복잡도알고리즘의 시간복잡도는 알고리즘을 실행하는데 걸리는 시간을 입력 크기에 따라 표현한 것이다. 입력값이 적을 때는 깊게 고려하지 않지만 실제 개발에서는 방대한 양의 데이터를 다루므로 연산 처리 시간을 최소화하는 방법에 대한 고민이 필수다. 효율적인 방법을 고민한다는 것은 시간복잡도를 고민한다는 말과 같다.(입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마나 소요되는지)시간 복잡도는 주로 빅-오 표기법을 사용해 나타낸다. Big-O 표기법Big-O(빅-오) ⇒ 상한 점근Big-Ω(빅-오메가) ⇒ 하한 점근Big-θ(빅-세타) ⇒ 그 둘의 평균위 세 가지 표기법은 시간 복잡도를 각각 최악, 최선, 중간(평균)의 경우에 대하여 나타내는 방법이다.빅-오 표기법은 최악의 경우를 고려..

팀 프로젝트 한 내용을 Docker로 배포 시도한다는 팀원이 있어 관련된 지식을 미리 확보해두기 위해 Docker를 찾아보게 되었다. 생각보다 간단한 내용은 아니어서 기초 내용만 확보해두고 발표가 완료된 뒤 추가 지식을 보완하기로 해 기초 지식 부분만 정리했다. DockerGo언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다. libcontainer 컨테이너를 사용한다.Docker를 사용하면 개발환경에 구애받지 않고 내가 사용하던 개발환경을 손쉽게 구축할 수 있다. 또한 일반적인 Hypervisor 가상화 방식과는 다르게 경량 가상화로 실행이 빨라 한 개의 서버만 있으면 여러 가지 서비스 실행이 가능해 서버 확장을 필요로 하지 않는 장점이 있다. 배포도 쉽고 수정도 쉽다. 리눅스가장 ..

디자인 패턴 Design Pattern개발하면서 발생하는 반복적인 문제를 해결하기 위해 재사용이 가능한 설계 템플릿이다. 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 모범 사례집이라고 볼 수 있다. 디자인 패턴 장점재사용성이 높고, 일정한 구조로 정리되고 명확하게 되어 있어 가독성이 좋다. 또한 코드를 모듈화해 관리할 수 있어 유지보수성이 높다. 새로운 기능을 추가하거나 변경하는 것도 용이하며, 검증된 솔루션이므로 안정성이 높다.(재사용성, 가독성, 유지보수성, 확장성, 안정성과 신뢰성) 생성 패턴 Creational PatternSingleton(싱글톤 패턴) : 하나의 클래스 인스턴스를 전역에서 접근 가능하게 하면서 해당 인스턴스가 한 번만 생성되..

1. 컴퓨터 구조에 대한 기초컴퓨터의 정의EDPS, ADPS라고도하며 프로그램이 지시하는 절차에 따라 자동적으로 대량의 데이터를 고속으로 처리하는 장치다. 컴퓨터의 특징정확성신속성자동성대용량성호환성범용성신뢰성컴퓨터의 정보처리 과정입력된 자료가 중앙처리장치(CPU)에 의해 처리되어 정보를 출력한다.피드백은 출력으로 나갈 정보의 이상 유무에 따라 자료를 입력축으로 되돌리는 것을 의미한다. 컴퓨터의 구성입력장치보조기억장치제어 장치주기억 장치연산 장치출력장치 2. 컴퓨터 발달과 분류전자식 컴퓨터 종류에니악 (ENIAC)에드삭 (EDSAC)유니박 (UNIVAC-1)에드박 (EDVAC)컴퓨터 처리 속도 단위 : (길다) ms, µs, ns, ps, fs, as (짧다) 컴퓨터 기억 용량 단위 : (적다) KB, ..

업무 일지와 비슷한 일지 같다. 작성일, 작성자, 팀명(있을 경우), 맡은 파트를 작성하고, 오늘 할 일을 작성한다.이후 오늘 분의 개발이 마무리 되면, 실제로 작업한 일, 만났던 에러 및 해결 방안, 내일의 할 일을 작성한다. 전체 계획은 별도로 잡고 매일 전체 계획에 맞춰 개발일지를 작성하면 될 것 같다.노션으로 전체 계획을 잡아 작성할 때, 노션은 아무래도 수정이 매우 자유롭다보니 정확하게 계획에 맞춰 진행 중인지 파악이 어려웠는데, 별도의 개발일지를 남겨두면 확인이 쉬울 것 같다. [작성예시]