본문 바로가기
반응형

Develop/Java70

[Json] Json의 개념과 형식 개요 JsonNode와 ObjectNode의 차이점을 찾다가 아예 json에 대해 정리하게 되었다. 목차는 다음과 같다. Json의 개념 Java에서 Json 사용하기 - Jackson JsonObject와 JsonArray JsonNode와 ObjectNode Json 관련 사이트들 1. Json이란? key - value가 쌍으로 이루어진 데이터들의 집합 사용자가 key 값을 알고 있으면 데이터를 손쉽게 추출할 수 있다. 각 데이터는 String, Number, Array 등 다양한 형태로 작성이 가능 배열은 '[ ]' 괄호 안에 값들을 담으며, ' , '로 값을 분리하는 것도 가능 프로그래밍 언어의 제약이 거의 없다. 데이터를 전송할 때 최소한의 용량으로 전송하기 위해 사용 2. Java에서 Jso.. 2021. 2. 8.
[Java] String, StringBuffer, StringBuilder 실무 코드를 살펴보다보니 String을 +하기보다는 StringBuilder나 StringBuffer를 통해 append하는 것이 많았다. String에서 +가 효율성이 떨어진다고 듣기는 했는데, 구체적인 개념을 정리하기 위해 글을 쓴다. String, StringBuffer, StringBuilder는 java.lang 패키지에 속한 클래스들이다. 별도로 import를 해주지 않아도 사용이 가능하다. String 문자열 implements Serializable, Comparable, CharSequence jdk 1.5 이후부터 +연산은 StringBuilder 사용해 성능 최적화 (단, 여러줄에 걸쳐 +할 경우 StringBuilder도 여러번 선언) public final class String .. 2021. 2. 2.
[java] this와 this() this : 인스턴스 자신을 가리키는 참조 변수 - 객체의 주소를 가리킨다 this() : 클래스 내부의 생성자를 호출 - 생성자에서만 호출 가능 - 제일 첫 문장에서 호출 가능 - 생성자 자기 자신 호출 불가 (재귀호출 불가) 예제 public class User { private Integer id; protected String account; public String password; public User(Integer id, String account, String password) { this.id = id; this.account = account; this.password = password; } public User(Integer id) { this(id, "a", "b"); } } 참조.. 2021. 1. 26.
[JPA] 더티 체킹 (설명만 보려면 게시글 아래로) 게시글을 수정하는 코드를 작성하고 있다. 순서대로 Controller와 Service 코드의 일부이다. @PutMapping("/api/v1/posts/{id}") public Long update(@PathVariable Long id, @RequestBody PostsUpdateRequestDto requestDto) { return postsService.update(id, requestDto); } @Transactional public Long udpate(Long id, PostsUpdateRequestDto requestDto) { Posts posts = postsRepository.findById(id) .orElseThrow(() -> new Illega.. 2021. 1. 18.
역할, 책임, 협력 관점으로 객체지향 살펴보기 객체 : 상태, 행동, 식별자를 지닌 실체 - 상태: 특정 시점에 객체가 가진 정보의 집합. 객체의 구조적 특징을 표현. - 행동: 외부의 요청에 응답하기 위해 동작하고 반응하는 활동. - 코딩을 할 때 상태가 아닌 '행동'에 초점을 맞추는 것이 좋다. 행동이 상태를 결정한다. - 값은 불변 상태이지만 객체는 가변 상태이다. 행동을 통해 상태를 변경한다. ( ex: 이상한 나라의 앨리스에서 앨리스는 '케이크를 먹음'으로서 '키'라는 상태가 작아진다. ) - 자율적인 객체란, 상태와 행위를 함께 지니며 스스로 자기 자신을 책임지는 객체다. 또한 객체에게 할당되는 책임이 자율적이어야 한다. 지나치게 추상적이거나 지나치게 구체적인 책임은 문제가 된다. - 책임이 자율적일 수록 적절하게 추상화되며, 응집도가 높.. 2021. 1. 15.
[Java] 시간 구하는 방법 비교 Java에서 현재 시간을 구하는 방법은 3가지가 있다. System.currentTimeMillis() new Date() Calendar.getInstance().getTime() System.currentTimeMillis()와 new Date()의 속도 자체는 크게 다르지 않다. 다만 Calendar.getInstance().getTime()의 경우에는 객체 생성부터 윤달 같은 여러 상황을 고려해 계산하기 때문에 상대적으로 느리고 복잡하다. 또한, 10월의 숫자가 '9'이기 때문에 혼란을 야기한다. System.currentTimeMillis()는 객체를 만들지 않고 new Date()는 GC를 이용한다는 점에서 분명 System.currentTimeMillis()가 더 우수한 성능을 보인다. (G.. 2021. 1. 14.
[Java] The type java.??? cannot be resolved. It is indirectly referenced from required .class files The type java.time.LocalDateTime cannot be resolved. It is indirectly referenced from required .class files. 라는 오류가 발생했다. 구글링을 해본 결과, 프로젝트에 jdk가 제대로 인식되지 않는 경우에 종종 발생하는 문제다. 프로젝트 우클릭 - Properties - Java Build Path - Libraries 에서 JRE System Library가 제대로 연동되었는지 확인하자. ( JRE를 클릭하고 Edit 버튼을 누르면 수정할 수 있다. ) JRE System Library 변경하는 방법 ▼ 더보기 이후 화면에서는 Finish, Apply 버튼을 누르면 된다. 나는 jdk 연동이 잘 되었음에도 불구하고 문제가.. 2021. 1. 8.
반응형