본문 바로가기

기록해보기35

좋은 코드(Clean Code)는 왜 중요한가? 좋은 코드(Clean Code)는 왜 중요하고 지금까지 만들어둔 UserController를 보다 좋은 코드로 리팩토링하는 것을 배워보겠다. 그리고 스프링 컨테이너와 스프링 빈이 무엇 어떠한 여러 방법으로 다루는지 인지? 스프링 컨테이너가 왜 필요한지, 좋은 코드와 어떻게 연관이 있는지 이해하는 시간을 가져보겠다. Clean Code는 왜 중요할까? 앞으로 많은 코드를 작성할 텐데 코드는 무엇일까? 코드는 요구사항을 표현하는 언어이다. 기술적 요구사항이건 비지니스적인 요구사항이건 어떠한 것을 동작, 기능하기 위해서 코딩을 하는데 개발자는 소프트웨어를 만들어가면서 요구되는 요구사항을 읽고 이해하고 그 요구사항을 구현하기 위해 코드를 작성한다. 이 때 읽는 것은 주어진 요구사항 말고 코드도 있는데 현업에서는.. 2023. 6. 5.
다시 한번 정리! 서버를 재시작하면 데이터가 없어지는 것을 MySQL라는 데이터베이스를 배워보면서 Spring Boot와의 연동으로 해결을 했는데 다음과 같은 것을 배울수 있었다. 디스크와 메모리 차이를 이해하고, Database의 필요성을 이해 SQL을 이용해 MySQL Database를 조작할줄암 스프링서버를 이용해 Database에 접근하고 데이터를 저장, 조회, 업데이트, 삭제할줄 알게 됨 API의 예외 상황을 알아보고 예외처리를 할줄 알게 됨 그.치.만! 전체적으로 보자면 한가지 클래스인 Controller에서 너무 많은 역할을 하고있다는 문제가 있다.(사실 배우는 중이라 이게 왜 문제인지는 모르겠다..) package com.group.libraryapp.controller.user; import com.gro.. 2023. 6. 4.
유저 업데이트 API, 삭제 API 예외 처리하기 MySQL에 분명히 아무것도 없는데 수정 그리고 삭제가 200OK를 출력해주고 있다. 어떻게 해야지 200OK가 출력이 안되도록할까? API에서 예외를 던지도록 해보자. 간단하게 삭제할 error-test를 해보겠다. @GetMapping("/user/error-test") public void erroTest(){ throw new IllegalArgumentException(); } 서버를 재시각 해주고 POST MAN을 이용해 예외를 처리해보았다. 500Internal Server Error이 예외처리로 출력이 되었다. UpdateAPI와 DeleteAPI에서 데이터의 존재여부를 확인한 다음 예외를 던지고 예외가 없다면 500이아닌 200OK를 출력해보도록해서 예외처리를 해보겠다. Update AP.. 2023. 6. 4.
유저 업데이트 API, 삭제 API 개발과 테스트 유저 업데이트 API, 삭제 API 개발과 테스트 저번 시간에는 유저 생성 API와 조회 API를 만들어 보았다 이번에도 저번과 비슷하게 각 API의 스펙을 먼저 구상하고 진행해보겠다. 먼저 업데이트 API👉 HTTP Method : PUT HTTP Path : /user HTTP Body (JSON) { "id" : Long, "name" : String //변경되어야 하는 이름이 들어온다. } 결과 반환 X (HTTP 상태 200 OK이면 충분) HTTP Method 는 GET POST PUT중에 PUT을 사용할 것이고 Path는 /user PUT 같은 경우에는 쿼리와 Body중에 Body를 사용할 것이고 변경 대상의 id와 실제 변경대상인 name이 필요하다. 삭제 API👉 HTTP Method :.. 2023. 6. 4.
Spring에서 Database 사용하기 지금까지 내가 직접적으로 MySQL에 직접접근하여 테이블도 만들고 조작도 해보았는데 이번에는 Spirng boot를 통해 MySQL을 조작해보겠다. 이를 위해서는 설정이 필요하다. 이 설정은 application.yml을 만들고 설정할 수 있다. src 안에 main 안에 java가 있고 그 안에 classe들이 들어가는데 java랑 같은 위치에 resources가 있는데 여기에 application.yml을 만들어줄 것이다. 이제 여기안에 spring boot가 데이터베이스와 붙게 끔 코드 작업을 해 주겠다. spring: datasource : //datasource라는 것은 spring boot가 어떠한 데이터베이스를 가르키게 할 것인가?라는의미 ur l: "jdbc:mysql://localhost.. 2023. 6. 3.
테이블의 데이터를 조작하기 저번에 만든 테이블에 과일을 넣고, 조회하고, 수정하고, 삭제해보는 연습을 하겠다. 데이터를 넣는다 👉 생성, Create 데이터를 조회한다 👉 읽기, Retirieve 또는 Read 데이터를 수정한다 👉 업데이트, Udate 데이터를 삭제한다 👉 제거, Delete 이것을 앞에 글자를 따서 CRUD라고 한다. 데이터넣기👉 INSERT INTO [테이블 이름](필드1이름, 필드2이름,...)VALUES(값1,값2...); 순서가 중요하다 필드1이름에는 값1이 들어가야 하고 두번째도 마찬가지이다. 빨간색글씨로 된부분은 바뀌지 않을 SQL문법 부분이다. 이제 데이터를 넣으러 가보겠다. id를 넣지 않은 이유는 테이블을 만들 때 auto_increment를 설정하여 자동으로 입력되기 때문에 작성하지 않았다. .. 2023. 6. 2.
MySQL에서 테이블 만들기🧑‍💻 MySQL에서 구조화해서 데이터를 저장할 것인데 이때 구조화라는 것은 테이블을 만들어 저장한다는 것을 구조화라고 한다. 이 테이블을 만든 다는 것은 예를 들어 컴퓨터에서 엑셀 파일에 과일 정보를 기록한다 생각해보면 엑셀 파일을 담을 폴더를 만든다. 폴더에 들어간다. 그 폴더 안에 엑셀 파일을 만든다 엑셀 표에 Header를 입력한다. 각 Header별로 서식을 지정한다. 실제 MySQL에 테이블을 만드는 것도 비슷하다. 폴더 = 데이터베이스 엑셀파일 = 테이블 엑셀파일의 헤더 = 테이블의 필드 정의 엑셀파일의 서식 = 테이블의 필드 타입 이제 MySQL에 접속해서 테이블을 만들어 볼 것이다. 데이터베이스를 만드는 명령어는 CREATE DATABASE [데이터베이스 이름]; 이다. 성공했다면 1row af.. 2023. 6. 2.
Database와 MySQL 이번 정리는 디스크와 메모리의 차이를 이해하고, Database의 필요성을 이해하는 정리를 해보겠다. 그런다음 MySQL Database를 SQL과 함께 조작도 해보고 스프링 서버를 이용해 Database에 접근하고 데이터를 저장, 조회, 업데이트, 삭제를 해보겠다. 또한 API의 예외 상황을 알아보고 예외를 처리해보겠다. 전에는 서버를 종료했다가 시작하면, 저장했던 유저 정보가 모두 날라갔는데 이러면 안된다.. 이를 위해하기 위해 컴퓨터의 핵심부품에 대해 먼저 알아보겠다. 컴퓨터는 기본적으로 크게 세가지가 중요하다. CPU RAM DISK CPU👉 주로 연산이다. RAM👉 다른 말로는 Memory 임시기억장치이다. DISK👉 장기기억역할 우리가 서버를 실행시켜 API를 동작시키기까지는 개발하고 있는 서.. 2023. 6. 2.
정리한번 하고 갈께요 🧑‍💻 이것저것 만들어보면서 스프링 프로젝트를 시작하는 방법 실행하는 방법(가져오는 법까지) API를 만들기위해 알아야할 네트워크 IP 도메인 포트 HTTP요청과 응답 구조 클라이언트 - 서버구조, API와 같은 기반지식 Spring Boot를 이용해 GET API와 POST API를 만드는 방법 을 배웠다. 하지만 여기까지 만든 API의 문제점이 있다. 서버를 껐다가 키면 데이터가 사라지게 되는데 이는 유저 정보는 메모리에서만 유지되고 있기 때문이다. 다음에는 이를 해결하는 방법에 대해서 공부해 보겠다. 2023. 6. 2.