본문 바로가기

Java

[JAVA] 제네틱타입으로 clone utils 만들기 public class CloneUtils implements Cloneable{ Object cloneObj; public EgovCloneUtils(T obj){ this.cloneObj = obj; } @Override public Object clone() throws CloneNotSupportedException { CloneUtils clone = (CloneUtils)super.clone(); clone.cloneObj = this.cloneObj return clone.cloneObj; } } public class CloneUtils implements Cloneable{ public static Object Builder(ArrayList obj){ return obj.clone();..
[Java] Map for문 다양한 사용 방법과 이슈사항 해결방법 오늘의 포스팅 소개 Java에서 Map 항목을 반복하는 여러가지 방법을 정리한다. EntrySet() , keySet() 또는 value() 를 활용하여 Map 조회. EntrySet() :Map.Entry 클래스 에 있는 맵의 컬렉션 뷰를 반환. - Entry.getKey () : 맵의 키를 반환 - Entry.getValue() : 맵의 값을 반환 keySet() : 맵에 포함된 모든 키를 세트로 반환 values() : 맵에 포함된 모든 값을 세트로 반환 데이터 생성 Map map = new HashMap(); map.put("id", 1); map.put("name", "hyedi"); map.put("url", "web-oing.tistory.com"); Interator 클래스 사용 Inter..
[java] MapUtils 에서 주로 쓰는 메소드 example ◽ Map 내부에 해당 키에 해당하는 value 값을 조회 getString getString(Map map, K key) Map map = new HashMap; MapUtils.getString(map,"test"); getString getString(Map map, K key, String defaultValue) Map map = new HashMap; MapUtils.getString(map,"test","empty"); ◽ map 내부 값이 null 인지 판단 - map 객체가 비어 있다면 true 를 반환 - map 객체에 값이 있다면 false 를 반환 isEmpty isEmpty(Map map) Map map = new HashMap; MapUtils.isEmpty(map); ◽ map..
[기술면접][이론][신업][경력] 컴퓨터의 구성 요소 및 작동 원리 컴퓨터의 구조 - 하드웨어 - 소프트웨어 본체 주요 요소 - 메인보드(mainboard) - 전원 공급 장치(power supply) - 중앙 처리 장치(CPU) - ROM(Read Only Memory) - RAM(Random Access Memory) - HDD(Hard Disk Driver) - SSD(Solid-state drive) 참고 블로그 : https://velog.io/@2seunghye/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%EC%9E%91%EB%8F%99%EC%9B%90%EB%A6%AC
[CleanCode] 부록A 동시성 II 클라이언트/서버 예제 서버 I/O : 소켓 사용, 데이터베이스 연결, 가상 메모리 스와핑 기다리기 emd 프로세서 : 수치 계산, 정규 표현식 처리, 가비지 컬렉션 등 일반적으로 프로그램이 **프로세서 연산에 많은 시간을 보낸다면, 하드웨어를 추가하여 성능을 높여야 한다.**즉, 스레드를 늘린다고 해결할 수 있는 문제가 아니다. 하지만 프로그램이 주로 I/O 연산에 시간을 보낸다면 동시성이 성능을 높여 줄 수 있다. 애플리케이션에서 많은 시간을 보내는 가능성은 크게 2개이다. 스레드 추가하기 서버 살펴보기 결론 I/O에 많은 시간을 보내야 한다. 관련된 코드를 분리시켜 여러개의 클래스로 분리해 단일 책임 원칙을 지켜야 한다. 단일스레드 시스템에서 다중 스레드 시스템으로 변환하고, 성능을 높이기 위해서는 ..
[CleanCode] 17장 냄새와 휴리스틱 주석 C1. 부적절한 정보 피하기 다른 시스템에 저장할 정보는 주석으로 적절하지 못한다. 일반적으로 작성자, 최종 수정일, SPR 번호 등과 같은 메타 정보만 주석으로 넣고, 추가적으로 코드와 설계에 기술적인 설명을 하는 수단으로 써야 한다. C2. 쓸모없는 주석 피하기 오래된 주석, 엉뚱한 주석, 잘못된 주석은 더 이상 쓸모가 없다. 쓸모없는 주석은 없애야 한다. C3. 중복된 주석 피하기 코드만으로 충분한데 구구절절 설명하는 주석이 중복된 주석은 좋지 않다. C4. 성의 없는 주석 피하기 단어를 신중하게 선택하고, 간결하고 명료하게 작성해야 한다. C5. 주석 처리된 코드 피하기 주석으로 처리된 코드는 남들이 읽을 때 매우 눈에 거슬리고 매일매일 낡아간다. 이는 해당 모듈을 오염시키고, 읽는 사람을 ..
[CleanCode] 16장 SerialDate 리팩터링 첫째, 돌려보자 단위 테스트가 다 구현이 되어있는가? 둘째, 고쳐보자 법적인 정보는 필요하기 때문에 라이선스 정보와 저작권은 보존한다 변경이력은 소스 코드 제어 도구가 있으므로 하지 않아도 된다. import 문은 java.text.* *와 java.util.**로 줄인다. Javadoc 주석은 HTML 태그를 사용한다. 그러나 하나의 소스코드에 여러 언어를 사용하는 것은 지양하는 방식이기 때문에 주석 전부를 로 감싸는 편이 좋다. 오래된 주석은 고쳐서 개선하기 일반적으로 기반 클래스는 파생 클래스를 모르는 것이 좋기 때문에 추상 팩토리 패턴을 적용한다. 🔹 추상 팩토리 패턴 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공..
[CleanCode] 15장 JUnit 들여다보기 JUnit 프레임워크 우리가 살펴볼 모듈은 문자열 비교 오류를 파악할 때 유용한 코드다. ComparisonCompactor라는 모듈로, 영리하게 짜인 코드다. ComparisonCompactor는 두 문자열을 받아 차이를 반환한다. // ComparisonCompactorTest.java package junit.tests.framework; import junit.framework.ComparisonCompactor; import junit.framework.TestCase; public class ComparisonCompactorTest extends TestCase { public void testMessage() { String failure = new ComparisonCompactor(0,..