Category: Dev

Java Collection - Stack

Stack은 사전적으로는 ‘더미’를 의미한다. 이 개념을 처음 공부할때 데이터를 수직으로 관리하는 자료구조라고 생각하며 이해했다. Stack은 나중에 들어온 데이터가 먼저 나간다고 해서 LIFO(Last In First Out)의 형태를 띈다고 한다. 따라서 Stack은 배열과 다르게 첫번째로 삽입된 데이터의 인덱스가 0이 아니라 가장 마지막에 삽입된

Equals와 hashCode

이전 포스팅(DTO와 VO 그리고 Entity의 차이)에서 살짝 언급했는데, 이제서야 정리를 하게되었다. equals()와 hashCode()가 무엇이고, 그래서 이들을 언제 사용하는지에 대해 정리해보았다. 무엇인가두 메소드 모두 Object의 메소드이다. equals()는 객체의 값의 일치여부(boolean)을 반환하는 타입이다. hashCode()

AWS EC2 Timezone, Locale 변경하기

AWS EC2를 사용하면서 locale을 변경하기 위해서 구글링하다가 알게된 방법을 정리한다. 본 포스팅은 AWS EC2를 사용하며 정리한 글이지만, 당연하게도 모든 리눅스에서도 사용되는 방법이다. 현재 EC2의 날짜를 보고 싶다면 아래의 명령어를 입력하면 볼 수 있다. 1$ date 또 현재 locale 설정 역시 아래 명령어로 확인할 수 있다. 1$

DTO와 VO 그리고 Entity의 차이

본 포스팅은 우아한Tech에 올라온 라흐님의 발표영상 DTO vs VO 영상을 보고 정리한 포스팅이다. 넥스트 스텝에서 클린코드 과정을 이수하면서 DTO와 VO의 차이를 제대로 이해못하고 미션을 수행하다가 어려움에 부딪쳐서 공부하다가 시청하게된 영상이다. 라흐님께서 잘 정리해주신덕분에 이해를 하게되어 이를 블로그로 정리하게 되었다. DTODTO(Data

스프링 웹 계층구조

스프링부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 프로젝트를 실습하던중, 정리해보면 좋을 부분인것 같아서 정리해보았다. Web Layer 컨트롤러와 뷰 템플릿 영역 외부 요청과 응답에 관한 전반적인 영역 @Filter, 인터셉터, @ControllerAdvice 등 Service Layer @Service 에 사용되는 서비스 영역 일

인텔리제이에서 Github Token 사용하기

평소 터미널로 버전관리를 했는데, 얼마전 코드리뷰를 받는 과정에서 Github Token을 발급하여 인텔리제이에 적용할 일이 발생했다. 리뷰어께서 CodeWithMe 기능을 이용해 버전관리 관련 도움을 주려고 하는 과정에서 인텔리제이에 Github Token이 안되있어서 매번 웹으로 로그인했기 때문이다. Github에서 이중인증을 사용한다면 인텔리제이

객체지향 설계 원칙 5가지

지난 포스팅 객체지향 주요특징에 이어 이번엔 객체지향의 주요 5가지 원칙을 정리해보려고 한다. 객체지향 5가지 원칙인프런에서 스프링 핵심 원리 - 기본편을 수강하며 정리한 내용이다. 토비의 스프링을 읽으면서 템플릿 메소드에 대한 내용이 쉽게 와닿지않아서 수강한 내용이었는데, 도움이 많이 되었다. SRP (Single Responsibility Princ

객체지향 주요특징 4가지

객체지향을 공부하며 정리한 포스팅이다. 객체지향의 주요 특징 4가지와 원칙 5가지를 구분하여 2개의 포스팅으로 정리했다. 객체지향 특징 4가지일반적으로 자바라는 언어를 공부하면 공부하게 되는 4가지 특징들이다. 추상화 캡슐화 상속 다형성 추상화 추상화는 실제 세상을 객체화하는게 아니라 필요한 정보만을 중심으로 간소화하는것을 의미한다. 실제 지형도보다

자바에서의 다중상속 문제(a.k.a. Diamond Problem)

자바에서는 왜 다중상속을 허용하지 않는걸까? 그리고 어떻게 인터페이스를 통해서는 다중상속이 가능한걸까? 이를 알아보기 위해 아래와 같은 상속관계를 갖는 클래스들을 생성해보겠다. Child -> Mother -> GrandMother, Father -> GrandMother Person.java 1234567public class Pers

Gitignore 새로 반영하기

이미 변경관리에 의해 관리되고 있는 파일이라면 이후에 gitignore에 추가하더라도 변경관리에서 계속 추적이 될 수 있다. 이 때 gitignore를 변경관리에 적용하기 위해서는 변경관리가 추적중인 캐시 파일을 삭제하고 새로 올려야 한다. 이 방법을 정리해보았다. gitignore에 application.properties 파일을 무시하도록 추가해두