반응형 프로그래밍이야기/Java12 [객체지향] OCP 적용 정리 최근 진행하고 있는 미션에서 코드 리뷰를 통해서 OCP의 대해서 피드백을 받은적이 있습니다. OCP를 적용하면서 진행하였던 내용을 정리하려고 합니다. 상황 현재 외부 프로젝트 준비를 위해서 플랫폼 개발을 진행하고 있습니다. 그 중 API가 하나 있습니다. 이 API는 Elasticsearch를 조회해서 가져온 데이터를 전달하고 있습니다. 사실, 이 API는 기존에는 Database에서 조회한 내용을 전달하였습니다. 하지만 Elasticsearch를 연동하면서 변경되었습니다. 현재 개발 시에는 Elasticsearch를 사용하고 있지만, 외부 프로젝트 상황에 따라서 다른 라이브러리도 변경될 수 있습니다. 문제점 외부 라이브러리를 사용하는 부분에서 다른 라이브러리를 활용하여 다른 방식으로 변경될 수 있습니다.. 2022. 1. 23. [Item6] 불필요한 객체를 생성하지 마라 Effective Java의 Item6에서는 불필요한 객체를 생성하지 마라고 설명을 하고 있습니다. 그 내용 중 여기서는 오늘 생성 비용이 큰 객체의 재사용의 대해서 한 가지 알아보려고 합니다. 사실, 이 내용은 피드백을 통해서 알게된 내용입니다. 1주차 우테캠 Pro 3기 회고 [1주차] 우테캠 Pro 3기 회고 1주차 미션은 문자열 덧셈기와 로또를 구현하는 미션을 진행하였습니다. 진행해왔던 미션을 회고하면서 놓쳤던 부분들을 정리하려고 합니다. 문자열 덧셈기 기간 미션 진행 기간 : 2021.11.02 ~ 2021 lovethefeel.tistory.com 그렇다면 객체의 생성 비용이 크다면 과연 성능상 얼마나 큰 차이가 있을까 궁금하였습니다. 그래서 다음과 같이 실험을 하였습니다. 개발 환경 Java.. 2022. 1. 5. [Java] Enum의 활용 enum의 사용방법을 처음 알았을때.신기하고 편해서 정리하려고 한다. doc.https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html enum.열거형(enumerated type)이며, 서로 연관된 상수들의 집합.클래스로 생성 가능하여 필드, 메소드 등 상수의 역할을 넘어서 많은 역할 가능. 사용목적.서로 연관된 상수들의 집합을 이용하여서.가공 및 처리(메소드를 이용하여)가 필요한 경우의 사용. 사용방법.예시를 참고.웹 페이지에서 여러가지 날짜 포맷을 지원하는 경우. public enum DateFormat { /** * yyyyMMdd 문자열 형식 */ YYYYMMDD("yyyyMMdd") , /** * yyyyMMddHHmmss 문자열 형식 */ .. 2020. 5. 22. [Java] Charset과 유니코드 그리고 인코딩 몇년전 이야기.모 은행 프로젝트를 끝내고 본사로 돌아왔을때. 회사 부장님이 은행에서 진행한 내용에 대해서 설명을 해달라고 하였다.설명을 신나게 하고 있는데 갑자기 한 가지 질문을 던지셨다."전문은 왜 사용하지?"....한순간 정적이 흐르고.통신을 하기 위해서 사용한다고 대답하였지만.부장님 기준에는 원하지 않은 대답으로 기억한다. 지금 내 기준에서 정확한 답을 무엇일까?표준통신규약이라고 말할 수 있을것 같다.서로간의 약속된 규약을 통해 약속한 데이터를 전송하는 것.컴퓨터 세상에서는 이러한 데이터를 표현하기 위해서 문자집합을 정의해야 한다.표현해야할 문자(한글, 영어 등등)가 있고 특수문자도 정의해야 하고.이러한 문자들의 순서를 지정한 것을 문자 집합(character set)이라고 한다. 문자집합을 컴퓨터.. 2020. 5. 20. [Java] 상수(Const)를 선언하자 상수라는 개념은 알고 있다해도. 잘 사용하지 않았었는데. 지금은 아니지만. 정말 개발적으로 능력있는 상사분의 소스를 많이 보게 되면서. 상수 선언에 대해서 필요성을 느꼈다. 개념. 프로그램이 실행되는 동안 변하지 않는 값이며 재정의가 불가능한 값. 목적. 나같은 경우에는 무분별한 하드코딩를 막기 위해서 공통된 상수 선언을 통해서. 재사용하는 것을 좋아한다. 아래와 같은 내용에 해당되면 상수를 사용하는 편. 1. 소스 코드내에서 한번 이상 사용할 것2. 변하지 않는 값 물론, 상수를 사용한다고 해도 하드코딩을 안하는 것은 아니다.(함정) 사용 방법. 공통 영역(package)의 상수만 관리하는 Class 생성 클래스ServiceConst(아래) public class ServiceConst { /** * .. 2020. 5. 15. [Java] 접속한 IP를 구해보자 프로젝트를 진행 중. 접속한 사용자의 IP를 구하는 경우가 있었고. 그때를 기억하며 소스를 정리. 여기에 사용된 총 기술은 뒤로 나열하고. 소스 내용. /** * Client IP를 구한다. * * @param request HttpServletRequest 객체 * @return String 실제 사용자 IP * */ public static String getClientIp(final HttpServletRequest request) { String clientIp = ServiceConst.STRING_EMPTY; clientIp = request.getHeader("IPV6_ADR"); if( Strings.isNullOrEmpty(clientIp) || "unknown".equalsIgnoreC.. 2020. 5. 12. 이전 1 2 다음 반응형