분류 전체보기
-
Programmers LV.2 위장Programmers 2020. 12. 17. 21:06
처음에는 옷 종류 / 갯수를 별도의 Map 넣어서 처리하도록 계산하려고 하였으나 아무것도 안입엇을 경우, 각 종류별로 안입엇을 경우에 대한 경우의 수가 필요해서 아래와 같이 작업함 @org.junit.Test public void test(){ String[][] clothes = {{"yellow_hat", "headgear"},{"blue_sunglasses","eyewear"},{"green_turban", "headgear"}}; Map clotheType = new HashMap(); int answer = 1; for(String[] clothe : clothes){ clotheType.put(clothe[1] , clotheType.getOrDefault(clothe[1],0) +1); } ..
-
Programmers LV.2 전화번호 목록Programmers 2020. 12. 16. 22:55
2중포문을 사용하지 않고도 처리가 가능 할 줄 알고 별에 별 시물레이션을 돌려봤지만, 명확한 답을 찾지 못하여서 진행 처음엔 향상된 for 문을 사용하는걸 즐겨쓰는데, for(String phone : phone_book) { for(String equlsePhone : phone_book) if(!phone.equlse(equlsePhone) } 위와 같이 처리하는게 더 빠른지 궁금했는데, 결국 한번 더 for문을 돈다는게 오래걸린 다는 것을 확인하고, 처리하였다. 문제를 명확히보지않고 "접두어"가 아닌 indexOf로 해결하면 되겠지 하고 넘겼다가, 접두어 항목을 다시보고 startsWith로 변경하였다. import java.util.*; class Solution { public boolean s..
-
Programmers LV.1 완주하지 못한 선수Programmers 2020. 12. 16. 19:27
이번 코딩테스트를 공부하면서, 차근차근 보자는 생각으로 진행하였다, 해당 문제는 Hash 를 가지고 해결하라는 문구가 써있었지만, 원래 하던 개발 방식적으로 우선적으로 접근해보기로 하였다. List으로 constains를 이용하여 존재여부를 통하여 처리 할 수 있도록 진행하려 하였으나, 효율성 면에서 부족하단 평가를 받았다. import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; List completPeopleList = new ArrayList(); List participantPeopleList = new ArrayList(); fo..
-
Filter / InterCeptor / AOPSpring 2020. 11. 19. 15:30
지난년도에 AOP를 통해서 여러개의 메소드에 대해서 데이터를 수급하기 위하여 개발한적은 있으나 (choigaram.tistory.com/46?category=955254) 공통적으로 전후처리가 가능한 작업들에 대해서 정리할 필요성을 느껴서 작성을 합니다. Filter / Interception / AOP 3가지 다 활용하는 경우가 많은데, 공통적으로 업무에 대해서 프로세스 전/중간/후 에 대해 처리 가능하도록 해줄수있다. 제일 눈에 들어오게 프로세스 흐름도를 그리면 아래와 같다. doFilter -> 1. Web Application에 등록 (Web.xml)하기 때문에 Server Deployment Descriptor에 등록 처리합니다 2. 예외처리 시 error-page 같이 예외 처리 3. Disp..
-
Stack / Heap / Garbage CollectionJAVA 2020. 11. 18. 15:44
Stack - Heap 영역에 생성된 Object ( Integer, String, ArrayList 등등 )에 대한 데이터의 참조값 저장 - 각 Thread는 자신만의 Stack을 가진다. - Primitive Type의 데이터가 값과 함께 할당됨 (byte, short, int, long, double, float, boolean, char) ( boolean a = false; 가 stack에 저장될 시 stack에 a heap에 false가 저장되는 것이 아닌 stack에 a = false으로 저장됨 ) Heap - Application 메모리중 stack에 있는 데이터를 제외한 데이터 (String a = " hello"가 존재할 경우 stack 에는 a 가 쌓여있고, heap에는 a = " h..
-
Mybatis null check java method로 처리하기JAVA 2020. 8. 25. 12:39
회사 내부에서 mybatis를 사용하다보면, 와 같은 문구를 많이 본다. 이에 대해서 조금더 명확한 방법으로 처리 할 수 있을지 하여 찾아보는 도중, java method를 호출하여 처리하는 방안이 있어서 이를 활용하기로 하였다. package mybatis; import java.lang.reflect.Array; import java.util.List; import java.util.Map; public class MybatisEmpty { public static Boolean empty(Object obj){ if (obj instanceof String) return obj == null || "".equals(obj.toString().trim()); else if (obj instanceof..
-
DBUnit으로 이기종 간 데이터 이관하기DB 2020. 3. 10. 09:28
이전 포스팅에 이어, 현 회사에서는 이기종간 mapper dir을 별도로 관리하고있는데, mapper는 분류하여 작업한다 하더라도, 실제 데이터( mock data )에 대해서는 해결할 방안을 찾던 중 https://woowabros.github.io/experience/2019/11/06/db-unit.html 스프링부트에서 DbUnit 을 이용하여 DB 테스트 해보기 - 우아한형제들 기술 블로그 안녕하세요. 상품시스템팀 권순규입니다. 저희 팀에서 DB 테스트를 위해 사용하고 있는 DbUnit 의 설정 및 사용에 대해 알려드리고자 합니다. woowabros.github.io 위 포스팅을 보고 데이터 이관을 DBUnit으로 할 수 있을 것으로 보여 시작하였다. 우선 DBUnit이란 xml 형태로 data..
-
Intellij lombok 적용 방법intellij 2020. 2. 5. 09:51
현재 회사 내에서 MSA 프로젝트를 진행 하기 위하여, Spring -> Jpa 구조로 변경되는 과정사이에 lombok을 사용하여 @Getter @Setter Annotation을 사용하게 되었다, 현 회사에서는 내부적인 SI 성 프로젝트를 진행하면서 Bean( vo ) 구조를 사용하다는게 매우 불편하다고하여, Bean 구조 없이 map 형태로 핸들링하는 형태로 나가 이를 사용하는 방향성 자체가 없었다. 각설하고, lombok을 사용하면서 Intellij에서는 BeanId.get() / BeanId.set() 에 대해서 찾지 못하여 에러가 발생하는데 ( 명시적으로 get/set을 만들어주지 않았을 경우) compile 하면 .class 파일에서는 get/set이 분명히 들어있다. 에러가 계속 발생하게되어..