전체 글

나만의 기록... 까먹지말자...
· Spring
QueryDsl서브쿼리를 사용하는 방법에 대해서 내용을 한번 정리해보려고 한다. 회사 내부 신규 프로젝트의 경우 Spring Boot + JPA를 기반으로 프로젝트를 진행하고 있다. 내부적으로 쿼리 작업을 하면서 Spring Data JPA에서 기본적으로 제공해 주는 CRUD 메서드를 사용하더라도 데이터를 얻는 데에 많은 어려움이 존재했고, QueryDsl 라이브러리를 통해서 원하는 데이터를 얻어내고 있다. 그중 많이 사용하지만 매번 까먹는 내용인 서브 쿼리 사용 방법에 대해서 정리를 하려고 한다.😀 ⚡QClass 생성 가장 기본적으로 QueryDsl을 사용하려면 먼저 QClass를 생성해야 한다. QClass는 Querydsl에서 사용하는 엔티티의 필드와 연산자에 대한 메타 정보를 제공하는 클래스이다...
· CS
⚡ 개요 업캐스팅(upcasting)과 다운캐스팅(downcasting)은 객체 지향 프로그래밍에서 클래스의 상속과 관련된 개념이다. 말 그대로 업캐스팅은 하위 클래스에서 상위 클래스로 형 변환하는 것을 의미하고 다운캐스팅은 상위 클래스에서 하위 클래스로 형 변환을 하는것을 의미 한다. ⚡ 예시 다음과 같은 클래스 구조가 있다고 가정해보자. class Animal { public void move() { System.out.println("Moving..."); } } class Dog extends Animal { public void bark() { System.out.println("Barking..."); } } 위의 코드에서, Dog 클래스는 Animal 클래스를 상속하고 있다. 이 경우, Do..
· Java
⚡ 개요 보안이 중요해지고 있고, Tomcat 구동시 기본적으로 보여주는 error 페이지를 보여주면 안된다. 우리가 개발하고 배포하는 정보가 포함되어 있기때문이다. 에러 페이지를 내가 설정한 페이지로 변경하는 방식에 대해서 정리 하려고 한다. ⚡ 에러 페이지 설정 및 설명 1. spring boot를 사용하지 않고, freamWork만 사용하고 있다고 가정을 하면 web.xml에서 설정이 가능하다. (보통의 레거시 시스템들을 보면 이렇게 설정 되어 있다.) ❗ 확인 사항 1. error-code를 설정하지 않으면 실제 해당 에러가 발생 했을때 정상적으로 페이지가 호출되지 않는다. 2. location 설정시, 맨앞에 "/"를 하지 않은 경우 정상적으로 페이지가 호출되지 않는다.
· Front/Vue
⚡ 개요 vue 를 사용하는데 있어서 기본적인 사용 방법에 대해서 정리를 하려고 한다. 프론트쪽 개발도 간간히 같이 하고 있는데 jsp를 개발할때와는 다르게 내 기준으로는 작업을 하는데 이해가 안되는 부분도 많고 왜 이렇게 동작하는지 이해가 안가는 부분이 많아서 최근에 백엔드 공부와 별개로 정리 하면서 공부를 하고 있다. ⚡ 라이브러리 정리 📒 Vuex 애플리케이션의 상태를 효율적으로 관리하기 위한 중앙 집중식 저장소다. Vue Store는 일반적으로 Vuex라는 Vue.js 공식 상태 관리 라이브러리를 사용하여 구현된다. (vue3.x 에서는 공식 상태 관리 라이브러리가 pinia로 바뀌었다.) Vuex를 사용하면 애플리케이션의 모든 컴포넌트에서 전역으로 상태를 관리할 수 있으며, 상태의 변화를 추적하..
· Front/Vue
⚡ 개요 회사에서 프로젝트를 개발하면서 vue.js를 처음 사용하게 되었다. 처음에는 아무것도 모르고 사용을 했고 어느 정도 사용했을 때는 내가 잘 알고 사용하는 것이 맞는가? 이렇게 사용해도 되는 건가? 에 대한 의문이 들었고 vue에 대해서 기본적인 내용과 추가적으로 내가 개발하면서 느꼈던 내용들을 정리해놓으려고 한다. ⚡ vue란 무엇인가? 탄생 배경 및 기본적인 개념 Vue.js는 Evan You가 개인적으로 개발하면서 AngularJS와 React.js를 참고하여 만든 자바스크립트 프레임워크이다. Vue.js의 가장 큰 특징은 간결한 문법과 컴포넌트 기반 아키텍처, 그리고 반응형 UI를 제공한다는 것이다. Vue.js는 MVVM(Model-View-ViewModel) 아키텍처를 기반으로 한다. ..
· Java
🤔디자인 패턴은 소프트웨어 디자인에서 공통된 문제들을 해결하는 데 도움이 되는 설계 방법론 ⚡디자인 패턴에 대해서 알아야 되는 이유 패턴에 대해 아무것도 알지 못해도 프로그래머로 일할 수 있다는 것이다. 실제로 많은 프로그래머가 패턴에 대한 아무런 지식 없이 업무를 수행하고 있다. 또 자신도 모르는 사이에 일부 패턴들을 구현하고 있는 경우도 있다. 그럼에도 왜 패턴을 배워야 하는지, 그 이유들을 정리해 보겠다. 디자인 패턴은 소프트웨어 디자인의 일반적인 문제들에 대해 시도되고 검증된 해결책들을 모은 것이다. 이러한 문제들을 다루지 않더라도 패턴을 알고 있으면 여전히 쓸모가 있는데, 그 이유는 패턴을 배우게 되면 객체 지향 디자인의 원칙들을 사용해 많은 종류의 문제를 해결하는 방법들을 배울 수 있기 때문입..
일단 내용을 정리하기에 앞서 내가 추천받은 책을 한 권 소개를 하려고 한다. 추천해 주신 분은 같이 개발하시는 선임님께서 먼저 읽어 보고 추천을 해주셨고 구매를 하게 되었다. 책의 내용을 간략하게 소개하자면 책을 지은 사람은 마틴 파울러라는 ThougthWorks의 수석 과학자이며 우리가 개발을 하면서 한 번쯤은 들어본 IOC(제어 역전)와 DI(의존성 주입)의 용어를 대중화시킨 분 이시다. 😲 리팩터링에 대해서, 리팩터링의 이유, 리팩터링을 해야 할 곳을 찾고 싶다면?, 리팩터링 실습 등 내용이 굉장히 알차다. 물론 책을 한번 쭉 정독했다고 해서 개발된 소스를 다이내믹하게 수정한다거나 바로 눈에 띄는 곳이 별로 없을 수 있지만 개발을 하면서 "아 이거 책에 있었던 거 같은데 한번 봐야겠다." 하면서 계..
· DevOps
⚡git 명령어 설명 git에서 자주 사용되는 명령어를 중심으로 내용을 정리 해보려고 한다. 👉git help [명령어] 가장 기본적인 help 명령어 이다. 명령어를 입력하는 부분에 원하는 명령어를 입력하면 자세한 설명과 사용 방법을 알수 있다. 👉git init git init은 새로운 git 저장소를 생성합니다. 명령어를 실행할 때 현재 디렉토리가 git 저장소로 초기화되며, .git 디렉토리가 생성된다. 👉git clone git clone은 기존의 git 저장소를 복제한다. 원격 저장소의 URL을 입력하면 해당 저장소를 로컬 컴퓨터로 복제한다. 👉git add git add는 변경된 파일을 staging area에 추가합니다. 새 파일, 수정된 파일, 삭제된 파일 등을 staging area에 ..
· CS
(하아.... 😭😭😭) Git.... Git에 대해서 개념 및 어떻게 사용해야하는지에 대해서 다시 한번더 정리를 하겠지만.. 내가 경험해본 위험성에 대해서 공유 하고 정리를 해보려고 한다. 회사에서 같이 협업을 해서 웹 개발을 진행중이였으며, Git으로 형상 관리를 하고 있었다. 우리는 이미 많은 커밋과 푸시를 했으며 작업이 어느정도 진행된 상태였다. 나는 커밋된 특성 작성자의 변경이 필요했고 해당 부분에 대한 내용을 찾기 시작했다. 검색을 해본 결과 일괄로 저장하는 스크립트를 찾아서 적용을 했다. 스크립트는 아래와 같다. git filter-branch -f --env-filter ' WRONG_EMAIL="체크할 이메일" NEW_NAME="변경할 사용자명" NEW_EMAIL="변경할 이메일" if [..
HaeTae
soTech