목록웹개발 (52)
주뇽's 저장소
JUnit 단위 테스트 - 대규모 애플리케이션에는 수천 개의 코드 파일과 수백만 줄의 코드가 있고 이러한 코드는 여러개의 레이어에 분산되어 있다, 애플리케이션을 구축할 때마다 코드가 제대로 작동하는지 확인해야 한다. 즉, 예상하는 동작과 실제 애플리케이션의 동작을 확인해야 한다. 테스트를 수행하는 방법 1. 전체 애플리케이션을 배포하고 테스트 - jar 파일이나 war파일을 빌드하고 어딘가에 배포 후 확인 : 시스템 테스트, 통합 테스트라 불린다. 2. 애플리케이션 코드의 특정한 단위를 독립적으로 테스트 - 특정 메서드나 메서드 그룹을 테스트 하며 확인 : 단위 테스트(JUnit) 단위 테스트의 장점 - 버그를 조기에 찾고 해결할 수 있다 - 단기적으로는 비용이 많이 들지만 장기적으로 비용 절감 JUni..
JavaScript XML(JSX) - HTML 보다 엄격함 - 닫는 태그가 필수 - 하나의 최상위 태그만 있어야 함 - Babel 덕분에 리액트 프로젝트에 사용 가능 - JSX -> JS 로 변환 - 괄호를 사용하면 JSX값을 반환하기 쉬움 return () - 컴포넌트 이름은 대문자로 - className을 사용 모든 컴포넌트는 components 폴더 아래 각각 저장하는게 모범 사례 components - FirstComponents.jsx - SecondComponents.jsx ... 각각 jsx 파일로 만들 때는 export를 해줘야 다른 경로에서 사용 가능 당연하게 사용하고자 하는 위치에서는 import 해야한다. export default function FirstComponent(){ r..
http.csrf().disable() is not working in Spring Boot 3.x.x. 스프링 부트 3.x.x 버전 부터는 csrf().disable()이 적용 시 경고 문장이 뜬다. 이는 다음과 같이 바꿔주면 된다. http.csrf().disable() => http.csrf(AbstractHttpConfigurer::disable) Security 필터체인 커스터마이징 코드 @Configuration public class SecurityConfiguration { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests( auth -> aut..
DAO(Data Access Object)와 DTO(Data Transfer Object) DAO(Data Access Object)와 DTO(Data Transfer Object)는 소프트웨어 개발, 특히 데이터베이스와의 상호작용을 다룰 때 자주 사용되는 개념이다. 이 둘은 명확히 다른 역할을 하지만, 때때로 혼동되기도 한다. DAO (Data Access Object) 목적 : DAO는 데이터베이스 접근하는 객체로, 데이터베이스의 CRUD(Create, Read, Update, Delete)작업을 처리 특징 : DAO는 데이터베이스 쿼리를 실행하고 결과를 반환하는 메서드를 포함한다. DAO는 데이터베이스와의 상호작용을 추상화하고, 비즈니스 로직과 데이터베이스 사이의 중간 계층 역할을 한다. 예시 : ..
H2 인메모리 데이터베이스는 서버 재시작시 정보가 휘발되므로 MySQL로 데이터베이스 변경 1. Docker를 사용해 MySQL 실행하기 docker run --detach --env MYSQL_ROOT_PASSWORD=dummypassword --env MYSQL_USER=todos-user --env MYSQL_PASSWORD=dummytodos --env MYSQL_DATABASE=todos --name mysql --publish 3306:3306 mysql:8-oracle docker run \ # Docker 컨테이너를 실행하는 기본 명령어 --detach \ # 컨테이너를 백그라운드에서 실행 (대화형 모드가 아님) --env MYSQL_ROOT_PASSWORD=dummypassword \ #..
Spring Security 로그인과 로그아웃에 관련된 기능을 쉽게 구현할 수 있음 로그인 구현 Spring Security 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' 의존성을 추가하는것만으로 따로 로그인 페이지나 기능을 구현하지 않아도 자동으로 로그인 페이지로 넘어가진다. 개발자 전용 id : user pw : 디버깅 창에서 나오는 패스워드 디버깅 창에서 나오는 패스워드는 항상 바뀌기 때문에 이를 고정된 값으로 매핑해줄 수 있다. ## 추가 application.properties에서 간단하게 아디이와 패스워드 설정하는 법(간단함) spring.security.user.name = username sprin..
JUnit4를 이용하여 Controller 기능을 테스트 하는 도중에 책에서 나온 부분과 실제 함수가 달라 오류가 발생했다. URL 요청에 들어온 파라미터가 제대로 들어왔는지 체크하기 위해 jsonPath 함수를 사용하는데 기존 책은 다음과 같이 작성되어 있다. package com.spring_jyp_todo.springbootTodoProject.controller; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springf..
JDBC와 Spring JDBC를 이용한 코드 비교 - JDBC(Delete) public void deleteTodo(int id){ PrepareStatement st = null; try{ st = db.conn.prepareStatement("delete from todo where id=?"); st.setInt(1, id); st.execute(); } catch (SQLException e){ logger.fatal("Query Failed :, e"); } finaaly { if (st != null){ try{st.close();} catch (SQLException e){} } } } - Spring JDBC(Delete) public void deleteTodo(int id){ jdb..