oereo
'분류 전체보기' 카테고리의 글 목록

분류 전체보기

Spring

AdminBoard 라이브러리 만들기 - 2

들어가기 전에 저번에 라이브러리를 다시 제작하는 이유와 개발을 할 때 중점으로 고려해야할 사항들에 대해서 소개를 하였습니다. 이번에 멀티모듈을 어떻게 적용을 했는지에 대해 설명을 드리도록 하겠습니다. 1. 멀티모듈 적용 멀티모듈을 적용하려한 이유는 각 기능들을 관심사 별로 분리하고자 하기 위함입니다. 많은 Class들과 비슷한 기능들에 대해서 묶어서 관리하는 것이 개발 생산적인 측면에서 유리하다고 생각했기 때문에 멀티모듈을 적용할까 했었는데.. 이는 사실 2가지의 어려움이 생기게 되었습니다.. 일단 멀티 모듈 적용을 하고자 했던 예시는 설명드리겠지만 어려움에 대해서 설명을 드리자면 다른 Spring 라이브러리들 중 멀티모듈을 적용한 예시를 보면 그에 더 많은 기능과 코드들이 있었습니다. 굳이 멀티모듈을 ..

Spring

AdminBoard 라이브러리 만들기 - 1

들어가기 전에 기존에 OurBoard 라는 이름의 라이브러리를 만들어보면서 연습한 적이 있습니다. 간단히 OurBoard 라이브러리에 대해 설명을 드리자면 Django의 admin 라이브러리의 역할을 해주는 Spring용 admin 라이브러리라고 생각하시면 됩니다. 여러가지의 효용성을 이 라이브러리를 만들면서 높이고 싶었는데 - Django를 Spring보다 먼저 시작하는 이유는 배움의 시작이 더 쉽기 때문이 아닐까? - Java보다는 Python을 익히면서 개발하는 것이 좀 더 편하기 때문이지 않을까? - Django에서는 admin을 통해서 데이터베이스의 데이터를 조회하거나 확인하고, 기본적인 CRUD, Sorting, Filtering 을 제공 해주다보니 대시보드를 따로 개발자가 만들지 않아도 되서..

디자인패턴

Composite Pattern

들어가기 전에 Composite Pattern도 사실 Interface를 잘 알고 나서 시작하면 좋을 듯 합니다..! 1. Composite Pattern 컴포지트 패턴 (Composite pattern)이란 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. - 위키백과 Component : Client가 Composite 오브젝트를 다루기 위한 인터페이스. 집합 관계에 포함시킬 수 있는 객체의 인터페이스. Leaf: 자식이 없는 객체의 행동을 정의. 트리구조상 맨 밑에 부분. Composite: 자식이 있는 객체의 행동을 정의. 약간 말이 어려울 수 있는데 객체들로 이루어진 트리를 가진 패턴이라고 생각하면 됩니다. ..

디자인패턴

Strategy Pattern

들어가기 전에 전략패턴을 처음 들어본 것은 예전에 Java 스터디를 하면서 Next Challenge 과제 중 레이싱게임을 구현하는 것을 연습해보면서 였던 것 같다. 코드 리뷰 중에 레이싱카의 움직임에 대해 전략 패턴을 사용하면 어떠냐 라는 리뷰를 받은 적이 있었는데 그 때에는 전략 패턴이 왜 필요해서 써야되는지 감이 안 온 상태로 접근하게 된 것 같다. 이번에 전략 패턴에 대해서 정리해보고 전략 패턴이 객체지향관점에서 어떤 장점이 있는지 다뤄볼 예정입니다. 1. Strategy Pattern 기본 설명 전략 패턴의 기본적인 Flow는 아래의 이미지와 같습니다. 결국에 Interface를 쓰고 유연하게 그리고 느슨한 결합을 통해 설계를 할 수 있는 부분이 있는데 기존의 코드를 작성할 때와의 차이점을 한번..

디자인패턴

Observer Pattern

들어가기 전에 Observer Pattern과 유사한 패턴이 Pub/Sub 패턴인 것 같은데 Observer Pattern을 사용했을 때 얻을 수 있는 장점과 단점으로 정리를 할까 합니다. 이 Observer Pattern이 어떻게 사용되는지 알면 좋을 것 같아서 Java 예제를 통해서 정리할 예정입니다. 1. Observer Pattern 개념 옵저버 패턴(Observer Pattern)은 객체의 상태 변화를 관찰하는 옵저버(관찰자)들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 notify를 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴 출처 : https://zerocodings.com/22#:~:text=%EC%98%B5%EC%A0%80%EB%B2%84%20%ED%8C%..

운영체제

MultiThread 동기화?

들어가기 전에 이전 포스트에서 Process와 Thread에 대해 정리해보고 차이점을 정리해봤는데 아쉬운 점이 MultiThread에 대해서 너무 조금 다룬 것 같다는 생각이 들었습니다. 이번 포스트에서는 MultiThread의 문제점, 동기화 방법에 대해서 다뤄볼 예정입니다. 1. MultiThread 문제점 MultiTread에서 일어나는 문제점에서 MultiProcess에서 일어나지 않는 문제점이 하나 있습니다. 공유하는 자원이 있기 때문에 발생하는 문제점인데 MultiProcess는 프로세스 간의 공유하는 자원이 없습니다. 독립된 메모리 구조를 가지고 있기 때문입니다. 하지만 MultiThread의 경우에는 공유된 자원(Heap, Data, Code)에 대해서 동시에 접근을 할 수 있기 때문에 문..

운영체제

Process & Thread

들어가기 전에 보통 코딩할 때마다 멀티쓰레드 구현해야 한다 이런거는 쓰레드를 잘 써야한다.. 등등 너무 많이 듣는 얘기인데 그 개념인 Process와 Thread에 대해서 다뤄볼까 합니다. 1. Process & Thread 개념 우리는 흔히 Process와 Thread에 대해서 아래와 같이 알고 있습니다. Process : 프로그램을 메모리 상에서 실행중인 작업 Thread: Process 안에서 실행되는 여러 흐름 단위 근데 위와 같이 알고만 있다면 Process와 Thread에 대해서 이해하기 힘든 점이 있습니다. 저희가 사용하는 Thread를 이해하는데에도 약간의 어려움이 있을 것입니다. 1.1 Process 프로세스는 각각 독립된 메모리 영역인 Heap, Code, Stack, Data를 가지고..

Web

JWT 사용법

들어가기 전에 REST API를 개발하는 입장에서 JWT는 한번쯤은 들어봤거나 JWT를 사용해서 인증을 하는 작업을 해보셨을 거라 생각합니다. 이번 글에서는 JWT에 대한 개념과 JWT를 어떻게 사용하면 좋을지에 대해서 다뤄보도록 하겠습니다. 01. JWT 1.1 개념 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰입니다. Self-contained 방식으로 JWT안에 인증에 필요한 모든 정보를 자체적으로 지니고 있는 특징이 있습니다. JWT를 사용하는 부분에 대해서도 문제점이 있긴 하지만 Cookie또는 Session 기반 인증에서 문제점이 드러났기 때문에 JWT를 많이 사용합니다. (그렇다고 해서 JWT기반 인증 시에 Cookie를 사용하지 않는 것은 아닙니다!) Cookie의 경우에..