▼ Why ? 복학하고부터 어떤 개발 분야든 개념 공부도 중요하지만 개념 공부만 하는 것은 아무 의미없고, 공부한 것을 토대로 무언가를 만들어보는 프로젝트까지 해봐야 그것을 해봤다고 말할 수 있는 것이고 그래야 의미가 있다는 것을 가장 뼈저리게 느꼈다. 그래서 지금은 웹 개발이라는 분야에 관심이 있고, Java 스터디도 진행하고 있다. 예전이었다면, Spring에 대한 지식도 부족하고 HTTP나 데이터베이스와 같은 웹 개발 관련 지식도 부족하니까 아직 프로젝트는 무리라고 생각해서 프로젝트를 진행해보려고 하지 않았을 것 같다. 하지만, 프로젝트 및 협업 경험을 쌓는 것이 대학을 온 이유 중에 하나이기도 하고, 일단 그냥 프로젝트를 진행하면서 필요한 것을 찾아서 공부하자는 생각으로 동아리에서 진행하는 Too..
▼ Why ? 동아리 스터디에서 선배가 백엔드와 클라이언트 사이에 전반적인 흐름에 대해서 설명하는 시간을 가졌는데, 거기서 알게 된 여러 개념들 중 로드 밸런싱 말고도 병목 현상이라는 개념도 따로 정리해두면 좋을 것 같다는 생각이 들었다. ▼ 시스템 성능 문제의 두 가지 원인 응답 (Response) ? 처리 하나당 소요되는 시간 ex) 검색 엔진에서 키워드를 입력하고 '검색' 을 누른 후 검색 결과가 표시되기까지 걸리는 시간 = 응답시간 응답 문제 각 서버 이상으로 인한 응답 시간 지연 ➔ 로그 등을 보면 어느 정도 문제 파악 가능 네트워크 문제 + 물리적인 한계 ( cf . 시스템에 도달하기까지의 경로가 복잡한 경우 ) ➔ 처리량 개선을 통해 시스템 전체 사용률을 개선하는 것이 일반적 처리량 (Thr..
▼ Why ? 동아리 스터디에서 선배가 백엔드와 클라이언트 사이에 전반적인 흐름에 대해서 설명하는 시간을 가졌는데, 거기서 알게 된 여러 개념들 중 로드 밸런싱이라는 것에 대해선 따로 공부해보는 것이 좋을 것 같다는 생각이 들어 정리해보게 되었다. ▼ 로드 밸런싱이 필요한 이유 ? 서비스 사업의 규모가 확장되면 확장될수록 클라이언트의 수 ⇈ ➜ 기존에 관리하던 하나의 서버로는 정상적인 서비스가 불가능 이러한 문제를 해결하기 위한 방법 Scale-up : 서버 자체의 성능을 향상시키는 방법 Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 방법 ➜ 이때 Scale-out에 해당하는 기술 바로 "Load Balancing" ▼ Load Balancing 서버가 처..
🌑 객체지향언어 ✔️ 코드의 높은 재사용성 ✔️ 코드의 관리가 용이 ✔️ 제어자와 메서드를 이용한 데이터 보호 ✔️ 코드의 중복을 제거하여 불일치로 인한 오동작 방지 🌒 클래스(Class) · 객체(Object) ✔️ 클래스와 객체의 정의 · 용도 🔹 클래스 : 객체를 정의해 놓은 것 ~ 객체를 생성하는데 사용 🔹 객체 : 실제로 존재하는 것, 사물 또는 개념 ~ 객체가 가지고 있는 기능과 속성에 용도가 달라진다. ✔️ 객체(Object) · 인스턴스(Instance) 🔹 클래스의 인스턴스화 (Instantiate) ~ 클래스로부터 객체를 만드는 과정 🔹 클래스로부터 만들어진 객체 ⮕ 그 클래스의 인스턴스(Instance) 🔸 인스턴스 ⊆ 객체 ✔️ 객체의 구성요소 - 속성(Property) & 기능(F..
🌑 배열 (Array) 배열이 왜 필요할까? 같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결하기 위해 ! int student1 = 90; int student2 = 80; int student3 = 70; int student4 = 60; int student5 = 50; System.out.println("학생1 점수: " + student1); System.out.println("학생2 점수: " + student2); System.out.println("학생3 점수: " + student3); System.out.println("학생4 점수: " + student4); System.out.println("학생5 점수: " + student5); 배열이란, 같은 타입의 여러 변수..