▼ Why ? What ? "Database" 강의시간에 배운 트랜잭션(Transaction)과 ACID는 데이터베이스를 다루기 전에 꼭 알고 있어야 하는 개념이기 때문에 따로 더 공부하고 정리해두려고 한다. ▼ DB Transaction 트랜잭션(Transaction) ? 트랜잭션 (Transaction) : 단일한 논리적인 작업 단위 (A single logical unit of work) 논리적인 이유로 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것 ! 쉽게 말하면, 데이터베이스 애플리케이션에서 하나의 작업(logical function)을 수행하기 위해 필요한 DB 연산들을 모아놓은 것을 말한다. ➜ Transaction의 SQL문들 중에 일부만 성공해서 DB에 반영되는 일을 발..
▼ Why ? What ? 이번 주 Database 강의 교수님께서 텀프로젝트에 대한 설명과 MySQL을 다운받고 (from Source or APT or Windows) JDBC 드라이버를 이용해 eclipse와 연결시키는 방법을 다루셨다. 난 Eclipse가 아닌 IntelliJ를 다루는 것이 좀 더 익숙해서 DB를 Intellij와 연동시켜봤는데, DB를 연동하는 과정이 생각보다 복잡하고 JDBC의 개념도 알아둘 필요가 있을 것 같아서 따로 정리해보려고 한다. ▼ JDBC JDBC (Java Database Connectivity) ? Java에서 DB를 다룰 수 있도록 도와주는 Java API이다 ➜ Java 언어와 DB를 연결해주는 통로와 같은 것 ! JDBC가 왜 필요할까 ? DB 학습시 SQ..
▼ Why ? 알고리즘 문제를 풀다가 ' Arrays.sort() ' 와 ' Collection.sort() ' 의 차이에 대해 찾아보게 되었고, 그 과정에서 배열(Arrays)가 "참조의 지역성"이라는 것이 적용된다는 사실에 대해 알게 되어 추가적으로 정리를 했었다. 그래도, 이 참조 지역성과 캐시(cache) 메모리라는 것에 대해선 따로 정리해두는 것이 좋을 것 같아 좀 더 공부하고 정리해보려고 한다. ▼ 캐시 메모리 (Cache Memory) Cache Memory ? 속도가 빠른 장치(CPU)와 느린 장치(RAM) 간의 속도차에 따른 병목 현상을 줄이기 위한 범용성 메모리이다. ➜ CPU(주기억장치)와 RAM(메인 메모리) 사이에 위치한다. ➜ CPU에 버금갈 정도의 속도를 갖고 있다. 캐시 메모..
▼ Why ? What ? HTTP는 서버와 클라이언트가 데이터를 주고 받기 위한 프로토콜(protocol)이기 때문에, 웹이 동작하는 과정을 이해하려면 웹 개발을 하기 위해서 알아야 하는 가장 중요한 개념들 중 하나이다. 그래서 이번 웹 개발 프로젝트를 진행하기 위해선 HTTP에 대해 이해하는 것이 시급하다고 생각하여 HTTP와 HTTPS에 대해 공부하게 되었다. ▼ 웹의 동작 원리 웹이 어떻게 동작하는가 ? 웹 브라우저를 통해 찾고자 하는 웹 페이지의 URL 주소를 입력하고, 원하는 데이터를 받는다 우리가 URL 주소를 입력하면, 사용자가 입력한 URL 주소 중에 Domain Name 부분을 DNS(Domain Name Server)에서 검사한다 [ IP 주소를 기억하기 쉽게 표현한 것 ➜ Domai..
▼ Why ?이번 프로젝트를 진행하면서 프론트와 백엔드 사이에서 API를 주고 받아야 하기 때문에 API에 대한 개념을 제대로 이해해야 할 필요성을 느껴서 이 개념에 대해 간단하게 정리해보았다.▼ API 란? 사회를 예시로 든다면,식당과 손님이 손님을 주고 받기 위한 방법ex) 메뉴판, 키오스크웹툰 서버와 웹툰 독자가 웹툰을 주고 받기 위한 방법➠ 웹툰서비스 API(Get 요청) comic.naver.com/webtoon/detail?titleId=641253➠ 이것이 웹툰 API이며, 이것을 URL에 작성하면 '외모지상주의' 웹툰 페이지가 나온다 예시로 들은 Node.js 의 api 코드app.get('\detail\:id', function(req,res) { ... 참고 영상https://ww..
▼ Why ? 동아리 스터디에서 선배가 백엔드와 클라이언트 사이에 전반적인 흐름에 대해서 설명하는 시간을 가졌는데, 거기서 알게 된 여러 개념들 중 로드 밸런싱 말고도 병목 현상이라는 개념도 따로 정리해두면 좋을 것 같다는 생각이 들었다. ▼ 시스템 성능 문제의 두 가지 원인 응답 (Response) ? 처리 하나당 소요되는 시간 ex) 검색 엔진에서 키워드를 입력하고 '검색' 을 누른 후 검색 결과가 표시되기까지 걸리는 시간 = 응답시간 응답 문제 각 서버 이상으로 인한 응답 시간 지연 ➔ 로그 등을 보면 어느 정도 문제 파악 가능 네트워크 문제 + 물리적인 한계 ( cf . 시스템에 도달하기까지의 경로가 복잡한 경우 ) ➔ 처리량 개선을 통해 시스템 전체 사용률을 개선하는 것이 일반적 처리량 (Thr..