반응형

분류 전체보기 277

GC 가비지 컬렉션 이란?

GC란? JVM의 Heap 영역에서 사용하지 않는 객체를 삭제하는 프로세스를 말하고 GC(Garbage Collection)는 어떤 객체에 유효한 참조가 존재한다면 Reachable 그렇지 않으면 Unreachable 이라고한다. 자바는 실행될때 자바 자체 운영체제에서 돌아가는데 그게 바로 자바 가상머신JVM이고 이때 사용되는 객체를 자동으로 관리해 주는 기능이 가비지 컬렉션이다. 객체는 JVM Heap 영역에 저장되며 크게 세 영역으로 나눠져 있다. Heap 영역이란? Heap 영역에는 주로 긴 생명주기를 가지는 데이터들이 저장된다. (대부분의 오브젝트는 크기가 크고, 서로 다른 코드블럭에서 공유되는 경우가 많다) 애플리케이션의 모든 메모리 중 stack 에 있는 데이터를 제외한 부분이라고 보면 된다...

Language/Java 2021.07.05

웹 소켓이란?

웹 소켓(Websocket)이란 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이며 현재 인터넷 환경(HTML5)에서 많이 사용된다. Websocket API를 통해 서버로 메세지를 보내고, 요청 없이 응답을 받아오는 것이 가능하다. 현재 API는 W3C에서 관장하고 있으며 프로토콜은 IETF에서 관리하고 있다. 별도의 포트를 사용하지 않고 HTTP와 같은 80번 포트를 사용하고 있는데, 이 때문에 client인 웹 브라우저뿐만 아니라 Web Server도 기능을 지원하고 있어야만 한다. 웹소켓을 사용하는 이유 웹 어플리케이션에서 기존의 서버와 클라이언트 간의 통신은 대부분 HTTP를 통해 이루어 졌으며 HTTP Request/response기반의 Stateless protocol이다. 즉,..

Web 2021.07.04

웹 브라우저의 요청 흐름

구글의 IP주소는 예)200.200.200.2 이다 이걸 도메인 이름 으로 바꿔서 google.com 이라 검색하면 도메인 이름을 조회해서 IP 200.200.200.2 을 가져와 보여주는것이다. 433는 PORT 번호이다. HPPT : 80 HPPTS : 443 이다 PORT 번호는 생략이 가능하다. 우리가 구글 이나 네이버 등 DNS 이름을 적고 PORT 를 안적는 이유는 Hppt, Hppts 가 지정 되어있기 때문이다. 1. 웹 브라우저가 HTTP 메세지 생성 2.SOCKET 라이브러리를 통해 전달 - A: TCP/IP 연결(IP, PORT) - B: 데이터 전달 3.TCP/IP 패킷 생성, HTTP 메세지 포함

Web 2021.07.04

프로세스와 스레드 차이점

프로세스(Process)란? 운영체제에게 할당받은 작업 단위이다. 쉽게 말해, 메모리 위에서 현재 실행되고 있는 프로그램을 말한다. 프로그램은 정적인 코드 뭉치이다. 사용자가 실행하지 않으면 영원히 가만히 있는다. 사용자가 프로그램을 사용하겠다고 운영체제에게 알리면, 운영체제는 메모리에 프로그램을 구동할 수 있을 만한 메모리를 할당하고, 메모리는 디스크에서 프로그램을 읽어온다. 실행 준비를 마친 프로그램은 메모리 위에서 실행된다. 이것이 하나의 작업 단위이다. Code/Data/Stack/Heap의 형식으로 할당해 준다. 각각 독립된 메모리 영역을 할당해 주기 때문에 프로세스는 다른 프로레스의 변수나 자료에 접근 할 수 없다. 다른 프로세스의 정보에는 접근할 수 없을까? 접근이 가능하다. 프로세스 간 정..

Language/Java 2021.06.30

Statement와 PreparedStatement 차이

Statement Statement를 사용하면 매번 쿼리를 수행할 때마다 3단계를 거치게 되고(계속적으로 단계를 거치면서 수행) import java.io.BufferedReader; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class JdbcStatement { public static void main(String[] args) throws Exception { String url = "jdbc:mysql://localhost:3306/jdbc?characterEncoding=UTF-8&serverTimezone=UT..

Language/Java 2021.06.30

OAuth란?

OAuth란? 고객이 어떤 A사이트의 서비스를 이용하려고 한다. A사이트가 아닌 제3자 Their(그들) Google,kakao,naver 등 A 사이트에서 연동하려고하는 Their의 서비스가 있다 고객이 A 사이트에 접속해서 글을 작성했다. 고객은 자신이 쓴 글을 페이스북이나 인스타에도 올리고 싶어한다. A사이트는 고객이 가지고있는 페이스북이나 인스타에 등록한 아이디/비밀번호를 이용하여 페이스북 이나 인스타에도 글이 올라갈수있도록 서비스를 만들었다. 이런 서비스를 이용하려면 A사이트에서 고객로 부터 고객이 사용하고있는 그들의 서비스에 접근할수 있도록 허가을 받아야한다. 가장 쉬운 방법으로는 사용자의 아이디/패스워드 받아 그들과 일치하는지 비교하는것이다 일치하면 그들의 서비스를 사용할수있게 된다. 하지만..

Web 2021.06.18

Spring boot S3 업로드, 수정, 삭제

프로젝트 설정 Window 10 Java 11 Spring boot 2.4.5 Gradle MySql Intellj IDEA 2021.1 의존성 추가 (Gradle) implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws', version: '2.2.6.RELEASE', ext: 'pom' implementation group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.11.1021' spring-cloud-aws 와 aws-java-sdk-s3에 대한 의존성 추가합니다. 프로젝트 구조 AWS 설정 aws 설정은 applcation.yml 파일에 작성합니다. cloud: ..

Spring 2021.06.18
반응형