목록자바 (20)
오늘이군
자바에는 int, long 와 같은 기본형 타입(Primitive type) 이 있고, 그 기본형을 Wrapping 한 Wrapper Class 가 있습니다.결론적으로 얘기하면 기본형 타입 연산이 빠릅니다.예전에는 long 타입끼리만 연산이 가능했지만 JDK1.5 버전부터 부터는 auto(un)boxing 을 지원하게 되었습니다. 개발하기는 편해졌지만 별 생각없이 개발하다보면 큰 성능 이슈를 발생시키게 됩니다.Long sum = 0L; for(long i = 0; i < Integer.MAX_VALUE; i++) { sum += i; }와 같이 개발하면 안된다는 얘기 입니다. Boxing, UnBoxing 이 일어나지 않게 개발해야 합니다.이것이 얼마나 속도 차이가 나는지 코드로 보겠습니다. 아래 내용처..
자바에서 문자열 처리를 할 때 무심코 String name = "홍" + "길동"; 라는 코드를 작성합니다. 예전에 어디선가 StringBuffer 를 사용하라는 얘기를 들었지만 일일이 append 하는 것도 귀찮고 toString() 도 해야 하는 것이 번거롭다는 생각이 들어 더하기 연산을 해버리는 데요, 이게 문제가 있습니다.String 은 불변(immutable) 객체 입니다.예를 들면, str = str + "ab"; 은 100번 주소에 객체가 만들어지지만 다시 str 을 변경하려는 시도를 하면 불변 객체 이므로 새롭게 150 번 주소에 생성을 합니다. 그럼 남은 100번은 어떻게 될까요?네, GC 대상이 됩니다. 무심코 코드를 이렇게 작성하다보면 불필요한 객체가 많이 생겨서 GC 가 빈번히 발생..
참고 https://youtu.be/6Iq5iMCVsXA http://ledgku.tistory.com/33 복잡도 시간 복잡도(time complexity) : 어떠한 연산을 수행하면서 사용한 시간을 나타낸다 공간 복잡도(space complexity) : 사용한 메모리의 사용량 복잡도는 보통 빅오(대문자 O) 표기법을 사용하며, 알고리즘 평가 사이트는 빅오 표기법으로 기준을 제시하고 최악의 경우로 평가 한다. 그리고 시간 복잡도가 괜찮으면 공간 복잡도는 어느정도 봐주는 경향이 있다. time complexity 배열에서 특정 원소를 찾는 경우 O(1) 인덱스로 바로 찾는 경우 int result = numbers[0]; O(n) for 문 한번 돌려서 찾는 경우 for(int num : numbers..
※ 추천 글 https://www.youtube.com/watch?v=xqEVS8LzxZM http://yellowh.tistory.com/119 1. 난해하다. 하지만 알아야 하는 이유 가끔 하다보면 저장이 안되는 경우가 발생할 수 있다. 제대로 이해하지 못하면.. 2. 영속성 컨텍스트(persistence context) - 엔티티를 저장하는 논리적인 저장공간 가. 비영속 Member member = new Member(); member.setId(id); member.setUsername("kic1"); 나. 영속 // 객체를 저장한 상태(영속) - DB에 저장된 상태는 아니다. em.persist(member); 다. 준영속 : 영속상태에서 분리 em.detach(member); // member..
※ 추천 글 https://www.youtube.com/watch?v=OOO4H3BAetU (https://www.slideshare.net/zipkyh/spring-datajpa?next_slideshow=1) https://www.youtube.com/watch?v=v8nNsS5-pyM http://blog.naver.com/noranlemon84/220774678674 http://www.javajigi.net/pages/viewpage.action?pageId=5924 https://www.slideshare.net/ssusere4d67c/jpa-53004111 ※ 추천 책 ★ 추천 글 가볍게 보시고 바로 김영한님이나 최범균님 책을 구입하셔서.. 여러번 보시길 바랍니다.. ★ 객체지향/SOLID/..
1. 추천 글 https://www.youtube.com/watch?v=fy_Uoas0ToY 17분~ http://jinpyo900.tistory.com/55 2. PSA (Portable Service Abstraction) : 일관성 있는 추상화 가. 설명 환경과 세부 기술의 변화에 관계없이 일관된 방식으로 기술에 접근할 수 있게 해줌 POJO로 개발된 코드는 특정 환경이나 구현방식에 종속적이지 않아야 한다 다시 말해, Spring은 POJO 원칙으로 만들었기 때문에, Spring 패키지 외의 것들을 POJO화 시키기 위해 껍데기를 씌우겠다는 것 각 벤더 들이 여러가지 인터페이스로 제공을 하더라도, Spring 에서 Adapter pattern 을 적용하여 제공하므로, 사용하는 클라이언트에서는 공통된..
1. 추천 글 https://www.youtube.com/watch?v=4AN_cmX56G8 http://expert0226.tistory.com/200 2. AOP (Aspect-oriented programming) : 관점 지향 프로그래밍 가. 횡단관심 출처 : http://expert0226.tistory.com/200 코드 = 핵심관심사항 + 횡단관심사항 나. 로직주입 출처 : http://expert0226.tistory.com/200 다. 소스예시 http://expert0226.tistory.com/202 http://expert0226.tistory.com/204 라. 용어 1) Pointcut : 자르는 지점. Aspect 적용 위치 지정자 - execution("지점") 2) Join..
1, 추천 글 https://www.youtube.com/watch?v=al4NfBp3VLI http://expert0226.tistory.com/199 https://www.youtube.com/watch?v=KCs2hXM-2E0 https://www.youtube.com/watch?v=w9rZCy90Q4M 55분~ http://blog.naver.com/todoskr/220833180218 2. IoC (Inversion of Control) : 제어의 역전 가. 의미 1) 객체 생성 및 생명주기의 관리 까지 모든 객체에 대한 제어권이 개발자가 아닌 스프링 컨테이너에게 넘어가 버린 것입니다. 2) 스프링은 개발자 대신 객체를 관리하기 위해서 컨테이너를 갖고 있기 때문에 Spring 프레임워크를 Spr..