본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

(98)
19일차 - 스프링부트와 DB 연결하기, Spring Data JPA SELECT VERSION(); Maria DB인지 MySQL인지 확인하기 @RequiredArgsConstructor 필드 중에서 final이 붙은 것만 인자로 입력받는 생성자를 만든다. @NoArgsConstructor 인자가 없는 기본 생성자를 만든다. git reset HEAD^ 최신 커밋 취소 스프링부트와 DB 연결하기 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' build.gradle 파일에 추가 server: port: 8010 // 서버 포트 spring: thymeleaf: // 타임리프 캐시 끄기 cache: fal..
18일차 - 스프링부트, 세션, thymeleaf * JACKSON에 의해 객체가 문장화(JSON)되고, 이때 인자가 없고 is 또는 get으로 시작되는 메서드의 결과도 가져간다. * return 값으로 파일의 경로를 설정했을 때는 @ResponseBody를 붙이지 않는다. @RequestScope - 매 요청마다 객체가 생성된다. Request : 서버는 요청 정보들을 보관하기 위해 HttpServletRequest 객체를 생성해 정보를 저장한다. 이 객체는 응답 결과가 전송될 때까지 유지 및 사용할 수 있다. RequestScope : Request 객체를 사용할 수 있는 범위(요청~응답) 세션 쿠키 : 클라이언트, 서버가 생성/수정/삭제 가능 => 보안 취약 세션 : 서버만 생성/수정/삭제 가능, 첫 방문 시 sessionId를 매우 길게 만들어 ..
17일차 - 스프링부트 Component, Autowired Flex 복습 http://www.flexboxdefense.com/ Flexbox Defense Your job is to stop the incoming enemies from getting past your defenses. Unlike other tower defense games, you must position your towers using CSS! www.flexboxdefense.com Component와 Autowired @Component & @Service : Ioc 컨테이너에 의해 생성, 소멸이 관리된다. @Autowired : Ioc 컨테이너에 의해 관리되는 객체와 연결시켜준다. 기존 코드 @Controller public class MemberController { privat..
16일차 - 스프링부트 스프링부트 세팅 https://start.spring.io/ Spring Boot 3.0.4 Java 17 Dependencies : Spring Boot DevTools, Spring Web, Lombok, Thymeleaf - File > Settings > Build, Execution, Deployment > Compiler에서 Build project automatically 체크 - File > Settings > Advanced Settings > Allow auto-make ~ 체크 - File > Project Structure > SDK 17로 설정 - Lombok requires ~ > Enable annotation processing 클릭 - (필요한 경우) File > Repai..
15일차 - HTML/CSS와 테일윈드 CSS Flexbox 연습 사이트 https://flexboxfroggy.com/#ko Flexbox Froggy A game for learning CSS flexbox flexboxfroggy.com https://cdpn.io/pen/debug/adLPwv CodePen - Flexbox playground cdpn.io CSS 선택자 연습 사이트 https://flukeout.github.io/ CSS Diner A fun game to help you learn and practice CSS selectors. flukeout.github.io display block : 너비 최대, 수직 배열, flex inline-block : 너비 최소, 수평 배열, inline position stati..
14일차 - DB index - CHAR : 속도 빠름, 용량 많이 차지 => 검색에 용이하다. - VARCHAR : 속도 느림, 용량 적게 차지 - DELETE : 데이터만 삭제된다. - TRUNCATE : 데이터 및 인덱스 데이터도 같이 삭제된다. LENGTH() SELECT LENGTH('홍길동'); # 9 UUID() - 고유값을 랜덤으로 생성한다. INSERT INTO ~ SELECT ~ INSERT INTO 테이블 (a, b, c) SELECT NOW(), UUID(), `hi` FROM 테이블; - 테이블의 row 개수만큼 데이터가 추가된다. a 칼럼에 NOW(), b 칼럼에 UUID(), c 칼럼에 'hi'가 들어감 SQL_NO_CACHE SELECT SQL_NO_CACHE * FROM 테이블; - 캐시를 쓰지 않는다..
13일차 - DB 쿼리(2) 그룹 함수 https://yurison.tistory.com/24?category=1077673 DML - 데이터 조작하기 SELECT - 데이터 조회하기 SELECT(DISTINCT) {column_name}(ALIAS) FROM {table_name} [WHERE {attribute} = {value}]; SELECT CONCAT({column_name}, '-', {column_name}) FROM {table_name}; DISTINCT : 중복행을 제거한다. ALIAS : 컬럼의 별칭을 지 yurison.tistory.com COUNT SELECT COUNT(컬럼_이름) FROM 테이블_이름; # NULL이 아닌 row의 개수 출력 SELECT COUNT(*) FROM 테이블_이름; # NULL..
12일차 - DB 쿼리(1) 시작 전 할 일 xampp start > SQLyog 접속 온라인 MySQL 실습 환경 https://app.codingrooms.com/compiler?language=mysql Coding Rooms app.codingrooms.com DB 쿼리 CRUD : create, read, update, delete DDL : 테이블과 DB 조작 DML : 데이터(row) 조작 데이터베이스 목록 확인 SHOW DATABASES; 사용할 데이터베이스 선택 USE DB_이름; 선택한 데이터베이스의 테이블 목록 확인 SHOW TABLES; 테이블의 구조 확인 DESCRIBE 테이블_이름; DESC 테이블_이름; - user 처럼 소문자로 타이핑했지만 대문자로 변경되는 경우(기존 키워드인 경우) 백틱으로 감싸준다...