전체 글(71)
-
서버와 클라이언트 소켓통신
우리가 흔히 말하는 서버와 클라이언트. 그 둘의 모델에 대해 알아보고, 소켓통신에 대해서도 알아보자. 클라이언트와 서버는 간단하게 말하면 서비스를 요청하는 쪽과 서비스를 제공하는 쪽을 의미한다. 통신은 항상 클라이언트의 요청과 서버의 응답으로 구성된다. 클라이언트 서비스의 요청자를 의미한다. 서버와 통신하는 모든 프로그램이 될 수 있으며, 서버에 요청을 보내 응답을 받는다. 서비스를 사용하는 사용자, 기계 혹은 프로그램이 클라이언트가 될 수 있다. 서버 서비스를 제공하는 컴퓨터. 큰 용량과 성능을 가지고 있으며 클라이언트와 API 통신을 한다. 요즘 대용량 서비스는 microservice 를 활용해 서버를 띄우는 경우가 많다. (ex 도커, 쿠버네티스) 이와같은 배포는 서비스의 수정, 확장성을 용이하게 ..
2022.12.04 -
Cut Vertex
이번 포스팅에서는 Cut Vertex란 무엇인지 그에 대한 정의와, 판별하는 방법에 대해 알아보겠습니다. 그에 더불어 dfs graph, back edge 에 대한 개념도 살펴봅시다. Definition of Cut Vertex If node s is Cut Vertex, Removing a node s makes Graph G Disconnected. Exists x and y s.t., all paths from x to y goes through s. Cut vertex 정의 1. 연결 그래프 G에서 노드 S를 없앴더니 비연결 그래프가 되었을때, S를 Cut vertex(단절점)라 부른다. 없앴을 때 Disconnected Graph 를 만드는 S를 Cut Vertex 라고 부른다. 2. 노드 X에..
2022.11.25 -
Graph Traversal(그래프 순회)
이번 포스팅에서는 Graph traversal(그래프 순회)와, Connected Component 대해 알아보자. Graph Traversal 그래프 순회 정의 모든 Node, Edge를 한번씩 지정된 순서로 방문하는 것이다. 순회를 거친 후에, 그래프에서 뽑아낸 자료구조가 만들어진다. (ex. 트리구조) 트리에서 문제를 푸는 것이 그래프에서 푸는 것보다 쉽다. 그래프 순회의 종류 - Depth First Search (깊이 우선 탐색) - Breadth First Search (너비 우선 탐색) Any-order Traversal Start at a Node S (put S into BOX) While BOX is not Empty Take one Node from BOX If Node not Mar..
2022.11.14 -
JPA 정의
이번 포스팅에서는 JPA의 정의에 대해 알아보자. JPA의 필요성에 대한 내용은 다음 포스팅을 참고하길 바랍니다. https://matt1235.tistory.com/62 JDBC(Java Database Connectivity) 이번 포스팅에서는 jdbc에 대한 개념과 문제점을 살펴볼 것이다. 관계형 데이터베이스(Relational Database)는 신뢰할 만한 데이터 저장소로, 많은 어플리케이션이 관계형 db 를 사용한다. DB에 데이터 matt1235.tistory.com JPA(Java Persistence API) 란? 자바 진영의 ORM 기술 표준으로, 어플리케이션과 JDBC 사이에서 동작한다. 자바 ORM 기술에 대한 API 표준 명세이다. JPA 는 인터페이스의 집합이기 때문에, 사용하려..
2022.11.06 -
JDBC(Java Database Connectivity)
이번 포스팅에서는 jdbc에 대한 개념과 문제점을 살펴볼 것이다. 관계형 데이터베이스(Relational Database)는 신뢰할 만한 데이터 저장소로, 많은 어플리케이션이 관계형 db 를 사용한다. DB에 데이터를 저장, 관리하려면 SQL을 사용해야 한다. 자바로 작성한 애플리케이션은 JDBC API를 사용해 SQL을 데이터베이스에 전달한다. JDBC 란? Java Database Connectivity 의 줄임말 자바 프로그램에서 데이터베이스에 접속할 수 있는 자바 API 이다. DB의 종류와 상관없이 DB에 관련된 작업들을 처리할 수 있도록 도와준다. JDBC는 데이터베이스에 query를 전달하고, 결과를 받아온다. 자바에서 DB 접근에 기반이 되는 기술로서, 이를 확장한 Spring-jdbc, ..
2022.11.02 -
빈 생명주기 콜백
스프링 컨테이너의 역할 자동으로 스프링 Bean 객체에 의존성을 주입. 객체의 생성부터 소멸까지 생명주기(lifecycle)를 관리. 이렇게 객체 관리의 주체가 스프링이 되면, 개발자는 핵심 로직에만 집중할 수 있게 된다. 빈 생명주기 콜백의 필요성 스프링 빈은 초기화 작업, 종료 작업을 나눠 진행한다. 어플리케이션이 시작 될 때 수행하려는 작업과, 어플리케이션이 종료되는 시점에서 수행하려는 작업이 다르기 때문이다. 둘을 구분하는 것이 성능 면에서도 좋다. 스프링 빈 라이프사이클 객체 생성 → 의존관계 주입 스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 객체의 생성과 초기화 분리 생성자 안에서 초기화 작업을 함께하는 것보다, 객체를 생성..
2022.10.26