본문 바로가기

전체 글

(37)
[Spring Boot] connection timeout 시간 늘리기 ■ 목표 - apache + 스프링부트(tomcat) + jsp/jquery 기반으로 개발 도중 대용량 데이터를 처리하는 과정에서 커넥션 타임아웃 발생. - 커넥션 타임아웃을 늘리기 위해 여러가지 테스트를 진행하였다. - 실제로 이 방법이 쓰이는 일은 없었다... 타임아웃이 발생한다는 것은 로직이 너무 오래 걸리기 때문으로.. 설계 및 로직을 수정하는 것으로 결론이 났다. 무작정 타임아웃을 늘리는 것이 능사는 아니다. 타임아웃을 늘리게 되면 서버에서 수행중인지, 오류로 커넥션이 묶인 것인지 판단이 힘들어진다. 되도록 타임아웃을 늘리지 않고 오래 걸리는 로직을 수정하는 것이 좋을 듯 하다. 1. ajax 요청 시 타임아웃을 늘려보기 js단에서 서버로 ajax 요청을 보낼 시, 타임아웃 시간을 늘려서 테스트..
[책 리뷰] 클린 코드(Clean Code) - 3. 함수 클린 코드 3장 (함수)를 읽고, 내가 적용할 수 있는 내용과 기억하고 싶은 내용을 포스팅한다. 1. 함수는 최대한 작게! - 함수는 최대한 작게 만들어라 (라인 수, 하는 일 통틀어서) - 하나의 함수는 딱 한 가지 일만 해라 머리로는 알고 있지만, 실제 개발하면서 적용하기 쉽지 않은 내용이다. 중복이 있거나, 함수 이름이 두 가지 행동으로 표시된다면 두 개의 함수로 나누는게 옳다. 2. 함수 내부의 추상화 레벨은 같게 - 함수 내부의 추상화 레벨은 동일하게 한다. 처음 읽고서 이게 무슨 소리인가 했는데 내가 이해한 내용은 아래와 같다. 아래의 함수들은 추상화 수준이 높다. getHtml() getFile() 아래의 함수는 추상화 수준이 중간이다. String pagePathName = PathPars..
[일상] 위염 극복기 이십대 중반까지 평소에 골골대긴 했어도 만성 질환이라고 할 만한 것은 없었다. 그런데 불과 일을 시작하고 2년만에 만성 위염과 역류성 식도염을 얻게 되었다! 1년 사이에 장염 위염 십이지장염 역류성식도염 한번씩 다 걸려봤다. 평소 커피도 많이 마시는 편은 아니고.. 밥먹고 바로 드러눕는 편도 아닌데 어쩌다 이렇게 된건진 모르겠다 위 내시경도 해보고, 병원을 다닐 땐 그 뿐이다. 여러가지 해 봤지만 그 중 효과를 본 방법을 공유한다. 1. 오트밀, 바나나 먹기 아침을 굶지 않고 오트밀, 바나나를 먹었다. 원래 양배추 즙을 매일 마셨었는데 그거보다 훨씬 효과가 좋았다. 오트밀은 두유나 아몬드브리즈에 말아서 먹었는데 아침에 빈속에 속 쓰릴 때 먹으면 속이 편해져서 좋았다. 오트밀은 실제로 위 벽에 보호막을 둘..
[Spring] Controller 에서 HTML텍스트를 HTML페이지로 리턴하기. ■ 목표 - Spring 컨트롤러에서 HTML텍스트를 브라우저에서 바로 렌더링되도록 리턴한다. (보통 jsp나 html파일 경로를 리턴하는데 HTML문서의 본문 텍스트를 리턴하는 방법이다.) 이런 방법을 쓸일이 없을것만 같은데 일하다보니 생긴다... 샘플로 사용할 HTML은 아래와 같다. example 2-1 html example hello world hello world hello world hello world hello world hello world ■ 소스코드 방법은 간단하다. Controller에서 response를 인자로 받아, 해당 response에 직접 HTML 본문을 출력하면 된다. 단 보안적인 측면은 무시하고 테스트로 개발하였다. 보안이 필요한 페이지라면 헤더 등을 사용해 인증 관련..
[책 리뷰] 클린 코드(Clean Code) - 2. 의미 있는 이름 [책 리뷰] 클린 코드(Clean Code) - 서론 :: 염소의 개발일기 (tistory.com) [책 리뷰] 클린 코드(Clean Code) - 서론 프로그래밍에 정답은 없다고 생각한다. 하지만 개발을 하다 보면 항상 고민의 순간이 온다. 어떻게 해도 동작은 하지만, 이렇게 짜는 것이 맞나? 싶은 순간이 하루에도 수십번씩 찾아온다. 문득 devgoat.tistory.com 클린 코드 - 2장 의미 있는 이름 의 많은 내용 중, 기억하고 싶은 내용, 현재 내 상황에서 적용할 수 있는 내용을 포스팅한다. 1. 검색하기 쉬운 이름을 사용하라. - 함수나 변수 이름을 축약하지 않고 검색하기 쉽도록 작성한다. 아래처럼 클래스명을 만들면 Impt 가 Important 의 축약어라는 것을 모르면 검색하기 쉽지 않..
[책 리뷰] 클린 코드(Clean Code) - 1. 깨끗한 코드 프로그래밍에 정답은 없다고 생각한다. 하지만 개발을 하다 보면 항상 고민의 순간이 온다. 어떻게 해도 동작은 하지만, 이렇게 짜는 것이 맞나? 싶은 순간이 하루에도 수십번씩 찾아온다. 문득 이런 식으론 답이 없다는 생각이 들었다. 동작하는 것이 중요하지만 그것만으론 부족하고 나도 멋지고 읽기 좋은 코드를 작성하고 싶다. 그래서 아래의 책을 구입했다. Clean Code(클린 코드)(원서/번역서: [해외]Clean Code (Paperback)) | 로버트 C. 마틴 | 인사이트 - 교보문고 (kyobobook.co.kr) Clean Code(클린 코드) - 교보문고 애자일 소프트웨어 장인 정신 | 나쁜 코드도 돌아는 간다. 하지만 코드가 깨끗하지 못하면 개발 조직은 기어간다. 매년 지저분한 코드로 수많은..
[Spring] request 가 동시에 많이 들어오는 상황에 대한 고찰(파일 업로드) ■ 상황 프로젝트 진행 도중 아래와 같은 개발을 할 일이 생기게 되었다. Apache & Tomcat, Spring기반 개발 환경이다. 포탈과 웹 오피스 엔진간의 연동이다. - 다운로드와 업로드는 HTTP통신을 통해 이루어지며, 업로드 시 multipart로 파일을 전송한다. - 포탈에선 업로드시 파일을 다운로드 받아, 원래 경로에 있는 파일에 덮어쓴다. - 유저 수는 최대 10000명이고, 오피스에서 한 파일을 동시에 수정 가능한 인원은 최대 200명이다. ■ 고민 다운로드, 업로드 API를 개발하는 도중 고민이 생기게 되었다. 웹오피스에서 동시다발적으로 여러 사용자가 파일을 수정하게 되면, 업로드 API가 동시다발적으로 요청되지 않을까? 라는 고민에서 시작했다. 1. 파일 업로드로 처리되는 속도보다 ..
[Intellij & Lombok] error: cannot find symbol 해결방법 ■ 현상 - Intellij에서 스프링부트 작업 중 아래와 같은 에러 발생. - 함수가 없다는 에러인것 같은데 실제로 User 클래스에 가보면 @Getter가 설정되어 있다. ■ 해결방법 - File > Settings메뉴에서 아래의 설정을 찾아 체크한 후 OK버튼을 클릭한다. build.gradle파일에 dependencies에 아래의 구문을 추가한다. annotationProcessor 'org.projectlombok:lombok' 그 후 gradle 리로드. 프로젝트가 정상적으로 다시 빌드되는 것을 확인할 수 있다.