반응형
정적 팩토리 메서드란? 쉽게 말해 생성자로 인스턴스를 생성하지 않고, static Method를 사용해 인스턴스를 생성하는 방식이다. 간단한 예시로 여러 장르(genre)를 가지는 게임(Game) 객체에 대한 코드를 살펴보자. 생성자 public class Game { private String genre; public Game(String genre) { this.genre = genre; } } public static void main(String[] args) { Game game = new Game("FPS"); } 정적 팩토리 메서드 public class Game { private String genre; private Game(String genre) { } public static Gam..
객체지향 프로그래밍을 잘 하기 위한 9가지 원칙을 준수해가며 코드를 리팩토링 하는 과정에서 디미터 법칙에 대한 오해가 한 가지 생겼습니다. Enum 클래스의 경우 열거형 상수 값을 가져 올 때 GameMessage.START.getMessage() 이런 식으로 코드 한줄에 점(.)이 2번 들어가게됩니다. 바로 여기서 오해가 생기게 되었습니다. 디미터 법칙은 코드 한줄에 점(.)을 하나만 허용해야 한다고 되어 있는데, "점(.)이 2번 들어갔으니 이건 디미터 법칙 위반아니야 ?" 라는 오해가 생겼는데요. 이 오해에 대해 정리한 제 생각을 공유해보자고 합니다. 디미터 법칙이란? 디미터 법칙은 결합도가 낮은 설계를 위해 생긴 규칙이지, 점(.) 이 몇번 쓰였냐가 중요한게 아니라 객체지향 측면에서 바라봐야한다고..
인증과 인가JWT와 Session은 서버가 인증을 처리하는 방식으로 먼저 "인증과 인가"의 개념에 대해 알 필요가 있다. 인증인증은 말 그대로 사용자의 신원을 확인하는 것으로,특정 인증 요청(로그인, 이메일 인증 등)이 유효한 사용자인지를 검증하는 과정이다.만약 인증 과정이 없다면 어떻게 될까?인증되지 않은 사용자가 마음대로 상품 정보를 수정하고 주문하는 등 악의적인 행동을 할 수 있을 것이다.그래서 인증 절차를 통해 서버가 인증된 사용자를 검증하는 과정이 필요하다. 인가인가는 이미 인증된 사용자에게 특정 자원에 대한 접근 권한을 부여하는 과정이다.예를 들어 일반 사용자 "USER"와 관리자 "ADMIN"이 있다고 가정해보자.USER는 ADMIN에 접근 할 수 없어야하고 ADMIN은 USER보다 더 많은..
Ajax와 Axios는 웹 개발에서 비동기 통신으로 데이터를 주고받기 위해 사용되는 기술들이다. 이 두 기술들에 대해 혼동이와서 어떤 차이점이 있는지 정리해보려 한다. 비동기 통신에 대해 쉽게 이해하고 싶다면 아래 링크를 참고하면 도움이 된다. 동기와 비동기의 개념 및 차이에 대해 쉽게 알아보자. 동기(Synchronous) 방식 동기란, 말 그대로 동시에 일어난다는 뜻입니다. 요청을 하면 동시에 응답을 한다는 약속으로, 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 응답(결과)가 주 hstory0208.tistory.com Ajax (Asynchronous JavaScript and XML) Ajax는 약자 그대로 JavaScript, XMLHttpRequest 객체를 사용하여 웹 브라우저와..
Web과 WAS란 ? 웹 서비스의 구조에 대해 알아보자 Web Server (웹 서버) 웹 서버란, HTTP 프로토콜을 기반으로 동작하는 서버로, 동작하는 방식은 클라이언트가 웹 서버에 HTTP 요청을 보내면 웹 서버는 HTTP로 응답하여 정적 리소스를 제공합니다. 대표 hstory0208.tistory.com 보통 웹 서비스는 아래의 그림처럼 Client ↔ Web Server ↔ WAS ↔ DB 이런식으로 요청 , 응답을 주고 받는다. WAS만으로도 웹 서비스를 제공할 수 있는데 왜 앞에 Web 서버를 붙여 같이 사용하는걸까? 그 이유는 다음과 같다. 1. 성능 향상 웹 서버는 정적 콘텐츠(이미지, CSS, JavaScript 등)의 처리에 최적화되어 있다. 따라서 웹 서버가 정적 콘텐츠를 처리하고 ..
XML과 JSON 기존에는 XML, JSON 파일 포맷으로 데이터를 저장하고 주고 받는데 했었다. 하지만 이 두 파일 포맷은 정해진 포맷 규칙 때문에 데이터가 많아진다면 작성하기가 번거롭고 읽기가 힘들다는 불편함이 있다. 다음은 같은 데이터를 XML과 JSON로 작성하여 비교해본 것 이다. 물론 JSON이 XML의 태그 문법같은 불편함을 해소하고자 나온 파일 포맷이라 XML보다는 좀더 편리하지만 그래도 열고 닫는 괄호 {}, []들로 인해 불편함이 있다. YAML이란? YAML은 XML과 JSON이 사용하기 복잡하고 불편함 점을 해결하기 위해 2001년 Clark Evans에 의해 최초 제안되었다. 원래는 "YAML Ain't Markup Language" "마크업 언어가 아니다" 라는 뜻으로 불렸으며 ..