백엔드

class GraphMatrix { char[] vertices; // 노드 int[][] matrix; // 인접 행렬 int idx; public GraphMatrix(int size) { this.vertices = new char[size]; this.matrix = new int[size][size]; this.idx = 0; } public boolean isFull(){ return this.vertices.length == idx; } public void addVertex(char c) { if(isFull()){ System.out.println("Graph is full"); return; } this.vertices[this.idx++] = c; } public void addEdg..
·백엔드/Spring
안녕하세요. 이번 게시글에서는 클라이언트가 요청을 보냈을 때 WAS에서 일어나는 작업에 대해 알아보도록 하겠습니다. 특히 디버거를 사용해서 직접 코드를 살펴보며 자세히 알아볼게요~! 먼저 클라이언트에 요청이 일어난 후 내부적으로 진행되는 순서를 아래와 같이 그려보았습니다.. 저번 게시글에 그렸던 그림과 약간 차이가 있죠? 저번 게시글이 틀렸었습니다.. Connector와 ThreadPool을 별도의 모듈로 표현했었는데, Connector내부에 ThreadPool이 존재하는 것이었습니다.. (이전글 수정은 나중에...) - 각 모듈의 사양을 구분하기 위해서 Connector(Coyote) 모듈은 노란색, ServletContainer(Catailna)는 파란색, Spring은 초록색으로 표현했습니다. - ..
·백엔드/Java
안녕하세요~ 꾸준함의 미더덕입니다. 이전 게시물에선 Enum의 field name 자체로 의미를 가진 경우에 대하여 간단한 Enum 클래스를 적용해보았습니다. 이번에 리팩토링할 대상은, 값 자체로는 특정한 도메인 의미를 갖지 않는 코드값들에 대한 처리입니다. 일단 작성한 Enum 클래스들을 확인해볼까요? 상황) 상수명과 코드값이 일치하지 않음 @Getter@AllArgsConstructorpublic enum CategoryCode { CUSTOMER_INQUIRY("CT000001"), FREE_BOARD("CT000002"), REFUND_INQUIRY("CT000003"), //... private String code;} 위의 Enum클래스를 보시면, 상수명과 코드값이..
·백엔드/Java
안녕하세요~ 꾸준함의 미더덕입니다.   이번 시간에는 레거시 코드들을 Enum Class을 사용하여 리팩토링 하는 시간을 가져볼까 합니다. (그런데, Enum을 Class라고 봐도 될까요? -> 맞습니다.. Enum은 추상클래스입니다..!)  기존을 하드코딩되어 배드 스멜 코드들을 Enum을 사용하여 클린하게 바꿔볼 것인데요.크게 두 부분을 봐볼까 합니다.  1. 비즈니스 로직상에서 Enum 활용 2. JPA 엔티티에서의 활용(@Converter 사용)  레거시 코드 예시 우선, 이번 게시물에서는 레거시 코드를 보면서 문제점이 되는 부분들을 찾아보겠습니다.(상황의 복잡성을 더하기 위해 복합키 설정까지 해보았습니다.) cf) 복합키 상황에서 GeneratedValue는 사용할 수 없습니다.복합 키를 갖고 ..
꾸준함의 미더덕
'백엔드' 태그의 글 목록