전체 글
-
SQL?옵티마이저?프로시저?SQL최적화 방법?소프트파싱?하드파싱?는 무엇일까? with oracle데이터베이스/최적화 2024. 4. 8. 22:16
본 포스팅은 '친절한 SQL 튜닝' 책을 보고 정리한 내용입니다. Contents SQL란? SQL은 Structured Query Language의 줄임말이다. 말그대로 구조적 질의언어이다. 프로시저란? SQL은 기본적으로 구조적 집합적이고 선언적 질의언어이다. 프로시저는 이러한것들을 결과 집합을 만드는 역할을한다. 옵티마이저란? 프로시저를 만들어내는 DBMS 내부 엔진이며, 옵티마이저가 존재하지 않았을때 사람이 직접 프로시저를 코드로 짜서 데이터를 출력했다. 하지만 옵티마이저가 등장함으로써 사람대신 프로시저 프로그래밍을 직접 해준다. SQL최적화란? DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전과정을 'SQL최적화'라고한다. 1.SQL 파싱 사용자로부터 SQL을 전달받..
-
주기적인 client 데이터 전송 Server Sent Event(SSE) 구축하기 with spring boot자바웹프로그래밍/HTTP 2024. 4. 3. 17:26
Contents Server Sent Event(SSE) 가 무엇인가? Server-sent events (SSE) 는 Real time으로 데이터를 클라이언트에 전송할수 있도록 하는 기술이다. SSE는 http 통신이며, long-lived 커넥션 기반으로 서버에서 클라이언트로 데이터를 전송한다. Sse 커넥션 관리 객체 생성 SseEmitters.java @Component @Slf4j public class SseEmitters { private final List emitters = new CopyOnWriteArrayList(); public SseEmitter add(SseEmitter emitter) { this.emitters.add(emitter); log.info("new emitter..
-
[JAVA] BufferedReader / BufferedWriter 왜 사용할까? (분석)자바웹프로그래밍/JAVA 2024. 2. 28. 14:59
Contents 1. BufferedReader / BufferedWriter 란? 여러가지 입출력 관련 개발을 할때 아래와 같은 코드를 많이 사용한다. BufferedWriter br = new BufferedWriter(new FileWriter(jsonFIle)); 익숙한 개발자는 그냥 그러려니 넘어가지만 개발에 익숙하지 않은사람들은 너무 복잡해보인다. 왜 클래스안에 또클래스를 넣고 그러지?? 이런생각으로 왜 이렇게 하는지 궁금해할수도있고 그냥 다들 이렇게 쓰니깐 나도 써야지 하고 넘어간다. 나 또한 그랬다. 선배개발자들이 써놓은 코드를 그대로 복사+붙여넣기 하면서 개발을 했기에 이유도 모른채 작성했다. 그래서 이참에 왜 이것을 써야하는지 그리고 실제로 예제를 통해 실험을해보면서 검증작업도 해볼려고..
-
Reader,Writer(문자 기반 스트림) with java자바웹프로그래밍/JAVA 2024. 2. 27. 17:45
Contents 문자 기반 스트림 이전 글에서 바이트 기반 스트림을 알아보았다. 이번에는 문자기반 스트림에대해 알아볼것이다. 2024.02.27 - [자바웹프로그래밍/JAVA] - InputStream,OutputStream 입출력 방식 분석 with java Reader와 Writer 란? Reader 는 문자 기반 입력 스트림 최상위 추상 클래스이고, Writer 는 문자 기반 출력 스트림 최상위 추상 클래스이다. 이들의 하위 클래스는 XXXReader , XXXWriter 이라는 오버라이드된 Reader 소개 read() 메소드 public int read() throws IOException { char[] cb = new char[1]; if (read(cb, 0, 1) == -1) return..
-
InputStream,OutputStream 입출력 방식 분석 with java자바웹프로그래밍/JAVA 2024. 2. 27. 16:28
Contents Stream 이란? 데이터가 출발지에서 도착지로 단일 방향으로 흘러가는 것을 말한다. InputStream, OutputStream 설명 데이터가 프로세스로 흘러 들어올때는 InputStream을 사용하고 , 데이터가 프로세스로부터 나가면 OutputStream을 사용한다. Inpustream,OutputStream은 Stream 최상위 추상클래스이며, 바이트 출력 스트림이다. 그 아래로 보면 FIle,Filer 등등 xxxInputStream 오버라이드한다. Inpustream은 프로세스 기준으로 들어오는 경우에 사용한다. 이제 중요한 메소드를 알아보자 1.read() 메소드란? 1바이트를 읽고 int(4바이트)형으로 반환한다. 테스트를 해보자 이제 실행시켜보면 그외에 read(byte..
-
[Spring 핵심 알기 - 3] HandlerAdapter란? HandlerAdapter분석(with. DispatherServlet)Spring/Spring Core 2024. 2. 23. 16:34
Contents --> 시작에 앞서... 왜 핸들러클래스 이름뒤에 adapter가 붙을까? 잘생각해보면 우리가 컨트롤러를 작성할때, 메소드이름 그위에 requestMapping등으로 url를 맵핑해준다. 그렇다면 디스패처는 핸들러맵핑에 의해 찾은 컨트롤러의 메소드를 실행시켜야 하지않는가? 하지만 디스패치서블릿은 해당 컨트롤러에 메소드이름을 모른다.. 그래서 중간에 adapter를 이용해서 메소드를 실행시킨후 modelandview를 데이터를 돌려받는것이다. adapter패턴을 공부하면 이말이 무슨말인지 이해할것이다. DispatcherServlet에서 HandlerAdapter의 역할HandlerAdapter는 Spring MVC의 핵심 구성 요소 중 하나로, DispatcherServlet과 핸들러(..
-
[Spring 핵심 알기 - 1] DispatcherServlet 란? frontController 패턴 (with. 전자정부프레임워크 )Spring/Spring Core 2024. 2. 22. 14:57
Contents --> DispatcherServlet 등장 전의 웹 개발DispatcherServlet이 등장하기 전에는 Java 기반의 웹 애플리케이션 개발에서 주로 서블릿(Servlet)과 JSP(JavaServer Pages)를 사용했습니다. 서블릿과 JSP를 이용한 웹 개발에서는 각 요청마다 서블릿을 작성하고, 비즈니스 로직과 프레젠테이션 로직이 혼재되어 관리가 어려웠습니다. Tomcat Server란 무엇인가?tomcat server는 대표적인 web application server이다. spring boot에서도 기본 서버로 채택하여 셋팅하는 서버이며, 대부분에 si사업이든 플랫폼 사업이든 tomcat server를 많이 사용한다. tomcat server는 사용자가 아래와 같이 u..
-
MongoDb란 ? 무엇인가데이터베이스/mongodb 2024. 1. 31. 13:49
Mongo Database 대부분 대학교, 또는 학원에서 웹개발을 배우면 처음 시작하는것은 관계형 데이터베이스이다. 관계형 데이터베이스랑 DB정보들을 관계를 맺어줌으로써 각 테이블에 관심사를 분리함으로써 관리가 용이하게 저장하는 개념이다. 그와 반대로 비관계형 데이터베이스가 존재하는데 그것중 하나가 Mongo DB 이다. 그렇다면 왜 잘 사용하던 관계형 데이터베이스를 놓아두고 MongoDb를 사용할까? 질문에 대한 내용은 차차 알아가보자. Mongo DB 저장방식 몽고DB는 관계형데이터베이스가 저장하는 row 방식이아닌 자체적으로 Document라고 불리는 형태로 저장을 하는데 아래와 같다. { _id: 10, username: 'dongwan', email: 'zkdlwu94@gmail.com' } 웹..