본문 바로가기

전체 글

(104)
[WIL] 2023.01.09~2023.01.13 새로운 팀원들과 SQL을 집중 공부하는 한 주였다. 늘 했듯이 팀명과 팀장 선정, tmi공유 등을 하였다. sql강의는 간단 명료하게 사용법 위주로 진행되어서 반복이 중요한 sql 학습에 많은 도움이 되었다. 당장은 데이터베이스를 설계하거나 데이터 변경보다는 기존 데이터를 효율적으로 사용하는 것이 중요한데 이러한 점을 잘 짚은 강의였다. 아직 스프링 숙련도가 부족한만큼 다음주부터 진행되는 프로젝트기간에도 틈틈히 복습할 예정이다.
2023.01.13 스프링이 제공하는 다양한 예외처리 Java에서는 예외 처리를 위해 try-catch를 사용해야 하지만 try-catch를 모든 코드에 붙이는 것은 비효율적이다. Spring은 에러 처리라는 공통 관심사(cross-cutting concerns)를 메인 로직으로부터 분리하는 다양한 예외 처리 방식을 고안하였고, 예외 처리 전략을 추상화한 HandlerExceptionResolver 인터페이스를 만들었다. (전략 패턴이 사용된 것이다.) 대부분의 HandlerExceptionResolver는 발생한 Exception을 catch하고 HTTP 상태나 응답 메세지 등을 설정한다. 그래서 WAS 입장에서는 해당 요청이 정상적인 응답인 것으로 인식되며, 위에서 설명한 복잡한 WAS의 에러 전달이 진행되지 않는다. public interface Ha..
2023.01.12 스프링의 기본적인 예외 처리 방법 Spring의 기본적인 예외 처리 방식(SpringBoot) 예를 들어 우리가 만든 다음과 같은 컨트롤러가 있다고 하자. 1 2 3 4 5 6 7 8 9 10 11 @RestController @RequiredArgsConstructor public class ProductController { private final ProductService productService; @GetMapping("/product/{id}") public Response getProduct(@PathVariable String id){ return productService.getProduct(id); } } Colored by Color Scripter cs getProduct에서 NoSuchElementFoundExc..
2023.01.11 예외의 종류 예외 클래스 (Checked Exception vs Unchecked Exception) Trowable을 상속받는 클래스는 Error와 Exception이 있다. Error는 시스템 레벨의 심각한 수준의 에러이기 때문에 시스템에 변화를 주어 문제를 처리해야 하는 경우가 일반적이다. Exception은 개발자가 로직을 추가하여 처리할 수 있다. Exception은 RuntimeException 과 같은 수많은 자식클래스를 가지고 있다. RuntimeException은 CheckedException과 UncheckedException을 구분하는 기준이다. Exception의 자식 클래스 중 RuntimeException을 제외한 모든 클래스는 CheckedException이며, RuntimeExceptio..
2023.01.10 개념적 모델링 데이터베이스 설계 순서 1. 요구조건 분석 2. 개념적 모델링 개념적 모델링: 개체와 개체들 간의 관계에서 ER다이어그램을 만드는 과정 ER모델 ER모델: 세상의 모든 사물을 개체(Entity)와 개체 간의 관계(Relationship)으로 표현 개체: 독립적인 의미를 지니고 있는 유무형의 사람 또는 사물로 개체의 특성을 나타내는 속성(Attribute)에 의해 식별된다. 개체끼리 서로 관계를 지닌다. 우리는 ER모델으로 ER다이어그램(ER Diagram)을 만들 수 있습니다. ER다이어그램에서 개체는 ㅁ, 개체의 속성은 ㅇ 그리고 개체 사이의 관계는 ◇로 표현됩니다. ERD(Entity-Relation Diagram: 개체 관계도) ER 모델(개체-관계 모델, Entity-Relationship Mod..
2023.01.09 예외와 오류 목적 예외와 오류는 다르다 시스템 레벨에서 발생하는 심각한 오류로 미리 예측할 수 없기 때문에 애플리캐이션에서 오류에 대한 처리를 신경 덜 써도 된다. 예외는 개발자의 로직에서 발생한다. Error 발생 위치 : 시스템 레밸에서 발생 발생 클래스 : java.lang.Error 클래스의 서브 클래스 Exception 발생 위치 : 개발자가 구현한 로직에서 발생 발생 클래스 : java.lang.Exception 클래스와 그 서브클래스 예외가 필요한 이유 3가지 1. 예외로 발생할 상황을 미리 예측하여 처리할 수 있다. 2. 예외를 개발자가 처리할 수 있게 구분하고 그에 따른 처리 방법을 명확히 알고 적용할 수 있다. 3. 예외를 통해 사용자에게 오류 발생을 알려야 한다. (안내를 위해) + 개발자에게도 ..
Git branch master : 기본 브랜치, 배포용 develop : 개발기간동안 메인브랜치로 사용 feature/(기능, 이름 등) : 각 기능별로 나누어서 개발 후 develop에 병합한다. 병합 시에는 pull을 하여 최신화를 진행하고 변경부분을 확인하여 병합한다. 주의 사항 협업을 통해 깃이 사용되지만 깃을 사용하려면 역시 대화가 필요하다. 커밋 코멘트도 변경, 수정, 삭제 등 변경 항목에 대한 설명이 필요하다.
[WIL]2023.01.02~01.06 중간 프로젝트 주간으로 스프링 프레임워크를 이용한 개인 블로그 백엔드서버를 구현하였다. 게시물 포스팅 관련한 기능을 구현하였고, 초반에는 헤맸지만 팀원들의 적극적인 도움과 학습을 통해 무사히 기능을 구현하였다. 최종적으로는 게시물, 댓글, 좋아요, 보안, 예외처리 까지 멋진 작품을 좋은 팀원들과 함께 만들었다. 운이 좋게도 팀원들의 실력이 대체로 출중하여서 서로 배운점을 공유하고 알려주는 등 소통도 잘 되고, 열정이 가득한 팀원들에게서 나태해졌던 마음을 다 잡을 수 있었다. 다음주부터 이어지는 강의에서는 성실히 임하여 나의 실력을 남에게 베풀 것이다.