분류 전체보기205 [Spring Boot] JPA 테이블 생성 오류 - Error executing DDL "create table 해당 에러문구는 이미 데이터베이스의 예약어가 존재하여 발생하는 에러이다. 필자같은 경우는 User라는 entity를 사용하여 문제가 발생했으며 User -> Users로 수정하여 해당 문제를 해결하였다. entity의 명이 문제가 아니더라도 컬럼으로 사용할 변수명이 예약어로 되어있어도 오류가 발생한다. 예를 들어, 아래와 같은 상황이다. 위와 같이 join이라는 엔터티의 컬럼으로 사용하고 빌드 시 동일한 DDL 에러가 발생하는 것을 확인할 수 있다. 이와 같이 JPA를 사용하는 엔터터에서 예약어를 고려하여 잘 설계해보자. 에러 전문 보기 더보기 org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create tabl.. Error Document/Spring 2022. 6. 8. [Spring Boot] Jackson을 이용하여 Response값 Filtering 방법 (개념/ 예제) 서론 이번 글에서는 Jackson이라는 Dependency를 이용하여 Response의 값을 Filter하는 방법에 대해 알아보려한다. 개념부터 활용 예제까지 정리해보자. Jackson 라이브러리란? (@JsonIgnore, @JsonIgnoreProperties) 스프링 부트 환경에서 우리가 보통 아래와 같이 Json을 사용할 때 이 Jackson 라이브러리를 사용한다. Json -> Object Object -> Json 이 두 개의 변환(직렬화, 역직렬화)은 스프링 부트 웹 스타터 킷 org.springframework.boot:spring-boot-starter-web에 기본적으로 포함된 jackson 라이브러리를 사용하게 된다. 그러나 이번 글에서는 Jackson의 특정 기능을 사용하여 위해 아.. Programming/Spring 2022. 6. 7. [Http Cache] 캐시(Cache)의 동작 원리와 조건부 요청 - 2편 참고 [이번 포스팅은 이전 동작원리와 조건부 요청 1편에 이어 작성하는 글입니다.] 검증 헤더와 조건부 요청 검증 헤더란? 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터를 말한다. Last-Modified, ETag를 사용한다. 조건부 요청 헤더란? 검증 헤더로 조건에 따른 분기하여 사용한다. If-Modified-Since -> Last-Modified 사용 If-None-Match -> ETag를 사용 조건이 만족하면 200 OK를 내려준다. 조건이 만족하지 않으면 304 Not Modified를 내려준다. If-Modified-Since 이후에 데이터가 수정되었다면? [데이터 미변경 예시] 1. 캐시 데이터: 2020.11.10 10:00:00 vs 서버: 2020.11.10 10:00:00 .. Computer Science/Network 2022. 6. 1. [Http Cache] 캐시(Cache)의 동작 원리와 조건부 요청 - 1편 서론 이전 글에서 캐시의 기본 개념에 대해 알아보았다. 이번 글에서는 캐시(cache)의 동작과 조건부 요청 등에 대해 학습 해보려한다. 바로 시작하자. 캐시 기본 동작 캐시가 없을 때 첫번째 요청 두번째 요청 위에 첨부한 이미지를 보면 알 수 있듯 캐시가 없을 경우에는 star.jpg가 필요할 경우 계속 서버로 요청하게 된다. 이렇게 캐시가 없다면 서버 부하가 생길 수 있다. 캐시가 없을 경우 발생하는 단점에 대해 정리하면 다음과 같다. 데이터가 변경되지 않아도 계쏙 네트워크를 통해서 데이터를 다운로드 받아야한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 사용자가 필요로 하는 부분에 대해 느린 속도를 경험할 수 있다. 이제 아래에서 캐시를 사용하면 어떤 효과가 생기는지 알아.. Computer Science/Network 2022. 6. 1. 캐시/ 웹 캐시(Cache)란? (개념/ 사용 이유/ 장점/ 동작 원리) 서론 요즘 웹/ 모바일 등 개발에 있어 캐시 사용을 안한것을 찾기가 어려울 정도로 캐시 사용이 대중화가 되었다. 이 캐시(Cache)가 무엇이고 어떻게 사용하는지 한번 알아보자. 캐시(Cache)란? 캐시(Cache)란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 정리 1. 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 사용한다. 2. 반복적으로 동일한 결과를 돌려주는 경우(특정 이미지 or 썸네일 등) 사용한다. 지역성.. Computer Science/Network 2022. 6. 1. [Spring] 의존성 주입(Dependency Injection)이란? (개념/ 예제/ 총 정리) 서론 이번글에서는 스프링을 이용한 의존성 주입에 대해서 알아보려한다. 의존성 주입(DI)은 크게 4가지 방법이 있다. 1. 생성자 주입 2. 수정자 주입(setter 주입) 3. 필드 주입 4. 일반 메서드 주입 위와 같이 4가지 방법이 있는데, 네가지 중 어떤 방식이 효율적이고 실제 실무에서 어떻게 쓰이는지 간략히 정리해보려한다. 의존성 주입(Dependency Injection)이란? Sprng Framework의 3가지 핵심 프로그래밍 중 하나인 의존성 주입(DI)는 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관게를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다. 여기서 말하는 .. Programming/Spring 2022. 5. 31. [Java] Singleton 패턴이란? (개념/ 사용 이유/ 장단점/ 예제) 서론 이번 글에서는 스프링 컨테이너를 이용하기 전 원초적인 싱글톤 패턴의 구현과 싱글톤 패턴의 개념/ 사용이유/ 장단점 등에 대해 알아보려한다. 싱글톤(Singleton) 패턴이란? 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴을 말한다. 이는 불필요한 인스턴스 생성을 막기 위해 사용한다고 보면 되는데, 메모리 관리에서는 장점이 많아서 가장 많이 쓰이는 디자인 패턴인데 물론 단점도있다. 하나씩 알아보자. 장점 다른 객체의 요청이 들어왔을 때 이미 처음 생성 때 만들어진 인스턴스로만 재활용을 할 수 있어 불필요한 객체 생성을 안해도된다. --> 메모리 효율성 ↑ 하나의 인스턴스를 사용하기 때문에 전역적으로 데이터 공유가 용이하다. 이미 생성해놓았기 때문에 객체 생성 시간이 줄어든다. 단.. Programming/Java 2022. 5. 29. [NoSQL] MongoDB와 Firebase 비교 (개념/ 장 단점/ 성능 차이) 서론 이번 글에서는 NoSQL(Not Only SQL, 비-관계형 데이터베이스)인 Firebase와 MongDB에 대해 정리해보려한다. 이번 포스팅에서 각 솔루션 별로 갖고있는 개념, 장점에 대해 알아보고 언제 어느 상황때 무엇을 써야하는지에 대해서 알아보자. Firebase ? MongoDB ? Firebase와 MongoDB는 모두 애플리케이션 개발자를 위한 강력하고 확장 가능한 최신 데이터베이스 플랫폼이다. 요즘 클라우드가 개발바닥을 지배하게되면서 급격히 부상했다. 두 엔진 모두 유사한 JSON과 문서 데이터 모델 및 스키마를 가진 사후 관계형 데이터베이스이다. 둘 다 애플리케이션 개발과 수평적 확장성을 쉽게 구축하기 위해 사용한다. 이 두 엔진은 결국엔 문서라는 객체를 엔터티로 사용한다. 뒤에서 .. Database/NoSQL 2022. 5. 26. [Vue] Vuex 새로고침 후 데이터 유지 방법 (초기화 발생 이유/ 예제) 서론 Vuex라는 상태관리 패턴을 사용한 페이지에선 새로고침을 하면 State에 저장해놓은 데이터가 초기화된다. 하여, 해당 데이터들이 사라지는 현상에 대해서 어떻게 해결할지 알아보려한다. 내용은 생각보다 간단하니 따라하기만 하면 쉽게 해결할 수 있다. npm vuex-persistedstate 사용하기 필자는 vuex-persistedstate라는 npm을 사용하여 해당 이슈를 해결하려한다. vuex-persistedstate ? vuex에 저장되는 값(State)들을 사용하는 웹 브라우저의 LocalStorage에 저장하여, 새로고침 시에도 해당 로컬스토리지의 값은 없어지지 않기 때문에 해당 값을 가져와 동기화시켜주는 역할을 한다. 아래에서 추가 설명을 하겠지만 해당 기능을 모든 페이지에 적용하면 L.. Programming/Vue 2022. 5. 24. [Java] Optional<T> 이란? (개념/ 종류 별/ 사용 방법/ 예제) 서론 프로그래밍을 하다보면 가장 조심해야할 에러 중 하나가 NPE(NullPointException)이다. 이 NPE는 보통 컴파일할 때 잡지 못하고 실행 중 갑자기 발생하는 에러이기에 잘못 걸리면 엄청 골치아파지는 에러 중 하나이기 때문이다. 그래서 우리는 보통 NPE를 방지하기 위해 null 검사 로직을 넣게 되는데 이 null인지를 검사하는 로직이 추가될 수록 코드가 복잡해지고 지저분해질 수 있다. 이번에 그래서 Java에서 Optional이라는 NPE를 방지할 수 있는 함수형 클래스를 지원해주게 되었는데, 어떻게 사용하고 사용하면 어떤 효과가 있는지 알아보자. NPE(NullPointException) 이란? public static void main(String[] args) { Map map .. Programming/Java 2022. 5. 21. [Vuetify] v-data-table Column Hidden 처리 방법 서론 Vuetify에서 data table의 컬럼을 숨김처리하는 방법에 대한 포스팅이다. 자세한 내용은 Vuetify 공식 홈페이지에 나와있다. 방법 header의 데이터 안에 align : ' d-none'를 붙여주면 된다. 여기서 d-none앞에 공백을 지우면 적용이 안되니 주의할 것. 예제 소스 headers: [ {text: '번호', value: 'noticeNo', align:' d-none'}, {text: '제목', value: 'noticeTitle'} ], 결과 적용 전 적용 후 Vuetify 공식 홈페이지 링크 https://vuetifyjs.com/en/styles/display/#display Display helpers Display helper classes allow you .. Programming/Vue 2022. 5. 20. [Vue] 상태 관리 Vuex란? (개념/ 사용 이유) 서론 이번글에서는 vuex라는 vue에서 컴포넌트간 유기적으로 데이터를 주고받을 수 있는 패턴이자 라이브러리에 대해 알아보려한다. Vuex가 왜 필요할까? Vuex를 알아보기 전 Vue의 특성에 대해 알아보면 이해하기 더 쉬운데, Vue는 가상 DOM을 활용하여 모든 요소를 실시간 반응형 컴포넌트로 생성할 수 있다는 특징이 있다. 그런데 프로젝트의 규모가 커질수록 컴포넌트는 늘어날 수 밖에 없고 늘어난 컴포넌트들 관계에서 데이터를 주고 받는 부모 자식 관계는 점점 복집해질 수 밖에 없다. 이 부모와 자식 관계를 예로 들면, vue를 이용하여 페이지를 만든다하면 header, footer, button, list 등의 여러 컴포넌트로 구성된다. 이렇게 한 페이지에서도 여러 컴포넌트가 합쳐져서 만들어지게 되.. Programming/Vue 2022. 5. 19. 이전 1 ··· 3 4 5 6 7 8 9 ··· 18 다음 💲 많이 본 글