EPL 팀의 리그순위 정보를 담고있는 객체를 만든다고 생각해보자. 보통 순위페이지에 나와있는 정보는 경기 수, 승점, 승, 무, 패, 득실차가 있다. 이 데이터들을 담는 클래스를 정의하자. class Team{ private String name; private int playCount; private int victoryPoint; private int winCount; private int drawCount; private int loseCount; private int scorePoint; } 이 객체를 생성하고, 필드들을 주입해줘야한다. 간단하게 setter를 만들어서 주입할 수 있다. Team team = new Team(); team.setName("맨유"); team.setPlayCount(..
이전에 올렸던 포스팅중에 Custom Serializer, Deserializer 만들기 가 있었다. 작성해놓고 나 스스로도 자주 다시보며 유용하게 써먹었던 포스팅인데 이번에 한가지 추가적인 경우를 맞이했다. 해당 필드에 특정 애노테이션이 달려있으면 기본 Serializer 를 사용하고, 없을 경우엔 CustomSerializer 를 사용 이라는 경우였다. 일단 애노테이션이 붙었는지를 먼저 검사해야하는데 그럴땐 리플렉션을 쓸수밖에 없었다. 그런데 직렬화를 할때마다 리플렉션을 사용하는건 비용이 좀 크지않나 라는 생각이 들었다. 그리고 분명히 이런 고민을 전세계에서 꽤 많이 했을 것 같은데 너무 원시적으로 문제를 해결하려는게 아닌가 라는 생각에 이리저리 검색을 좀 해봤다. 역시 이런고민은 이미 수많은 지구인..
자바7에서 추가된 Objects 클래스는 여러 유틸메서드를 제공하고있다. 이중 유용한 메서드들을 몇가지 알아보자. 1. equals()null에 대한 방어를 위해 이런코드를 작성한적이 한번쯤 있을것이다. public void method(String str1, String str2){ if(str1 != null && str1.equals(str2)){ } } str2는 인자로 활용되기때문에 null 체크를 굳이 할필요가 없지만 메서드 호출 객체인 str1이 null 이면 NPE가 발생하기때문에 이런식으로 방어코드를 작성하게된다. 이런 코드는 실무에서도 흔히 볼 수 있는데 null 체크는 자칫하면 빼먹기 쉬워 골칫덩이가 되곤한다. Optional로 우아하게 처리하는 방법도 있지만 str1과 str2가 모..
JPQL 작성 후 파라미터를 매핑하는 방법은 인덱스에 기반한 방법과 이름에 기반한 방법이 있다. 1. 인덱스 매핑@Query("SELECT e FROM Expense e WHERE e.id = ?1") List findById(Long id); spring-data-jpa 를 사용시 id를 이용해 조회하는 쿼리를 자동 생성해주므로 저런식으로 JPQL을 만들필요는 없지만 예제코드임을 기억하자. 이런식으로 인덱스를 사용할 수 있으며 인덱스는 1부터 시작한다. 2번째 파라미터의 경우 ?2 로 매핑해주면 된다. 2. 이름 매핑@Query("SELECT e FROM Expense e WHERE e.id = :#{#id}") List findById(@Param("id") Long id); 이름 기반 매핑의 경우 ..
HTTP 메세지 형식에 대해 알아보자. 요즘 자바로 그냥 간단한 웹서버를 만들어보고 있는데 HTTP 메세지 파싱을 하기위한 코드가 매우 지저분하다. HTTP 메세지에 이런 규약이 있다는걸 모르는 상태에서 코드를 작성하다보니 숱한 분기문이 등장하게 된건데 이런 형식이 있다는걸 알았으면 좀 더 깔끔해질것 같다. 1. 요청(Request) 메세지 [메서드] [URL] [버전] [헤더] [바디] 메서드 : HTTP method ex. GET, POST, PUT, DELETE, OPTION, HEAD... URL : 요청URL ex. www.naver.com 버전 : HTTP version ex. http/1.1 헤더 : HTTP header ex. Content-type: application/json 바디 :..
- Total
- Today
- Yesterday
- EffectiveJava
- OOP
- Git
- clean code
- javascript
- Design Pattern
- 정규표현식
- Jackson
- mariadb
- generics
- servlet
- go-core
- frontend개발환경
- programming
- backend개발환경
- DesignPattern
- Kotlin
- TEST
- db
- toby
- spring cloud
- JPA
- code
- http
- frontcode
- Spring
- MySQL
- JavaScript Core
- java
- java8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |