| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- BOJ
- Spring
- 22년도
- 재즈밋
- 회고
- 3주차 회고
- NamedParameterJdbcTemplate
- 채팅목록조회
- 백준
- 누구나 자료구조와 알고리즘
- requested
- MAX
- 코드스쿼드max
- 파이썬
- Python
- new File().toPath()
- JazzMeet
- Til
- MapSqlParameterSource
- 코드스쿼드
- 2023
- 자유 프로젝트
- 실패했지만성공했다
- 오류
- rotuter
- baeldung
- Map.of()
- 테이크스트라
- Paths.get()
- 231103
- Today
- Total
목록Spring (8)
어제보다 한걸음 더
mysql 접속 후 terminal sh-4.4# mysql -u root -p + 비밀번호 입력(입력 시 글자 안보임) mac에서 my.cnf 위치 /usr/local/etc/my.cnf
Repository(DAO)에서 데이터 베이스에 접근하는 쿼리를 작성 할 때, 기존까지는 JdbcTemplate 클래스를 사용해서 작성했는데, 이번에 처음 NamedParameterJdbcTemplate 클래스를 사용해 작성해보게 되었다. JdbcTemplate 클래스로 User 테이블 접근 예시 public List findUserById(String userId) { String sql = "SELECT id, name " + "FROM user " + "WHERE id = ?"; return jdbcTemplate.query(sql, userRowMapper(), userId); } "?" 의 위치에 userId 변수를 대입한다. NamedParameterJdbcTemplate 클래스로 User 테..
WAS를 직접 구현하던 중, response에 넘겨 줄 데이터를 만들기 위해 다음과 같은 코드로 request body를 읽어오게 되었다. byte[] body = Files.readAllBytes(경로); 이 때, 경로에는 `new File(uri).toPath()` 혹은 `Paths.get(uri)`이 들어갈 수 있게 된다. - uri 예시 = "baeldung/tutorial.txt" 이 둘의 차이점은 무엇일까? 궁금해져서 baeldung (Spring 블로그)를 읽고 간단히 정리 해 보았다. 공통점: 파일의 경로를 찾아 반환해준다. (return type = Path) Path path = new File("baeldung/tutorial.txt").toPath(); Path path = Path..
스프링 부트를 사용해서 프로젝트를 만들다가, 각 용어들에 대한 개념 정리의 필요성을 느꼈다. DTO vs VO DTO (Data Transfer Object) - 계층간 데이터 교환을 위해 임시적으로 담아놓는 바구니 역할을 하는 객체를 의미한다. VO (Value Object) - DTO와 VO는 거의 같은 개념이라고 볼 수 있다. - VO는 Read Only이다. (setter를 사용하지 않는다) - DTO와 달리, 로직을 포함할 수 있고, 값 비교를 위해서 hashcode(), equals() 메서드를 오버라이딩 해줘야 한다. - Builder Pattern을 사용한다. 🌟 DAO vs Repository - 데이터 액세스 계층(Data Access Layer)에서 데이터 처리를 위해 존재. - Se..
상황 DB 를 h2 에서 mysql로 바꾸려다가 application.properties의 해당 부분이 import 되지 않는 오류를 만났다. spring.datasource.driver-class-name=com.mysql.cj.jdbc.driver 발생 원인 build.gradle에 넣은 코드의 의존성 주입이 제대로 되지 않는 상황인 것을 깨달았다. (첨부 이미지에는 해당 문제를 해결해서 mysql이 제대로 들어가 있다.) + 의존성 주입이 제대로 됐는지 확인하려면 External Libraries에서 확인하면 된다. (Project 공간 클릭 후, 찾고자 하는 파일 이름을 검색할 수 있다.) 해결하려 했지만 실패 한 시도: cache 지우기, 다시 build 하기, build.gradle 파일을 p..
1. 환경설정 하기 build.gradle 파일의 dependencies에 해당 내용을 추가한다. (Jdbc, h2) // jdbc implementation 'org.springframework.boot:spring-boot-starter-jdbc' // h2 db // implementation 'com.h2database:h2' // 2-1 runtimeOnly 'com.h2database:h2' // 2-2 Jdbc 1. Jdbc 사용을 위한 Spring Boot 의존성 추가. DataSource 구현체로 tomcat-jdbc을 제공해준다. JdbcTemplate 사용 가능. h2 DB 2-1. SpringBoot가 h2 데이터 베이스를 기본 데이터 베이스로 사용한다는 의미. application..
localhost:8080 is already in use 오류 해결 방법 블로그 [스프링/Spring] Port 8080 is already in use 에러 해결 방법 스프링에서 가끔 발생하는 8080 포트는 이미 사용중이라는 에러에 대해서 알아보고 해결하는 방법까지 알아보도록 하겠습니다. deeplify.dev 내가 선택한 해결 방법: 사용중인 포트를 죽인다. (macOS 에서 해결하는 방법) 8080 포트를 사용중인 프로세스들을 찾는다 lsof -n -i -P | grep 8080 2. 포트를 사용중인 프로세스를 죽인다. kill -9 PID번호
김영한님 강의 스프링 핵심 원리 - 기본편 을 보고 정리한 내용입니다. 제가 잘못 정리한 내용이 있을 수 있으니 발견 시 알려주시면 감사하겠습니다🙇🏻♀️ 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 1. SRP: 단일 책임 원칙 (Single Responsibility Principle) = 한 클래스는 하나의 책임(= 변경의 이유)만 가져야 한다. 변경이 있을 때, 파급효과가 적으면 단일 책임 원칙을 잘 따른 것이다. 2. 🌟 OCP: 개방-폐쇄 원칙 (Open/Close Principle) = 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 확장을 하기 위해서는 다형성을 이용한다. 하지만 변경에는 닫혀있을 수 있나 다형성을 이용 하더라도 클라이언트 쪽에서 코드를 변경해야하지..