회사에서 api 로그를 보여주는 웹을 개발하게 되었는데요.

log의 데이터가 10만건 이상의 text를 읽어주는 경우였습니다.
이때 bufferReader로 읽어서 string에 넣어주는건 상관없었는데.
hashmap에 string을 한줄씩 입력하다보니 OutOfMemoryError가 발생했습니다.
그래서 해결방안으로 bufferReader 라인을 읽은후에  hashmap에 그 보여줄 렌더링해서 보여줄 페이지의 크기( ex 1페이지당 100 줄)만 hashmap에 입력해서 OutOfMemoryError에러를 회피했습니다.
 

' > Spring' 카테고리의 다른 글

spring 구조  (0) 2023.07.03
스프링 mvc 패턴 이해  (0) 2023.06.22
http서블릿  (0) 2023.06.20
Spring 프로젝트 시작하기방법  (0) 2023.06.20
서버사이드 렌더링, 클라이언트 렌더링  (0) 2023.06.19

영상을 보는데 일단 아는 내용이어서 복습하는 의미로 영상을 시청했습니다.

혹시나 잊어버린게 있나 햇는데 다행히도 없었습니다.

 

요청, 응답 헤더를 볼수 있고요.

최근 회사에서 api프로젝트를 하면서  json으로 데이터로 받고 있어서 api문서를 보면서 개발하고 있습니다..

아래는 서블릿 헤더들입니다. 

참고하기 좋은 사이트:

https://velog.io/@allzeroyou/What-is-HTTP-message-Body

 

What is HTTP message Body?

HTTP(Hyper Text Transfer Protocol)대량의 정보가 있는 곳이라면 효율적인 처리를 위한 규칙이 존재하기 마련.예) 주식시장에서 거래를 하고 싶다면? 계좌, 거래일자, 거래 금액 등 규칙에 맞게 거래를 해

velog.io

 

' > Spring' 카테고리의 다른 글

스프링 mvc 패턴 이해  (0) 2023.06.22
500 error java OutOfMemoryError  (0) 2023.06.21
Spring 프로젝트 시작하기방법  (0) 2023.06.20
서버사이드 렌더링, 클라이언트 렌더링  (0) 2023.06.19
쓰레드  (0) 2023.06.19

기억용 ㅋㅋ
https://start.spring.io/

위의 링크에서
 

받아주시면됩니다.
IDE는 인텔리제이 입니다.
압축 푼후 인텔리제이서 엽니다
 
아래 그림과 같이 프로젝트를 열수잇습니다.

 Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.0.
설정 에러가 나서 보니까 
JAVA 11이 spring-boot3.0을 지원안한다고 하네요 
그래서

id 'org.springframework.boot' version '2.7.0'

으로 낮춰서 해결했습니다.
 
음 실행보니 
Cause: error: invalid source release: 17
에러가 발생했습니다.
 

설정 저장용 완료!
ㅋㅋ 역시 스프링은 설정이 어렵네요~
첫 프로젝트 시작 기억저장용이라고 생각하겟습니다 ㅎ
현재 회사 웹이 spring 3.0인데 기회되면 5.3버전으로  업그레이드 해보면 좋을듯하네요. ㅎ 할수잇겟죠 ㄷ

' > Spring' 카테고리의 다른 글

500 error java OutOfMemoryError  (0) 2023.06.21
http서블릿  (0) 2023.06.20
서버사이드 렌더링, 클라이언트 렌더링  (0) 2023.06.19
쓰레드  (0) 2023.06.19
서블릿  (0) 2023.06.19

아래 내용보면 기존 포트폴리오는 csr+ssr 같이 합쳐진 상태에서 개발하고 있어서 양쪽상황은 이해는 하고 있습니다.
다만 프론트 쪽은 아직 공부를 안해서 기본지식이 거의 바닥입니다.

 
서버사이드 렌더링:

클라이언트 사이드 렌더링:

' > Spring' 카테고리의 다른 글

http서블릿  (0) 2023.06.20
Spring 프로젝트 시작하기방법  (0) 2023.06.20
쓰레드  (0) 2023.06.19
서블릿  (0) 2023.06.19
web server , was(web application server) 차이  (0) 2023.06.19

이건 최근에 제가 포트폴리오 만드는 이슈도 좀 잇어서 기억하고요.
2023.04.27 - [웹/Spring vue 웹 개발] - spring vue 연동 게시판 03-deadlock 현상 발생

spring vue 연동 게시판 03-deadlock 현상 발생

음 지금 다 완성했는데 몇가지 문제가 좀 발생했어요 오류코드는 아래에 있습니다. 게시판글 등록이랑 데이터들은 잘 조회되는데 디테일 조회시 jdbc에서 db가 끊기는 현상이 발생합니다. 그래서

kwaksh2319.tistory.com

음 스레드는 이전에 정리한글이 있어서 
2020.12.13 - [프로그래밍언어/JAVA] - Thread

<JAVA>Thread

Os 수업을 들었다면 알거라고 생각하지만 한번더 정리하는 개념으로 Process 실행중인 프로그램OS로부터 메모리르 할당 받음 Thread실제 프로그램이 수행되는 작업의 최소 단위하나의 프로세스에는

kwaksh2319.tistory.com

웹방식 자체가 단일 스레드로 돌아갈수 없는 구조입니다.
 
쉽게 설명하면 
단일 스레드 환경이고 10명의 사람이 로그인 접속을 한다고 가정하겠습니다,
어떤 특정 한사람이 로그인 로직 중에 문제가 발생해서 스레드의 대기 상태가 걸리면
다른 9명의 사람들은 계속해서 대기상태에 있어야합니다. 그리고 실제로 많은 사람의 숫자들이 접속한다고 가정하면 그 처리를 하나씩 해줘야하니 엄청나게 느리겠죠.
 
아래 그림은 스레드를 200개를 가지고 있는 스레드 풀입니다. 즉 요청자가 발생전에는 대기하고 있다가 누군가 요청을 시도하면 그 숫자에 맞춰서 여러요청을 동시에 실행할수 잇도록 실행해줍니다.
 
 

이미지 출처 
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

' > Spring' 카테고리의 다른 글

Spring 프로젝트 시작하기방법  (0) 2023.06.20
서버사이드 렌더링, 클라이언트 렌더링  (0) 2023.06.19
서블릿  (0) 2023.06.19
web server , was(web application server) 차이  (0) 2023.06.19
웹 로드맵  (0) 2022.09.13

크롬이나 요즘 브라우져에 f12를 누르고 텝에 네트워크를 클릭하면

 이런식으로 http 통신 내용들을 볼수 잇습니다.
 
서블릿의 역할은 저 녹색부분을 제외하고 전부 자동화 해줍니다.
즉 스프링에서는 비지니스 로직에 집중하여 생산성이 높게 진화가 된겁니다.

개발자들의 어려운걸 해결해주기 위해서 탄생한 서블릿
 
이미지 출처 링크:
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

 
기본적인 웹 실행 구조

이미지 출처 링크:
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

예시)

이미지 출처 링크:
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

서블릿 컨테이너는 객체 생성,호출, 초기화,종료해주는 생명주기 관리 
싱글톤으로 관리
싱글톤으로 하는 이유
 
1.고객의 요청이 올떄 마다 계속 객체 생성은 비효율적
2.최초 로딩시점에 서블릿 객체를 미리 만들어두고 재활용
3.모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근 
4.공유 변수 사용주의
5. 서블릿 컨테이너 종료시 함께 종료
 
작년에 공부했던건데 기억에 사라진게 있네요 
복습 중요하네요 ㅠ 
 
 
 

' > Spring' 카테고리의 다른 글

서버사이드 렌더링, 클라이언트 렌더링  (0) 2023.06.19
쓰레드  (0) 2023.06.19
web server , was(web application server) 차이  (0) 2023.06.19
웹 로드맵  (0) 2022.09.13
WebSecurityConfigurerAdapter 사용 불가  (0) 2022.09.01

web server

http 기반으로 동작

정적 리소스 제공, 기타 부가기능

정적 html, css, js,이미지,영상

예) nginx, apache

 

was(web application server)

http 기반 으로 동작

웹서버 기능 포함+ (정적 리소스 제공가능)

프로그램 코드를 실행해서 애플리케이션 로직 수행

동적 html, http api(json)

서블릿, 스프링mvc

예) tomcat,jetty,undertow

 

후기

알고 있는 내용이었지만 다시한번 정리하는 좋은 기회가 되었습니다.

 

' > Spring' 카테고리의 다른 글

쓰레드  (0) 2023.06.19
서블릿  (0) 2023.06.19
웹 로드맵  (0) 2022.09.13
WebSecurityConfigurerAdapter 사용 불가  (0) 2022.09.01
junit5 >> MockitoAnnotations.initMocks 사용법  (0) 2022.08.17

https://roadmap.sh/backend

 

Developer Roadmaps

Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve.

roadmap.sh

https://roadmap.sh/frontend

 

Developer Roadmaps

Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve.

roadmap.sh

백엔드,프론트엔드 

+ Recent posts