Backend
-
[SpringBoot Error] java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 에러 해결하기Backend/Spring 2022. 8. 18. 16:48
Problem 스프링에서 데이터베이스를 사용하기 위해 datasource bean 등록하며 JDBC설정을 해주어 mysql을 연동하였다. 코드는 다음과 같다. url, username, password를 설정하고 HikariDatasource 사용하도록 하였다. @Bean public DataSource dataSource() { var dataSource = DataSourceBuilder.create() .url("jdbc:mysql://localhost/order_mgmt") .username("root") .password("0000") .type(HikariDataSource.class) .build(); dataSource.setMaximumPoolSize(1000); dataSource.se..
-
[Spring] SPA와 CORS에 대해서Backend/Spring 2022. 8. 17. 17:17
SPA (Single-Page Application) 단일 페이지 웹 어플리케이션 사용자 인터랙션에 의해 URL 변경 시 화면 전체의 로드가 없이 화면의 일부분만 동적으로 렌더링하여 데스크탑 어플리케이션과 비슷한 유저 경험을 제공한다. AJAX를 이용해서 대부분의 리소스(HTML, CSS, Script)들은 어플리케이션 로드시 한번 읽는다. JSON과 같은 데이터만 어플리케이션 실행 중에 읽어오고 관련된 화면을 변경시킨다. 전통적인 방법 JSP와 Thymeleaf와 다르게 보여지는 내용을 서버에서 처리하지 않고 브라우저에서 처리하는 것 요청을 보내면 html을 반환해서 이를 렌더링함 SPA 방법 화면에서 변경이 일어날 때 DOM을 이용해서 동적으로 브라우저에서 그리는 것 요청을 해서 처음에 HTML이 로..
-
[Spring Boot] Spring Boot에서 Thymeleaf 사용하기Backend/Spring 2022. 8. 12. 17:23
Thymeleaf란? 타임리프란 템플릿 엔진으로 흔히 뷰 템플릿이라고 부른다. Spring MVC 설계 시에 Controller가 전달하는 모델의 데이터를 이용하여 동적으로 화면을 구성할 수 있도록 View를 만들 수 있게 해준다. 타임리프는 html 태그를 기반으로 하고 여기에 th:속성을 이용하여 동적인 View를 제공한다. Dependency 추가 Maven의 경우 pom.xml에 다음을 추가하여 사용할 수 있다. org.springframework.boot spring-boot-starter-thymeleaf ViewResolver 등록 ApplcationContext에서 WebMvcConfigurer 인터페이스에 구현된 configureViewResolvers함수로 resolver를 등록한다. ..
-
[Spring Error] EmbeddedDatabase 사용 시 java.lang.RuntimeException: mysql start failed with error 해결Backend/Spring 2022. 8. 5. 15:15
Error JUnit을 사용한 스프링 부트 테스트 시에 EmbeddedDatabase를 사용해 mysql을 연결하려고 했다. @Configuration @ComponentScan( basePackages= {"org.prgrms.kdt.customer"} ) static class Config{ @Bean public DataSource dataSource() { var dataSource = DataSourceBuilder.create() .url("jdbc:mysql://localhost:2215/test-order_mgmt") .username("test") .password("0000") .type(HikariDataSource.class) .build(); return dataSource; } ..
-
[Spring] Logging / Logging Framework / Log Level / Logback / Log AppenderBackend/Spring 2022. 7. 31. 13:35
Logging 이란? 시스템을 작동할 때 시스템의 작동 상태의 기록과 보존, 이용자의 습성 조사 및 시스템 동작의 분석 등을 하기 위해 작동 중의 각종 정보를 기록해두는 것 로그 시스템의 사용에 관계된 일련의 사건을 시간의 경과에 따라 기록하는 것 system.out : 불편함, 여러번 로그를 찍으면 오버헤드가 발생할 수 있어 성능저하 발생 -> 사용안함! Logging Framework java.util.logging : 거의 안씀 apache commons logging log4j : 성능상 문제 -> log4j2 탄생 logback : 제일 많이 사용 slf4j : 로깅 프레임워크들을 여러개 사용할 수 있게 해주는 인터페이스 SLF4J (Simple Logging Facade For Java) 여러..
-
[django] ubuntu 20.0.4에 mysqlclient 모듈 설치하기Backend/Django 2022. 7. 24. 21:50
Python 가상환경 만들기 https://miraekwak.tistory.com/97 [Python] virtual env 설정 Virtual env venv를 사용하여 프로젝트 별 전용 가상공간을 생성하여 프로젝트 별로 독립된 파이썬 실행환경을 가질 수 있다. 여러 프로젝트의 python package를 섞이지 않게 관리할 수 있는 장점! 서로 miraekwak.tistory.com 문제 오라클 클라이언트 우분투 20.0.4 인스턴스에 장고 프로젝트를 실행하려고 requirement.txt파일에 있는 모듈을 설치하다가 mysqlclient를 설치하면서 에러가 발생했다. 다양한 에러를 겪어서 해결방안 정리! 단순히 가상환경을 만든 후 모듈을 설치하려고 하면 다음과 같은 에러를 보게 된다. error: ..
-
[Django] AbstractUser를 사용한 UserModel 확장Backend/Django 2022. 7. 6. 11:51
AbstractUser django에서 제공하는 사용자 모델로 기본적인 사용자 정보에 대해 이미 구현되어 있어 편리하게 관련 기능을 구현할 수 있다. 하지만 추가적으로 필요한 사용자 데이터가 있을 수 있기 때문에 AbstractUser를 커스텀하여 사용할 수 있다. 기본적으로 제공하는 필드 id : PK username first_name last_name email password is_staff is_activate is_superuser last_login data_joined User Model Custom 1. AbstractUser에 존재하는 필드 이외에 필요한 필드에 대해서 추가적으로 정의해준다. - 추가적으로 존재하는 필드가 없긴했지만 새로 정의해주었다. from django.db impo..
-
[Spring] AppConfig / IoC / DIBackend/Spring 2022. 5. 9. 23:53
AppConfig 애플리케이션 전체 동작 방식을 구성하기 위해 구현 객체를 생성하고 연결하는 책임을 가지는 설정 클래스이다. 애플리케이션 실제 동작에 필요한 구현 객체를 생성하고 생성자를 통해서 객체 인스턴스 참조를 주입한다. 이는 DIP를 가능하게 하고 객체를 생성하고 연결하는 역할을 분리한다. DI(Dependency Injection) : 의존관계 주입 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴이다. 애플리케이션 실행 시점에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것이다. 클라이언트 코드를 변경하지 않고 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다. IoC(Inversion Of Control) : 제어의 역전..