Computer Science/개발상식13 Gradle이란? Gradle이란? 2012년에 출시된 Groovy를 기반으로 한 오픈소스 빌드 도구로, 거의 모든 타입의 소프트웨어를 빌드할 수 있는 빌드 자동화 시스템이다. 빌드: 소스 코드를 컴파일, 테스트, 정적 분석 등을 실행하여 실행 가능한 애플리케이션으로 만들어 주는 과정이다. 소스 코드 -> 실행 가능한 파일 라이브러리가 많아지면서 생긴 문제점 1. 라이브러리 다운, 추가 어려움 2. 개발자들 간의 버전 관리 어려움 3. 다운받은 jar 파일의 보안 위험 빌드 도구 - 계속해서 늘어나는 라이브러리를 자동 추가 및 관리 - 프로젝트를 진행하며 라이브러리의 버전을 쉽게 동기화 Groovy - JVM 상에서 실행되는 스크립트 언어 - Java와 유사한 문법 구조를 가지며, 호환성이 아주 좋다. 장점 프로젝트를 설.. 2022. 11. 3. 문자 인코딩이란? 컴퓨터에서는 모든 변수를 이진법으로 저장한다. 문자도 마찬가지다. ex) 아스키 코드 사람의 문자를 컴퓨터가 알아볼 수 있도록 바이너리 신호로 바꿔주는 걸 문자 인코딩이라 한다. 문자 인코딩에는 정말 많은 종류가 있다. 아스키 코드를 사용하지 못하는 이유는 한글이나 한자 등의 다른 언어들을 표현하지 못하기 때문이다. 반대로 유니 코드는 모든 문자를 표현할 수 있다(심지어 이모티콘까지). 이를 UTF-8로 인코딩해서 사용합니다. 문자 인코딩이란 이진코드를 컴퓨터에 저장하는 방식이다. ex) 00000001, 00000000 00000001(바이트 수를 다르게 함) 2022. 8. 11. Apache Kafka vs Amazon SQS https://stackshare.io/stackups/amazon-sqs-vs-kafka https://blog.iron.io/amazon-sqs-vs-apache-kafka/ 카프카 처리 속도가 빠름 분산 처리에 좋음 -> 대용량 트래픽에 대응 결함이 적음 오픈소스이기에 레퍼런스 많음 분산, 내결함성, 높은 처리량을 지원하는 pus-sub 메시징 시스템 distributed, partitioned, replicated된 커밋 로그 서비스 구독 방식의 비동기식 구성 확장 가능한 솔루션 - Kafka는 분할된 로그 모델을 사용하여 많은 양의 데이터를 여러 서버에 분산할 수 있습니다. 따라서 단일 서버의 용량 이상으로 시스템을 확장할 수 있습니다. 빠른 스트림 - Kafka의 도움으로 데이터 스트림을 분리.. 2022. 5. 27. kafka 아는 척 하기(정리 실패) https://www.youtube.com/watch?v=0Ssx7jJJADI&list=WL&index=4&t=1s https://www.youtube.com/watch?v=geMtm17ofPY&list=WL&index=27 https://www.youtube.com/watch?v=xqrIDHbGjOY&list=WL&index=27 카프카란? 분산 이벤트 스트리밍 플랫폼이다. 카프카를 사용하려면 크게 4개의 구성 요소. 첫번째는 카프카 클러스터다. 메시지를 저장하는 저장소입니다. 하나의 카프카 클러스터는 여러 개의 브로커로 구성이 된다. 브로커는 각각의 서버 역할을 하는데, 메시지를 나눠서 저장하고, 이중화 처리도 하고, 장애가 나면 대체도 하는 등의 역할을 한다. 주키퍼 클러스터가 카프카 클러스터를 관.. 2022. 5. 11. CQRS 아는 척 하기 https://www.youtube.com/watch?v=xf0kXMTFJm8 https://www.youtube.com/watch?v=H1IF3BUeFb8 최범균님의 유튜브를 보면서 공부해 본 내용이다. CQRS는 Command Query Responsibility Segregation의 약자입니다. Command(명령) - 시스템 데이터 변경 - 주문 취소, 배송 완료(주문 데이터를 변경함) Query(쿼리) - 시스템 데이터 조회 - 주문 목록 조회 Responsibility(책임) - 구성 요소의 역할 - 구성 요소 (모델) - 클래스, 함수 - 모듈/패키지 - 웹서버/DB Segregation(분리) - 역할에 따라 구성 요소 나누기 CQRS를 정리해보자면 명령 역할을 수행하는 구성 요소와 쿼리.. 2022. 4. 14. NGINX란 무엇인가? NGINX는 웹서버이며 리버스 프록시, 로드밸런서, 그리고 Http cache로도 쓰일 수 있는소프트웨어입니다.요청에 응답하기 위해 이벤트 기반 구조를 채택했습니다. 아파치 서버C10K(Connection 10000 Problem)동시 연결 수가 많아지면 서버가 커넥션을 형성하지 못함. (하드웨어가 아닌 소프트웨어가 문제)아파치 서버의 구조상 Connection 형성시마다 Process를 생성해서 메모리 부족으로 이어진다. CPU 부하 UP.-> 수많은 동시 커넥션을 감당하기엔 아파치 서버가 적합하지 않았다. 아파치는 커넥션당 프로세스 생성아파치는 확장성이 좋은만큼 무거움 처음에는 아파치 앞 단에 nginx를 두는 방식을 위해 nginx를 만듦nginx도 웹서버이기때문에 정적파일은 직접 처리하고, 동적.. 2022. 3. 24. 이전 1 2 3 다음