본문 바로가기

전체 글

(22)
[SPRING] Spring AOP 1. AOP(Aspect Oriented Programming)란? 관점 지향 프로그래밍이라고 부른다. IOC가 낮은 결합도와 관련된 것이라면 AOP는 높은 응집도와 관련이 있다. 서비스들의 비즈니스 메소드들은 복잡한 코드로 구성되어 있는데 그 중 핵심 로직은 얼마 안되고 대부분 트랜잭션, 로깅 처리, 인증과 관련된 코드들이 있다. 이럴 때 비핵심이지만 꼭 필요하고 공통화할 수 있는 부분을 따로 빼서 관리(횡단 분리)하는 것이다. 2. AOP 용어 조인포인트(Joinpoint) : 클라이언트가 호출하는 모든 비즈니스 메소드, 조인포인트 중에서 포인트 컷 되기 때문에 포인트컷의 후보로 생각할 수 있다. 적용 시점. 포인트컷(Pointcut) : 특정 조건에 의해 필터링된 조인포인트, 수많은 조인포인트 중에..
[SPRING] Spring Boot 단위 테스트 (1) - Controller Spring Boot 단위 테스트에 대해 알아보자. 이 기능을 알기 전에는 아마도.. 직접 웹을 띄워 테스트를 하거나 API tester를 이용했던 것 같다. tomcat이 올라갈 때 까지 기다리고,, 에러나면 어디서 났는지 로그 보고,,찾고,, 인류발전 만만세,,😆 ❓ 단위테스트란? TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 말한다. (필수는 아님 => 그러나 지향해야한다.) ※ TDD? 테스트 주도 개발이다. 테스트 코드를 먼저 작성한 후 개발을 한다. 순서는 레드 그린 사이클을 따른다. 레드 그린 싸이클 1. RED: 항상 실패하는 테스트를 먼저 작성 2. GREEN: 테스트가 통과하는 프로덕션 코드를 작성 3. REFACTOR: 테스트가 통과하면 프로덕션 코드를 리팩토링 ❓..
[JAVASCRIPT] - vue.js로 차트 만들기(2) 차트에 필요한 상태를 관리하기 위해 Vuex라는 것을 알아보자. Vuex란? 상태 관리를 위한 패턴이자 라이브러리이다. 뷰의 반응성 체계를 효율적으로 활용하여 화면을 업데이트한다. ※ 상태? Vue에서 data()를 상태(state)라고 부른다. 즉, 컴포넌트간 공유할 수 있는 데이터이다. 상태 관리가 왜 필요한가? 컴포넌트 기반 프레임워크에는 작은 단위로 쪼개진 여러 개의 컴포넌트 화면을 구성한다.이에 따라 컴포넌트 간의 통신이나 데이터 전달을 유기적으로 관리하기 위해 상태 관리가 필요하다. 그렇다면 왜 Vuex? prop이나 ref(부모, 자식 컴포넌트) 등으로 컴포넌트 간 데이터를 공유할 수 있는데 Vuex가 필요한 건 왜일까? 공통의 상태를 공유하는 여러 컴포넌트가 있는 경우 중첩된 컴포넌트를 통..
[SPRING] Spring boot - 외부 jar 추가 후 테스트하기 해시 알고리즘(자바)을 jar로 만들고 프로젝트에 라이브러리 추가하여 구동하고 싶었다. 1. 모듈화할 Class 작성 사용자로부터 문자열을 byte 배열로 전환하여 이 데이터와 hash 전환할 타입(MD4, MD6, SHA-1, SHA-126...)을 파라미터로 받고 해시로 전환해주는 Util 클래스를 작성하였다. 2. JAR 배포 자바 프로젝트 우클릭 -> Export -> JAR file 선택 -> 경로 지정 후 저장 3. JAR를 추가하고자 하는 프로젝트 설정(Spring Boot , Gradle 기준) 1) 프로젝트에 libs 폴더를 추가하고(root 경로) 방금 만든 JAR를 추가한다. 2) build.gradle 세팅 dependencies { implementation 'org.springf..
[JAVASCRIPT] - vue.js로 차트 만들기(1) Vue.js를 통하여 차트를 구현하는 간단한 프로젝트를 만들고자 한다. 오늘은 Vue.js에 대한 기초 설정과 문법들을 알아보는 첫번째 포스팅이다. Vue.js Vue는 사용자 인터페이스를 만들기 위한 프레임워크이다. MVVM(Model-View-ViewModel) 패턴을 따르며 어플리케이션 로직과 UI 분리를 위해 설계되었다. 데이터 바인딩과 화면 단위를 컴포넌트 형태로 제공하며, 관련 API를 지원하는 데에 목적이 있다. 양방향 데이터 바인딩을 지원하며 가볍고 빠르다. 문법이 단순하고 간결하여 초기 학습 비용이 낮고 접근성이 좋다. MVVM 패턴? Backend와 Client의 마크업 & 데이터 표현단을 분리하기 위한 MVC 패턴 방식에서 기인된 방식으로, Model의 값들을 ViewModel에 넣어..
[Etc.] 프론트엔드 총정리 보호되어 있는 글입니다.
[Etc] Java/Spring 정리 보호되어 있는 글입니다.
[JAVASCRIPT] promise와 callback 자바스크립트에서 비동기 처리를 할 때 promise와 callback을 사용한다. 오늘은 이 둘의 차이점에 대해서 알아보려고 한다. 콜백 지옥(Callback hell) 콜백 지옥은 콜백 함수를 익명 함수로 연속해서 사용할 때 발생하는 문제이다. 이벤트 처리나 서버 통신과 같은 비동기적인 작업을 수행할 때 이런 형태가 자주 나타나는데, 가독성이 떨어지고 수정하기가 어렵다. function async() { setTimeout((name) => { console.log(name); setTimeout((age) => { console.log(name + " " + age); setTimeout((sex) => { console.log(name + " " + age + " " + sex); }, 500, "..