[자바/자료구조] Array(배열)과 LinkedList(연결 리스트) 그리고 ArrayList에 대한 정리[1] - 개념 및 배열 사용법 및 예제
2022. 9. 3. 22:40
몰아 넣기
들어가는 글 자바를 처음 배울 때는 Array에 대해서 많이 배우고 다루었다. 하지만 ArrayList라는 자료구조를 알고 나서 너무 편리해 ArrayList만 써왔고 주변에서도 ArrayList만 사용하였다. 자료구조라는 파트에 들어가 LinkedList를 알게 되었지만 ArrayList보다 불편했다. 하지만 코테를 준비하면서 배열을 많이 이용을 했고 문득 든 생각이 배열과 리스트 그리고 LinkedList는 무슨 차이가 있고 각 쓰임이 어떻게 다른지 알고싶어 공부하여 정리를 하게 되었다. 배열(Array) 과 LinkedList(연결 리스트)란? 공통점 배열과 연결리스트 둘다 여러 개의 데이터를 하나의 이름으로 그룹핑해서 관리 하기 위한 자료구조이다. 차이점 경우 Array LinkedList 크기 ..
[Spring] @Valid, @Validated 에 대해서 정리[2] - @Validated 예제
2022. 9. 1. 21:55
몰아 넣기
들어가는 말 2부는 @validated 에 예제가 있으면 @Valid 예제가 보고싶다면 아래 링크로 이동해주세요 하지만 큰제목 1~ 2에 대한 내용은 1부와 동일합니다. 2022.09.01 - [JAVA/스프링(Spring)] - [Spring] @Valid, @Validated 에 대해서 정리[1] - @Valid 예제 1. Gradle 및 maven 메이븐저장소로 이동해 원하는 버전의 Hibernate Validator Engine 라이브러리를 다운 받으시면 됩니다. // validator implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.0.Final'JAVA 2. @Valid와 @Va..
[Spring] @Valid, @Validated 에 대해서 정리[1] - @Valid 예제
2022. 9. 1. 14:25
몰아 넣기
들어가는 말 @validated @Valid 사용하면 비지니스 로직에 유효성 체크하는 코드가 줄어들어 전체적인 비지니스 로직이 간결해지는 것을 많이 느꼈다. 하지만 항상 쓸 때마다 까먹어 전에 했던 프로젝트를 계속 보는데 이곳 저곳에서 보는것이 매우 불편해, 블로그에 정리하여 한방에 보기위해 글을 정리했습니다. Gradle 및 maven 메이븐저장소로 이동해 원하는 버전의 Hibernate Validator Engine 라이브러리를 다운 받으시면 됩니다. // validator implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.0.Final' @Valid와 @Validated 대해서 @Val..
[스프링] GlobalException 처리 방법 및 예제 정리[2] - CustomException 이용하기
2022. 9. 1. 00:56
몰아 넣기
이전 글 2022.08.30 - [JAVA/스프링(Spring)] - [스프링] GlobalException 처리 방법 및 예제 정리[1](@ControllerAdvice, @ExceptionHandler, @RestControllerAdvice) [스프링] GlobalException 처리 방법 및 예제 정리[1](@ControllerAdvice, @ExceptionHandler, @RestControllerAdvice) GlobalException 단어 그대로 전역으로 Exception을 관리한다는 의미를 포함하고 있다. 전역으로 Exception을 관리하기 위해 @ExceptionHandler를 사용법을 정리했습니다. GlobalException 처리를 하는 이유 케이.. whitewise95.ti..
[스프링] GlobalException 처리 방법 및 예제 정리[1](@ControllerAdvice, @ExceptionHandler, @RestControllerAdvice)
2022. 8. 30. 17:52
몰아 넣기
GlobalException 단어 그대로 전역으로 Exception을 관리한다는 의미를 포함하고 있다. 전역으로 Exception을 관리하기 위해 @ExceptionHandler를 사용법을 정리했습니다. GlobalException 처리를 하는 이유 케이스별로 여러 이유가 있겠지만 나는 아래와 같은 이유로 많이 사용한다. 클라이언트에게 정확한 버그 원인을 보낼 수 있다. 예상가능한 범위의 Exception처리를 하면 해당 Exception에 대해 클라이언트에게 원하는 StatusCode, Message 를 가공해 보낼 수 있어 버그의 원인을 빠르게 파악할 수 있다. 유지보수가 좋다. StatusCode 및 Message를 특정 클래스에서 관리하기 때문에 유지보수가 편하며, 특정 Exception을 관리할..
[IT] 대칭키와 비대칭키에 대해서
2022. 8. 25. 23:42
몰아 넣기
대칭키에 대해서 위 이미지를 보면 클라이언트와 서버는 같은 열쇠를 가지고 있어 말 그대로 대칭키라고 한다. 대칭키는 어떤 정보를 암호화하고 복호화 할 때 사용합니다. 다시 이미지를 보면 클라이언트에서 빨간아래로 향한 열쇠로 암호화를 했고 서버는 같은 키(대칭키)로 복호화를 하였다. 즉, 어떠한 정보가 대칭키를 통해 암호화 되었다면, 똑같은 키를 갖고 있는 사용자가 아니면 해당 정보를 확인 할 수 없습니다. 대칭키의 문제점 클라이언트와 서버에서는 같은 대칭키를 가지고 있다는 것은 결국은 한번은 이 대칭키를 전달해줘야한다는 것입니다. 하지만 이 전달되는 과정에서 누군가 볼 수 있다는 것이 이 대칭키의 문제입니다. 비대칭키에 대해서 비대칭키는 이제 감이 오시나요?! 클라이언트의 키와 서버의 키가 달라서 비대칭..
[OOP] 객체 지향 프로그래밍이란?
2022. 8. 22. 20:31
몰아 넣기
Comment 객체지향 언어인 자바를 배우고 객체지향프로그래밍을 하도록 노력하지만 객체지향이 뭐에요? 라고 물어보면 선뜻 말하기가 쉽지 않다. 물론 나만 그럴 수도 있다. 이미 정리한 내용이지만 다시한번 정리하고 공부하는 의미해서 글을 다시 쓰려고한다. 전의 글을 보고싶다면 아래 링크에서 보면됩니다. 2022.06.10 - [JAVA/객체지향] - [java/객체 지향] 객체 지향 프로그래밍 [java/객체 지향] 객체 지향 프로그래밍 객체지향과 절차지향? '절차지향'이 아닌 '절차적 프로그래밍'이라고 합니다. 사실 조금만 생각해보아도 프로그래밍의 기본 틀이 절차를 기반으로 두고 있는데 이 절차를 지향한다는 것도 이상 whitewise95.tistory.com 객체 지향 프로그래밍(Object Orien..
[collection] 큐(queue) 무엇인가요?
2022. 8. 19. 14:41
몰아 넣기
큐(queue) 란? 큐는 메모리 안 데이터들을 더욱 효율적으로 다루기 위해 만들어진 데이터 참조방식 구조는 '선입선출'의 구조를 가지고 있으며 양쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조입니다. 즉, 제일 처음에 들어온 데이터가 제일 빨리 나가는 방식입니다. 은행 창구 줄서기 예로 든 설명입니다. (1) Enqueue : 큐 맨 뒤에 어떠한 요소를 추가, 마지막으로 온 손님에게 번호표 발부 (2) Dequeue : 큐 맨 앞쪽의 요소를 삭제, 창구에서 서비스를 받은 손님의 번호표를 대기목록에서 삭제 (3) Peek : front에 위치한 데이터를 읽음, 다음 서비스를 받을 손님이 누구인지 확인 (4) front: 큐의 맨 앞의 위치(인덱스), 다음 서비스를 받을 손님의 번호 (5) rear: 큐..