WEB
-
[React] React RouterWEB/ReactJS 2023. 6. 28. 13:33
React Router란? React Router는 브라우저의 URL 경로에 따라 다른 컴포넌트를 렌더링하고, 애플리케이션의 상태를 업데이트하며, 페이지 전환을 처리하는 기능을 제공합니다. 이를 통해 사용자가 다른 경로로 이동하거나 애플리케이션의 상태를 변경할 때 페이지 전체를 다시 불러오지 않고도 부분적인 업데이트를 할 수 있습니다. V5 Router.tsx import { BrowserRouter, Routes, Route } from "react-router-dom"; import Header from "./components/Header"; import Home from "./screens/Home"; import About from "./screens/About"; function Router(..
-
[React] 리액트 styled-componentsWEB/ReactJS 2023. 6. 26. 14:04
💡 styled-components는 React에서 스타일을 적용하기 위한 강력한 라이브러리입니다. 이를 사용하면 JavaScript 코드 내에서 CSS 스타일을 작성하고 컴포넌트에 적용할 수 있습니다. install npm i styled-components styled-components install error styled-compoennts intsall 시에 아래와 같은 error를 마주한다면 npm ERR! Cannot read properties of null (reading 'edgesOut') 다음과 같이 해결 npm install styled-components@latest // or yarn 사용 yarn install styled-components styled-components ..
-
[SpringBoot] SpringBoot @ControllerAdviceWEB/SpringBoot 2023. 4. 13. 18:28
@ControllerAdvice는 스프링 프레임워크에서 제공하는 애노테이션으로, @Controller가 붙은 클래스에서 발생하는 예외를 전역적으로 처리할 수 있는 방법을 제공합니다. @ExceptionHandler, @InitBinder, @ModelAttribute와 같은 애노테이션을 이용하여 전역적으로 적용할 수 있는 메서드를 정의할 수 있습니다. 보통 예외 처리나 공통적인 모델 객체를 포함하는 기능을 구현할 때 사용됩니다. @ModelAttribute @ModelAttribute 어노테이션을 컨트롤러 메소드의 매개변수나 메소드 내부의 변수에 적용하면, 해당 변수에 전달받은 파라미터 값이 자동으로 바인딩됩니다. @ModelAttribute 어노테이션을 @ControllerAdvice 어노테이션이 적용..
-
[Spring] QuerydslWEB/Spring 2023. 2. 15. 15:30
Querydsl이란? HQL(Hibernate Query Language) 쿼리를 타입에 안전하게 생성 및 관리할 수 있도록 해주는 프레임워크 Querydsl을 통하여 생성되는 정적 Q-type 클래스를 이용하여 SQL과 같은 쿼리를 생성하도록 도와주는 프레임워크. Querydsl이 필요한 이유 JPA를 사용할 때, 복잡한 쿼리가 필요할 경우, JPA 자체 제공 메서드만으로 해결하기에 어려움이 있음. @Configuration public class QueryDslConfig { // 영속성 관리 어노테이션 @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory jpaQueryFactory() { retur..
-
[Spring] JPAWEB/Spring 2023. 2. 15. 15:16
JPA란? 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 ORM에 대한 자바 API 규격이며 Hibernate, OpenJPA 등이 JPA를 구현한 구현체 JPA 장점 생산성이 뛰어나고 유지보수가 용이 sql을 직접적으로 작성하지 않고, 객체를 사용하여 동작 DB컬럼이 추가될 때마다 테이블 수정이나 SQL 수정하는 과정, 값을 할당하거나 변수 선언 등의 부수적인 코드가 줄어듦 DBMS에 대한 종속성이 줄어든다. DBMS가 변경된다 하더라도 소스, 쿼리, 구현 방법, 자료형 타입 등을 변경할 필요가 없다. JPA 단점 JPA의 장점을 살려 잘 사용하기 어려움 복잡한 쿼리를 사용할 때 불리 잘못 사용할 경우, 실제 SQL문을 직접 작성하는 것보다 성능이 떨어짐 Entity 클래..
-
[Spring] Aop와 ScopeWEB/Spring 2022. 10. 31. 09:27
AOP란 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍입니다. 쉽게 말해서 어떠한 로직을 기준으로 핵심적인 관점과 부가적인 관점으로 분류 후 각각의 관점을 기준으로 모듈화한다는 뜻입니다. 여기서 말하는 핵심적인 관점은 비즈니스 로직이 될 수 있고 부가적인 관점은 핵심 로직이 실행되기 위해 행해져야 하는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있습니다. Aspect 흩어진 관심사(Crosscutting Concerns)를 묶어서 모듈화 한 것. 하나의 모듈. Advice와 Point Cut이 들어간다. Target Aspect가 가지고 있는 Advice가 적용되는 대상(클래스, 메서드 등등)을 말한다. Advice 어떤 일을 해야할 지에 대한 것. 해야할 일들..
-
-
[Node.js] 비밀번호 암호화WEB/NodeJS 2022. 10. 12. 22:31
많은 사람들은 각각의 다른 SNS 내에서 같은 비밀번호를 공유하는 경우가 많다. 이럴 경우, 하나의 사이트에서만 해킹을 당해도 해당 비밀번호를 이용하여 다른 SNS에 접속이 가능하다. 이를 해결하기 위해 비밀번호 암호화해서 DB에 저장해야 한다. 1. bcrypt 설치 npm i bcrypt 2. bcyrpt 사용 - 비밀번호를 해쉬화 함 - bcyrpt.hash(비밀번호, 몇 번 해싱할 것인지); userSchema.pre('save', async function(){ console.log("users password: ", this.password); this.password = await bcrypt.hash(this.password, 5); console.log("hash password: ", ..