IT-Hermes 프로젝트 개발 과정 중, 이슈는 다음과 같았습니다. 전 Spring Security를 썼는데, 이유는 인증과 인가를 편하게 하기위한 최적에 프레임워크라 판단해서 썼습니다. 근데 하나의 문제가 있었습니다.Hermes 프로젝트에서 예외처리의 경우이런 식으
개요 > IT-Hermes 프로젝트를 진행하는 과정에서 프론트 페이지에 검색기능을 도입하는 것을 세우고 작업을 진행했습니다. UI에서는 이런 느낌으로 주고 검색을 통해 데이터를 가져오는 API를 만드는 것이 목표였습니다. 진행과정 > 검색을 구현하는 것은 생각보다 어
IT-hermes 프로젝트 개발과정에서, Batch서버에서 이슈가 발생했습니다.이슈를 본 결과 크롤링 서버의 API를 요청 중에 오류가 발생한 것이었습니다.이런 오류가 발생하면, 보통 우리는 어떻게 해결하는 편일까요..?일단 저의 경우, Batch서버에서 보내는 과정에
IT-Hermes 프로젝트 개발과정에서 크롤링을 하는 것을 Node로 진행을 했었습니다. 하지만, 이슈가 발생한 것이 있었는데, 상황은 다음과 같습니다.유투브 데이터를 크롤링 해오려고 했습니다. 하지만.. 처음 접근할 때 유튜브 데이터는 크롤링을 하기 어려울정도로 데이
트랜잭션에 대해 저번엔 DB관점에서 설명을 했습니다.이번엔 스프링에 있는 트랜잭션을 이야기 해보고, 디비와 공통점과 차이점을이야기 해보겠습니다.믿을 수 없지만..엄청 오래 된, 레거시 코드(지금도 그럴 수 있어요..)들을 보면 이런걸 많이 볼 수 있습니다. 어디에 이런
최근에 서비스기업 회사면접을 봤습니다. 문제상황은 다음과 같았습니다.A : 이력서에 트랜잭션 이야기를 했는데, DB의 트랜잭션과 스프링에 @Transactional에 대해 아는한 설명해주세요..!B : 트랜잭션은 롤백이 된다는 특징이 있고... (머리가 하애졌다..)심
개요 > It-hermes 배치서버 개발 과정에서, 배치로직을 구현하고, 코드리뷰를 받았을 때 하나의 피드백을 받았습니다. 결론만 말한다면, 구독할 서비스가 많아지게 된다면.. 그만큼 저 메서드는 반복적으로 실행할 수 밖에 없습니다. 그렇게 된다면, 파라미터 중, 하
개요 > IT-Hermes 프로젝트 개발 과정에서, 배포를 업데이트 하는 과정에 너무 오랜시간이 걸렸습니다. 특히 이번 프로젝트의 경우 주요 서버들이 너무 많았습니다. 프로젝트에 필요한 서버는 다음과 같았습니다. 프론트서버(+Nginx를 통한 웹 서버 기능 겸용) 백엔
IT-Hermes 프로젝트를 진행하는 과정에서, JPA의 영속성 컨텍스트 덕분에 코드를 변경하는 과정에서 유용하게 사용했습니다. 하지만 JPA, 정확히 말하면 영속성 컨텍스트에 무조건 의존하는게 맞는가? 라고 생각해보면 그거에 대해선 아니라고 말하고 싶습니다.그렇게 생
IT-Hermes 프로젝트의 구현을 마친 후, 처리속도를 개선할 수 부분이 있는지 찾는 과정에서,한 가지 이상한 상황을 발견했습니다.nGrinder를 통해 평균 TPS를 확인은 했지만, 그 이상을 확인을 하지 않았지만, 자세히 보니까 TPS 그래프가 이상했습니다. 확인
IT-Hermes 프로젝트 진행 과정에서, 게시글을 클릭할 경우, IP를 확인하여 방문한 이력이 없을 경우조회수를 카운팅하는 API가 있습니다. 하지만, 방문 이력이 없는 2개의 PC에서 동시에 접속을 할 경우\+2가 아닌 +1로 카운팅이 되는 이슈가 있었습니다.아래의
네트워크를 활용할 때, OSI 7계층을 왜 공부해야 될까?와 기존에 멘토링 중 포트포워딩 과제를 하기 전, 구조를명확히 알고 싶어 조사를 하게 되었다.헤당 이미지가 제일 정확한것 같았다. 결국 모든 각각의 계층은 계층에 있는 프로토콜을 통해 데이터를 변환을 하고, 데이
제네릭에 대한 설명이 대다수이다. 내 경험상 제네릭을 쓴 적이 거의 없었고, 메소드 같은거 볼 때, 제네릭이 들어있는거 보고.. 아 뭐지 모르겠어.. 하고 넘어가기만 했다. 이 챕터를 보고 제네릭을 확실하게 이해할 수 있었다.객체 생성 후 형변환을 하는 과정을 줄이기
4장까지와 마찬가지로 기본개념위주의 내용이 대부분이었다. 하지만, 8강은 짚고 넘어갈 내용이 많았다. 해당 포스팅은 8강 내용 위주로 정리했다.\+가 유일하게 되는 참조자료형은 String이다.new를 통해 객체를 생성하고 해당 객체가 생성이 되는 이유는 클래스 생성자
자바의 신을 한 번 완독했다. 하지만, 햇갈리거나 약간 중요한 것 같은 핵심부분을 책에서 포함 된 내용은 물론 포함되지 않은 부분까지 넣어서 참고자료를 만들 생각이다.구성요소는 리턴타입, 메소드 이름, 매개변수 이렇게 구성이 되어있다.클래스는 자바의 가장 작은 단위클래
컬렉션 팩토리 및 리스트와 집합, 맵의 새로운 관용패턴이 어떤게 있는지 정보를 제공해주는 챕터이다.하지만 이렇게 하면, 새로운 요소를 추가할 때 UnsupportedOperationException이 발생한다.이유는 고정된 크기의 변환할 수 있는 배열로 내부가 구성되어
자바에서 병렬화가 어떻게 작동하는지에 대한 작동원리 및 간단한 소스코드를 통해 해당 내용을 설명하는 챕터이다.자바7이전에는 데이터 걸렉션을 병렬로 처리하기 어려웠다. 직접 서브파트로 분할하고 각각의 분할 된 서브파트를 각각의 스레드에 직접 할당해야 된다. 또한 이 과정
자바의 신 책을 요세 보고 있다. 보는 와중에 책에서는 main함수가 없으면 컴파일을 해도 오류가 발생한다. 오류의 내용은 다음과 같다.자바 파일 생성자바파일 컴파일보는 것과 같이 메소드를 찾을 수 없다는 오류를 보인다.(NoSuchMethodError)이것의 해결 방
Integer이 우리가 볼 때 null 정보도 제공하고 이점에서 보면 백엔드에 데이터를 전달할 때도 상당히 유용하다는 장점이 있는데 왜 많이 안쓸까? 라는 점이 궁금했다.실행은 이렇게 해봤다.다음은 실행시간이다.놀랍게도 약 2배이상 더 빠르다는 것을 알 수 있다.이유는
코딩테스트 준비를 하며 정렬을 처음볼땐 이해를 하지만 계속 안보면 잊어버릴 떄가 많다. 따라서 각각의 정렬이 어떻게 작동되는지에 대한 설명과 함께 코드를 작성할 생각이다.퀵정렬 작동원리