반응형

프로그래밍/Java 15

API를 Restful 하게 작성하기 위해 고려해 볼 만한 5가지 디자인

" beyondj2ee "글을 참고하여 정리하였습니다. “100% RESTful 아키텍쳐링“을 다 지킬수는 없지만 최소한 아래에 “언급하는 5가지 디자인“에 대해서는 인식할 필요가 있습니다. 1. API의Endpoint가 오직 한개인가? 실제 경험한 사례로써 한번은 어떤 시스템의 연동 문서를 보니 “오직 한개의 URL로 fix” 되어 있었습니다. 예를 들어서 URL은 “http://example.com/rest” 이며, 모든 request는 해당 URL로 통합니다. 실제 자원에 대한 정보, 호출 서비스 정보, 파라미터 정보 등은 “XML 형태의 Body 데이터“로 전송 하도록 되어 있었습니다. REST의 매우 중요한 구성 요소중 하나는 “Resource” 입니다. “Resource”의 의미는 말 그대로 ..

[java/자바] replaceAll(), trim() 공백 제거 안될 때

replaceAll (" ", "" )이나, trim() 으로 간단 하게 공백을 제거하려 했지만 제거가 안되는 경우가 있다. 이유를 찾아보니.. 상기 코드로 삭제되지 않는 이유는.. "CJK 문자셋에서 'IDEOGRAPHIC SPACE'라고 불리는 유니코드는 \u3000이며, HTML에서는 으로 표현, 폰트가 이를 지원하지 않을 경우, 실제로는 보이지 않는 코드로만 존재하는 공백" 이럴 경우 다음과 같은 정규식을 통해 제거가 가능. // 모든 공백 제거 String str =originalString.replaceAll("\\p{Z}", ""); // 앞뒤 공백만 제거(trim) String str =originalString.replaceAll("(^\\p{Z}+|\\p{Z}+$)", ""); 참고 :..

자바 스윙(swing) 프로젝트 - 맛집 랜덤 추천

개인적으로 프로그램 학원을 다니게 되었습니다. 집에서 공부하자니, 너무 나태해져서 강제로 공부할 수 있는 환경을 만들고자 쉬는 동안 국비지원 학원을 등록하여 학원에서 개인 공부를 좀 진행하려고 했는데, 조별 활동 과제로 스윙 프로젝트를 진행하게 되었습니다. 같은 조원들에게 공부에 도움이 되고자, 코드를 깔끔히 쓰려고 노력하였습니다. 오랜만에 해보니 재미가 있어서 좀 열심히 했던 거 같네요.. 스윙 같은 경우는 어떻게 프로세스를 설계하느냐에 따라 어떠한 액션이 주어졌을 때 프레임을 계속 띄우면서 UI를 그리는 설계와 프레임은 하나이지만 그 위에 계속 패널을 쌓아서 UI를 보여주는 방법이 있는 거 같습니다. 개인적으로 조원들에게 자바가 익숙하지 않는다면 스윙 프로젝트에 많은 기능을 넣기보다는 최대한 간결하게..

자바 날짜, 시간 구하기 (LocalDate, LocalTime, LocalDateTime 자주쓰는 메소드 정리)

https://m-veloper.github.io/tip/2020/07/01/tip-java-09/ 자주 쓰는 메소드 정리 LocalDate : [ 년,월,일 ]과 같은 날짜만 표현 LocalTime : [시,분,초]와 같이 시간만 표현 LocalDateTime : [ 년,월,일,시,분,초 ]를 표현 Period : 두 날짜 사이의 [년,월,일]로 표현 Duration : 두 시간 사이의 [ 일,시,분,초 ]로 표현되는 기간 (Instant 클래스를 사용하고, seconds와 nanoseconds로 측정 되지만 [ 일,시,분,초 ]로 변환해 주는 메쏘드를 제공 ChronoUnit : 한가지의 단위를 표현하기 위한 클래스 [ 년,월,일,시,분,초 등 ] 날짜 가져오기 LocalDate.now(); // 오..

자바날짜, 시간 구하기 (LocalDate, LocalTime, LocalDateTime 사용법)

https://m-veloper.github.io/tip/2020/06/30/tip-java-08/ java.time Java 1.8 (자바 8) 이전에서는 보통 Calendar를 사용하고, Date/long/String 으로 변환후 사용하는 방법을 많이 사용함. Java 1.8 (자바 8) 후에는 LocalDate, LocalTime, LocalDateTime 등이 추가되어 날짜, 시간관련하여 코드를 짜기가 더 쉬워짐 날짜와 시간 객체 생성 날짜 - LocalDate LocalDate currentDate = LocalDate.now(); // 컴퓨터의 현재 날짜 정보를 저장한 LocalDate 객체를 리턴한다. LocalDate targetDate = LocalDate.of(int year, int ..

[java/자바] Static 이란? Static 정리

이글은 "망나니개발자"님의 글을 참고하였습니다. Static Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필요합니다. 일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성됩니다. 객체의 생성시에 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받습니다. 하지만 Static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종..

[자바] 소수점 올림, 반올림, 버림

자바에서 긴 소수를 반올림하여 n번째 자리까지 나타내는 방법에 대해 알아보겠습니다. 여러가지 방법이 있겠습니다만 Math.round(); Math.ceil(); Math.floor(); 함수를 활용하거나 String.format(); 함수를 활용하는것이 대표적인 방식입니다. 위 함수들은 실수의 소수점 첫번째 자리를 반올림하여 정수로 리턴시켜줍니다. 하지만 이 메서드를 잘 활용하면 소수점 몇번째 자리까지 나타내는것도 가능합니다. 예를들어 33.777*100을 하면 3377.7가 되겠죠. 여기서 round를 적용시키면 3378이라는 정수가 리턴될것입니다. 여기서 다시 100.0을 나눠주면 실수로 적용되어 나옵니다. (33.78이 나오게 됩니다.) 소수점 둘째 자리까지 나타내고싶으시면 100.0을 곱하였다가 ..

[JAVA] MyBatis(마이바티스) 에서 if문, choose문 사용하기

동적 쿼리(if, choose) 복잡한 형태의 쿼리를 만들다 보면 로직에따라 if문을 추가해야 한다던지 if else 문을 추가해야할 경우가 있습니다. myBatis는 이를위해 동적 쿼리를 위한 기능을 제공합니다. 그중에서도 가장 많이 사용되는 if 문과 choose문을 살펴보겠습니다. 동적쿼리는 XML 매퍼에 지정하게 되는데, JSTL을 사용해봤던 사람들이라면 큰 어려움이 없는 문법입니다. IF age라는 속성의 값이 null이나 빈값이 아닐때 검색조건에 추가하는 구문입니다. SELECT id, name FROM TB_test a WHERE type = 'A' AND age = #{age} Choose if else와 같다고 보면 됩니다. SELECT id, name FROM TB_tes..

자바(Java) 개발자를 위한 남궁성의 자바(Java)의 정석 PDF (2)

남궁성님의 자바(Java) 개발자를 위한 자바(Java)의 정석 입니다. 무한한 감사의 박수를 드립니다. 책의 모든 내용이 포함되어있지 않습니다. 좀더 상세한 내용은 "자바의정석"을 구매하여 보시기 바랍니다. 필요하신 분은 받아가세요~ 용량이 10M를 넘는 관계로 이전 포스팅에서 추가로 다운로드 가능합니다. 자바(Java) 개발자를 위한 남궁성의 자바(Java)의 정석 PDF (1)

반응형