🌱 오늘의 주제 : 트랜잭션이란? 🌱 트랜잭션 트랜잭션은 작업의 완전성 을 보장해주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능이다. 사용자의 입장에서는 작업의 논리적 단위로 이해를 할 수 있고 시스템의 입장에서는 데이터들을 접근 또는 변경하는 프로그램의 단위가 된다. 트랜잭션과 Lock 잠금(Lock)과 트랜잭션은 서로 비슷한 개념 같지만 사실 잠금은 동시성을 제어하기 위한 기능이고 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 잠금은 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할을 한다. 여기서 자원은..
🌱 오늘의 주제 : 데이터베이스란? 🌱 데이터베이스란? 데이터베이스 (DB, DataBase)는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터 모음이다. 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 한다. 특정 DBMS마다 정의된 쿼리 언어(query language)를 통해 삽입, 삭제, 수정, 조회 등을 수행 할 수 있다. 🌱 데이터베이스의 특징 데이터의 독립성 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. ..
🌴 문제 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 예제 입력 1 복사 72 예제 출력 1 복사 2 2 2 3 3 예제 입력 2 복사 3 예제 출력 2 복사 3 예제 입력 3 복사 6 예제 출력 3 복사 2 3 예제 입력 4 복사 2 예제 출력 4 복사 2 예제 입력 5 복사 9991 예제 출력 5 복사 97 103 🌴 문제 분석 package Backjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.In..
🌴 문제 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 예제 입력 1 복사 60 100 예..
🌱 오늘의 주제 : 스프링 MVC를 이용한 게시판 구축 (2) 🌱 서비스 구현 일반적으로 DAO(Mapper)는 데이터베이스 테이블 당 하나를 만든다. 하지만, 사용자에게 제공되는 서비스는 여러 테이블의 정보를 조합해서 제공하는 경우가 많다. 따라서, 하나의 서비스에서 다수의 DAO를 사용하기도 하고 때로는 다수의 서비스가 하나의 DAO를 사용하기도 한다. Service는 DAO와 연동뿐만 아니라 서버 기술 (웹, 클라이언트/ 서버)이나 각 벤더별 데이터 베이스에 종속되지 않는 로직을 구현하는 곳이기도 한다. 🌱 목록 구현 스프링 MVC에서 C, 즉 컨트롤러(controller)의 역할을 수행한 클래스를 추가 후, @Controller 어노테이션을 지정하고 @RequestMapping 어노테이션을 지정한..
🌴 문제 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 복사 4 1 3 5 7 예제 출력 1 복사 3 🌴 문제 분석 package Backjoon; import java.util.Scanner; public class day23 { public static void main(String[] args) { // 소수 찾기 // 소수는 1보다 큰 정수이고, 1과 자기 자신으로만 나누었을 때 나머지가 0인 경우 // 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램 ..
🌱 오늘의 주제 : HTTP 🌱 HTTP 기본적으로 HTTP는 애플리케이션 계층으로서 웹 서비스 통신에 사용된다. HTTP/1.0 -> HTTP/1.1 -> HTTP/2 -> HTTP/3 🌱 HTTP/1.0 HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되어있다. 이는 RTT 증가를 불러오게 되었다. RTT란, 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간이다. RTT의 증가를 해결하기 위한 방법 : 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용. 🌱 HTTP/1.1 매번 TCP 연결을 하는 것이 아니라, 한번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여리 개의 파일을 송수신 할 수 있게 바뀌었다. HTT..
🌱 오늘의 주제 : 네트워크 기기 🌱 네트워크 기기 네트워크는 여러 개의 네트워크 기기를 기반으로 구축된다. 🌱 네트워크 기기의 처리 범위 물리 계층을 처리할 수 있는 기기와 데이트 링크 계층을 처리할 수 있는 기기가 있다. 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가하다. 애플리케이션 계층 : L7 스위치 인터넷 계층 : 라우터, L3 스위치 데이터 링크 계층 : L2 스위치, 브리지 물리 계층 : NIC, 리피터, AP 🌱 애플리케이션 계층을 처리하는 기기 - L7 스위치 스위치는 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비이다. L7 스위치는 로드밸런서라고도 하며, 서버의 부하를 분산하는 ..
🌱 오늘의 주제 : TCP/IP 4계층 모델 🌱 TCP/IP 4계층 모델 인터넷 프로토콜 스위트 (internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고 받는 데 쓰이는 포로토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 한다. 🌱 애플리케이션 계층 애플리케이션 계층은 FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이다. 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층이다. 🌱 전송 계층 전송(transport) 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하며 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공할 수 있으며 애플리케이션과 인터넷 계층사이의..
🌱 오늘의 주제 : 네트워크 분류 🌱 네트워크 분류 LAN은 근거리 통신망을 의미하며 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영된다. 전송 속도가 빠르고 혼잡하지 않다. MAN은 대도시 지역 네트워크를 나타내며 도시 같은 넓은 지역에서 운영된다. 전송 속도는 평균이며 LAN보다는 더 많이 혼잡하다. WAN은 광역 네트워크를 의미하며 국가 또는 대륙 같은 더 넓은 지역에서 운영된다. 전송 속도는 낮으며 MAN보다 더 혼잡하다. 🌱 네트워크 성능 분석 명령어 네트워크 병목 현상의 주된 원인 4가지 1. 네트워크 대역폭 2. 네트워크 토폴로지 3. 서버 CPU, 메모리 사용량 4. 비효율적인 네트워크 구성 ping ping(Packet INternet Groper)은 네트워크 상태를 확인하려는 대상 노드를..