본문 바로가기

분류 전체보기

(186)
Load Balancing과 Auto Scaling Load Balancing이란?여러 대의 서버가 서버의 로드율, 부하량. 속도저하 등을 고려하여 적절하게 분산처리하는 시스템그 중 ELB는 들어오는 트래픽을 하나 이상의 가용 영역에 있는 EC2 인스턴스, 컨테이너 및 IP 주소와 같은 여러 대상에 자동으로 분산Load balancing의 장점애플리케이션의 가용성과 내결함성의 증가필요에 따라 컴퓨팅 리소스 추가 및 제거 용이어플리케이션의 확장성서버에서 병목 현상 방지애플리케이션 트래픽 예측Load balancing 알고리즘RR(round robin)클라이언트의 요청을 여러 대의 서버에 순차적으로 분배서버들이 모두 동일 스펙 보유가중치 기반 라운드 로빈(Weighted Round Robin Method)각 서버마다 가중치를 매기고 가중치가 높은 서버에 클라..
Software Engineering(Software Process and Other Models) Use case Diagram-> A use case diagram in part of UML(Unified Modeling Language) set of diatgrams. It shows the important actors and functionality of a system. Actors are represented by stick figures and functions by ovals(타원). Actors are associated with functions they can perform. ex) control flow graph-> It shows the control structure of code. Each node (circle) represents a block of code that ..
Software Engineering(Software LifeCycle) Life Cycle Of Software engineering 1. Feasibility(타당성 조사)-> Determining if the proposed development is worthwhile and if there is a potential market for the product.ex) statement of work,market analysis report 2. Requirement-> Requirements are elicited from user and what the system should do and its development constraints are defined.ex) requirement specification, Preliminary User Manual, Test ..
스프링을 다시 시작해보자 ! 최근 몇달 간 클라우드 및 인프라 공부를 하며 스프링 개발을 하지 않은지 꽤 되었던거 같다. 여러 사람을 만나고, 몇가지 활동들을 참여하며 최근에 내린 결론은 '어떤 직무를 희망하든 개발 능력은 기본적으로 구비되어야 한다'는 것이다. 이러한 결론을 내린 뒤 책을 통해 꾸준히 스프링 공부를 하고 있었는데, 객관적으로 바라보았을 때 내가 정말 깊이 있게 스프링을 알고 있지는 않다는 생각이 들었다. 어떠한 어노테이션이 있다고 했을 때, '내가 봤던 자료나 책에서 000 장점이 있으니 써야한다' 정도의 생각으로만 접근했지, 이걸 사용하지 않았을 때 어떤 문제점이 야기되는지 이러한 것들이 궁극적으로 어떠한걸 위하는지 등에 대한 고려를 전혀하고 있지 않았다. 내년 휴학 인턴 구직을 위해서든, 2년 뒤 취업시장에서의..
해커톤을 준비하며 해커톤 준비에 임한 지 약 일주일이 지났다. 팀원들끼리 많은 회의를 진행하며 거듭해서 아키텍처 개선안에 대해 논의하고 있는 요즘이다. 종강 후 AWS SAA를 준비하고 있었기에 현재 진행 중인 인프라 설계에 조금 더 수월했던 것 같다.   물론 진행하며 답답함을 겪는 일도 많았는데, 가장 답답한 점은 인프라 설계에 명확한 정답은 없다는 점. 끊임없이 수정하고 수정해도 완벽한 정답인지 우리끼리 결론내릴 수 없다는 점이다. 이 점이 어쩌면 현재하는 작업이 매력적으로 느껴지기도 하는 이유일 것이다. 갈피를 잡을 수 있도록 멘토님께서는 특정한 서비스에 대해 말씀해주시기 보단, 스스로 생각할 수 있도록 유도하는 피드백을 많이 해주시는데 아마 끊임없이 사고하는 과정에서 많은 것을 배울 수 있을 것이라 생각하시기 때..
대규모 시스템 설계 기초(12장 발췌독) 위 책에서는 페이스북 메신저와 유사한 채팅 앱을 설계하고자 함 요구 사항은 다음과 같다  - 1:1채팅, 그룹 채팅 앱 둘다 지원 - 모바일 앱, 웹 앱 둘 다 지원 - DAU(Daily Active User) 기준으로 5천만명 처리 가능- 그룹 채팅 최대 100명- 1:1 채팅, 그룹 채팅, 사용자 접속상태 표시, 텍스트 메시지만 주고 받을 수 있다 - 메시지 길이에 제한 : 100,000 자 이하- 채팅 이력은 영원히 보관- 응답지연이 낮은 일대일 채팅 기능- 최대 100명까지 참여할 수 있는 그룹 채팅 기능 - 사용자의 접속상태 표시 기능- 다양한 단말 지원, 하나의 계정으로 여러 단말에 동시 접속 지원- 푸시 알림  채팅 서비스는 아래 기능을 제공해야 한다 - 클라이언트들로부터 메시지 수신- 메시..
1차 회의를 마치며 1차 회의를 마친 뒤, 먼저 감사한 마음이 들었다. ACC(Amazon Cloud Club)에서 주관하는 좋은 대회에 참여할 수 있음에, 그 대회에서 훌륭한 팀원들을 만난 것 같기 때문이다. 백엔드에서 최근 인프라 및 클라우드에 대한 관심이 생겼었지만 이렇다 할 기회가 없어서 고민이 많은 상황이었는데 이런 좋은 기회에 인프라에 대한 깊은 공부를 할 수 있는 계기가 생긴 것 같아 매우 감사하다. 시작한지 얼마되지 않았지만 관련 케이스 스터디 및 리서치를 진행하며 이전보다 많은 지식들을 배우게 되었다. 앞으로 남은 기간동안에도 적극적으로 참여하여 개인적인 성장과 팀 공동의 목표를 위해 열심히 임할 계획이다. -1차 회고 마침-
C<->어셈블리어 어셈블리↔C C언어 컴파일 과정 전처리기 → 컴파일러 → 어셈블리어 → 링커 test.c → test.exe 전처리기 : test.i 본격적 컴파일 전 준비 외부에 선언된 소스코드, 라이브러리 포함 (include) 매크로 변환(define) 컴파일할 영역 명시 컴파일 전처리가 완료되어도 여전히 소스코드 소스코드를 어셈블리어로 변환 어셈블러 어셈블리어를 기계어(0과1로 표현)로 변환 완료하면 목적 파일(0과1로 이루어짐)이 됨 링킹 각기 다른 목적코드를 하나의 실행파일로 묶어주는 것 컴파일언어 고급언어(소스코드) → 컴파일러 → 저급언어(목적코드) https://www.youtube.com/watch?v=B8TDaBp3UWo GCC C 컴파일러는 기계어 코 드를 문자로 표시한 어셈블리 코드의 형태로 출력..