본문 바로가기
반응형

Java20

@Access 어노테이션 JPA 가 엔티티 데이터에 접근하는 방식을 지정한다. 1. AccessType.FIELD : 필드에 직접 접근한다. @Access(AccessType.FIELD) private String address1; 2. AccessType.PROPERTY : 프로퍼트로 접근한다. @Access(AccessType.PROPERTY) public String getAddress2() { return address1 + address2; } 3. AccessType 이 지정되지 않은 경우는 @Id 위치에 따라 지정된다. @Entity public class OrderInfo { @Id private Long id; private String address1; @Transient private String addres.. 2022. 6. 3.
Spring Boot Test Case 작성에 대한 생각 - Controller Test 2021/02/17 - [Development/Java] - Spring Boot Test Case 작성에 대한 생각 - Service Test 2021/02/17 - [Development/Java] - Spring Boot Test Case 작성에 대한 생각 - Repository Test Repository, Service 에 대한 테스트를 살펴봤으니 이제 Controller 테스트를 확인해보자. Controller Test 에는 @WebMvcTest 를 사용했다. Controller 는 확인해야 할 부분이 다음과 같다. 1. request 를 요청한 url 과 파라메터가 정확한지 여부. 2. 정상 처리 되었을데 요구한 응답을 보내주는지. 3. 비정상일때에 response 에 상태 코드가 정확히 전.. 2021. 2. 18.
[나는 리뷰어다] 모던 자바 인 액션 최근 들어 자바 버전이 굉장히 자주 업데이트 되고 있다. 그러다 보니 새로운 기능에 대해서 아는게 별로 없구나라는 생각을 자주 했었다. 마침 이렇게 새로운 버전에 대해서 리뷰할 기회가 되서 공부를 하게 되었다. 우선 이 책은 총 21개의 챕터로 구성이 되어있고 600 페이지가 넘어가는 책이다. 앞에서 부터 차근차근 읽기에는 끈기와 노력이 필요하다. 그래서 나도 처음에는 차근차근 읽어가다가 어느정도 기본 개념에 대한 내용을 파악하고 난 후에는 실제로 내가 회사에서 사용해 볼 수 있는 부분부터 읽어 나가기 시작했다. . 단, 최소한 5장까지는 차례대로 읽어보는 것을 권하고 싶다. 왜냐하면 5장까지의 내용을 알아야 뒤에 나오는 내용을 파악하는데 좀 수월해 진다. 5장의 내용이 위에 보듯이 스트림에 관련된 내용.. 2019. 9. 16.
[인사이트] 알고리즘 트레이닝!! 인사이트에서 진행하는 신간 리뷰어로 선정되어서 책을 읽게 되었다. C++ 이지만 이해할 수 있다. 대부분의 알고리즘 책들이 그렇듯이 이 책도 C++ 코드로 설명이 되어있다. 프로그래밍 경진대회에서 가장 높은 비율로 많이 사용되는 언어인데 효율적이며 표준 라이브러리에 많은 양의 자료 구조와 알고리즘이 포함되어 있기 때문이라고 한다. 나같은 경우는 java 만 주로 하고 C++ 은 대학때 이후로 안했지만 책을 이해하는데에는 어려움이 없었다. 우선 소스코드가 길지 않고 문법상 큰 차이가 없다. 그리고 코드에 대한 설명이 글과 그림을 통해서 자세히 설명이 되어있다. 오히려 다른 언어(나같은 경우는 java)를 사용해서 C++ 로 구현된 코드를 변경해 보면서 공부를 하면 더 도움이 된다. 프로그래밍 기법에 대한 .. 2019. 6. 18.
[나는 리뷰어다] 자바 개발자라면 한번 쯤 읽어보자.!Think Data Structures (자바로 배우는 핵심 자료구조와 알고리즘) 한빛 미디어의 "나는 리뷰어다" 를 통해서 Think Data Structures (자바로 배우는 핵심 자료구조와 알고리즘) 책을 받게되었다. 전에 한빛 미디어 사이트를 들어갔을때 어떤 책인지 궁금했었는데 이렇게 타이밍 적절하게 책을 읽게 되었다. 우선 이책은 그냥 알고리즘 책이 아니다. "자바로 배우는" 알고리즘 책이다. 그렇기 때문에 자바 코드를 읽을 수 있어야 한다. 저자도 책의 머릿말에 사전 준비사항으로 자바를 언급하면서 익숙하지않은 독자들은 "Think Java", "Head First Java" 책을 권해주고 있다. 자바의 Collection 과 알고리즘 이 책에는 Java Collection들이 많이 나온다. LinkedList, Map, ArrayList 등등. 알고리즘을 설명하면서 거기에.. 2018. 7. 15.
[Spring Security]간단 Spring Security Spring Security 를 적용하는 내용을 처음부터 차근차근 정리를 해보려고 한다. 목표는 Spring Security 를 공부하면서 각각의 기능들을 적용해보는것이다. 진행하다보면 Spring Security 뿐만 아니라 다른 내용들도 점점 추가될것 같다. 다 만들고 나서는 git에 소스를 공유할 생각이다. ^^;; 언제가 될지는 잘 모르겠다. 환경 : java 1.8, Spring Boot 1.5.3 Release, Maria DB, JPA, gradle build.gradle12345678910111213141516171819202122232425262728293031323334buildscript { ext { springBootVersion = '1.5.3.RELEASE' } reposito.. 2017. 6. 27.
util.Date vs sql.Date 차이 쓰다보면 별 생각없이 사용했던 Date 클래스. 심지어 util.Date 인지 sql.Date인지도 생각도 안하고 썼는데.. (있는지도 잘 몰랐네 -_-) 그런데 이런 차이점이 있었다.. 일단 sql 패키지의 Date 클래스는 java.util.Date 클래스를 상속 받는다. 그런데.. 문제는 이게 값을 가져올때이다. 오버라이딩한 toString을 찾아보면 public String toString () { int year = super.getYear() + 1900; int month = super.getMonth() + 1; int day = super.getDate(); char buf[] = "2000-00-00".toCharArray(); buf[0] = Character.forDigit(year.. 2014. 7. 1.
Reflection 활용한 값 비교 가끔 DB에 입력할 값하고 기존에 있던 값하고 비교해야 할 상황이 생긴다. 그럴때마다 객체에 있는 수많은 getter 메소드를 소스 코드에 써줘야 한다면 코드가 참 지저분할것 같다. 그래서 사용한 방법이 Reflection 이다. Class에 있는 정보를 읽어와서 실제로 메소드까지 실행 가능하니.. 라인수를 확 줄일 수 있다. ^^import java.lang.reflect.Method;public class ReflectionTest { public static void main(String[] args) throws Exception { // DB에 입력하려는 DATA TestVO test = new TestVO(); test.setId("test"); test.setName("kim"); test... 2013. 11. 13.
Integer.paserInt 를 사용한 진법 변환 Integer.parseInt를 많이 써왔었지만 문자를 정수로 바꾼다라는 것 밖에 몰랐었다. 그런데 이 함수가 다른 기능도 있었다. 바로 진법 변환.@Testpublic void integerTest(){ String number1 = "1010"; String number2 = "10"; Assert.assertEquals(10, Integer.parseInt(number1, 2)); Assert.assertEquals(8, Integer.parseInt(number2, 8));}위 테스트 코드를 실행하면 정상적으로 실행이 된다. 첫번째는 1010을 2진법 수로 인식해서 결과값을 10을 리턴했고 두번째는 10을 8진법 수로 인식해서 결과값을 8로 리턴했다. 진법 변환하는것을 코드로 짜면 귀찮았는데 In.. 2013. 11. 12.
[Try-catch]대문자 출력 문자열에서 첫번째 대문자를 찾아서 출력한다. (출처 : http://www.try-cat.ch/contest/view/exercise/70)import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); String data = input.nextLine(); char result = ' '; for (int i=0; i=65 && charData 2013. 11. 4.
Strategy Pattern Strategy Pattern, 전략 패턴이라고 한다.전략이라는 것은 여러 분야에서 쓰인다. 특히 스포츠에서 많이 들을 수 있는 단어이다. 그리고 언제나 전략은 한가지일 수는 없다. 딱히 한가지 방법만 있다고 한다면.. 전략이라고 하기에는 좀 부족하지 않을까. 그냥 공식? 이라고 하는 편이 나을지도 모르겠다. 이렇게 전략은 항상 다양하게 존재한다. 상황에 따라서 전략을 바꿀수도 있다. 이러한 사상(?)을 담은 패턴이 Strategy 패턴이다.클래스 다이어크램을 보면 Context 클래스가 존재하고 AStrategy 인터페이스가 존재한다. 그리고 AStrategy 인터페이스를 구현한 ConcreteStrategy 클래스들이 존재한다. 상황에 따라서 ConcreteStategy 클래스를 변경한다!라는 것이다.. 2013. 7. 2.
List 를 Array로 바꾸는 함수. Arrays.asList(array);이렇게 하면 array를 List로 변환해 준다.나름 유용할듯. ^^이것 이외에도 sort도 사용할수 있다.Arrays.sort(array)배열 정렬시킬때 잘 써먹을듯 하다. 2013. 7. 2.
728x90
반응형