2021.12.24 - [개발자가 될 때까지/Spring boot] - [Spring] 스프링과 스프링부트 , 빈(Bean) [Spring] 스프링과 스프링부트 , 빈(Bean) https://velog.io/@sorzzzzy/series/Spring-Boot-RoadMap-1 시리즈 | Spring Boot - RoadMap 1 - sorzzzzy.log 🏷 검증 요구사항 상품 관리 시스템에 새로운 요구사항이 추가되었다 ✔️ 요구사항: 검증 로직 추가.. annajin.tistory.com 위 게시글을 작성하고 나서 시간 조금 지나고 나니 당시에는 그렇구나 하고 넘어갔던 부분에 대한 개념정리가 많이 부족해 그래서 이걸 왜 하더라? 라는 물음이 생겨 다시 정리해보기로 했다. https://steady-h..
전체 글

MySQL 연동은 우당탕탕이었지만 어떻게 성공적으로 완료하고 select문이 정상적으로 실행되는 것까지 확인했다. 내가 사용한 테이블은 아래 사진과 같음. 이번에 터진 에러는 POST 방식으로 파라미터를 받아오는 과정에서 생겼다. 첫번째 문제 - Mybatis 에러 (에러코드를 잊어버렸다...) 형변환이 문제인 줄 알고 birthDay 객체의 타입을 LocalDate에서 String으로 바꾸고 시도했더니 이번엔 db에서 에러가 떴다. 알고보니 Mybatis 문법 자체를 틀려서 나타나는 에러였다... 에러난 mapper.xml INSERT INTO user ( `name` , `birth_day` ) VALUES ( `name` = ${name} , `birth_day` = ${birthDay} ) 옳은 ..

http://www.tcpschool.com/mysql/mysql_basic_create 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com CREATE 1. 데이터베이스 생성 CREATE문을 이용하여 새로운 데이터베이스를 생성할 수 있다. DB 생성 CREATE DATABASE 데이터베이스명; DB목록 보기 SHOW DATABASES; 2. 데이터베이스 선택 데이터베이스를 생성한 후에, 데이터베이스를 사용하려면 우선 데이터베이스를 선택해야한다. DB 선택 USE 데이터베이스명; 3. 테이블 생성 데이터베이스는 하나 이상의 테이블로 구성되며, 이러한 테이블에 데이터를 저장하여 관리할 수 있다. CREATE문을 이용하여 새..

Mybatis를 이용하여 MySQL 연동하기 Spring-boot : MyBatis를 이용하여 MySQL 연동하기 MyBatis를 사용하는 이유? 우선 MyBatis를 알기 전에 JDBC를 먼저 알아야한다. 간단하게 JDBC는 Java에서 DB연동하기 위한 API다. 이 JDBC만 사용하게 되면 Java소스 와 Query소스가 겹치게 되고 관리가 어려워 velog.io 인텔리제이에서 MySQL을 연동하려고 삽질만 4시간 가량했다. 원래 있던 프로젝트 파일에 연동하려니까 헷갈리고, 안되니까 더 헷갈리고 삽질만 죽어라고 했는데 너무 간단하게 해결됐다...하... 이것저것 시도하는 과정에서 빈 등록을 빼먹었는데 다른 오류때문에 신경도 안쓰고 있다가 나중에 어디서 빠뜨렸는지도 모르게 되어서 삽질한 케이스이다. ..

들어가며 웹을 공부하면서 거의 필연적으로 따라오는 데이터베이스. 엑셀이랑 비슷하게 생겼는데 거기에 코딩같은 문법을 추가한 것같이 생겼다는게 처음 MySQL을 접했을 때의 생각이었다. 무료이면서, 오픈소스이고, 3대 데이터베이스 중에 하나인 MySQL. 이번에는 TCPSchool과 생활코딩의 MySQL 강의를 공부하면서 강의를 정리하고 실습하면서 차근차근 포스팅을 하고자한다. http://www.tcpschool.com/mysql/intro 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com https://opentutorials.org/course/3161 DATABASE2 - MySQL - 생활코딩 수업소개 무료이면서,..
Spring boot를 공부하면서 URL을 제멋대로 만들고 있었다는 걸 알게 되었다. 지난 REST API 포스팅에서 잠깐 다뤄졌던 내용인데 막연히 그렇구나 하고 넘어갔었는데 막상 실제로 사용하려니 어렴풋한 기억으로만 남아있기도 했고 그 중요성을 모르고 있었다. 따라서 이번에는 REST API 가이드에 맞는 URL 디자인을 복습 및 스터디해보려고 한다. URL Rules 슬래시(/)로 계층관계를 표현하고, URL의 마지막에 슬래시(/)을 포함하지 않는다. 언더바(_) 대신 대쉬(-)를 사용한다. 소문자를 사용한다. 행위(method)는 URL에 포함하지 않는다. 리소스명은 동사 대신 명사를 사용한다. 하지만, 컨트롤 자원을 의미하는 URL은 예외적으로 동사를 허용한다. 파일 확장자는 포함하지 않는다. 1..
스프링 부트를 사용하면서 컨트롤러를 만들 때, 파라미터를 넘겨받는 방법으로 @RequestParam만 알고있었는데 또 다른 방법인 @PathVariable이 있다는 걸 알게되어 두가지 모두 정리해보고자 한다. @RequestParam 단일 파라미터를 받아올 때 사용하는 어노테이션이다. @GetMapping("/search_user") public UserDto searchUser( @RequestParam("name") String name, @RequestParam(value = "age", required=true) int age // 위와 같음 ) { return userService.getUser(index); } 메소드 파라미터 값을 넣는 괄호 안에 위와 같이 사용할 수 있다. 위 코드를 보면 ..
들어가기 전, 싱글톤 패턴을 복습해보자 2021.12.01 - [개발자가 될 때까지/JAVA] - [Java] 디자인패턴 - 싱글톤 패턴 (singleton pattern) [Java] 디자인패턴 - 싱글톤 패턴 (singleton pattern) 싱글톤 패턴(Singleton Pattern)이란? 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴을 의미한다. 즉, 인스턴스가 오직 1개만 생성되어야 하는 annajin.tistory.com 싱글톤 패턴은 단 하나의 인스턴스를 생성해 프로그램 전반에서 하나의 인스턴스만을 사용하게 하는 패턴이다. 다시 말하면, 프로그램 시작부터 종료 시까지 어떤 클래스의 인스턴스가 메모리 상에 단 하나만 존재할 수 있..
Lombok(롬복)이란? 스프링 부트에서 Model 객체(DTO, VO, Domain)를 만들 때, 다 비슷하게 생긴 Getter와 Setter를 굳이 만들어줘야하는 번거로움이 있었다. 물론 빠르게 만드는 키가 있기는 하지만 필드명을 변경하거나 추가할 때 실수로 getter/setter를 변경하지 않아서 오류가 나는 경우에 번거롭다. Lombok은 이렇게 불필요하게 반복되는 코드들을 어노테이션을 통해 getter/setter, ToString 등을 자동으로 처리해주는 편리한 라이브러리이다. 어노테이션 종류 Lombok공식 문서 아래에 쓰인 어노테이션들 이외에도 공식문서에 더 많은 어노테이션들이 있다. 어노테이션 설명 @Getter, @Setter getter(), setter() 메소드 생성 @Equal..

https://thisiswhyimyoung.com/%EB%A7%A5-%ED%95%9C%EC%98%81-%ED%82%A4/ 맥 한영 키와 가장 편한 전환 방법! - THIS IS WHY IM YOUNG 처음 맥북을 사용할 때 가장 혼란스럽고 적응되지 않는 것이 한영 전환 방법이였습니다. 이번 포스팅에서는 한글과 영어를 변환하는 키를 알아보고 윈도우 키보드에 익숙한 분들에게 가장 편한 thisiswhyimyoung.com 윈도우만 쓰다보니 한영키 전환이 너무 불편해서 찾아보다 발견한 오른쪽 command키로 한영전환하는 방법! 맥 키보드에서 오른쪽 command 키를 잘 사용하지 않는데 이걸 한영키로 전환해서 사용할 수 있다. Karabiner Karabiner프로그램을 사용해 키보드 매핑을 하는 방법인데..