본문 바로가기

전체 글168

패스트캠퍼스 챌린지 15일차 Part 1. Spring Framework CH 02. 스프링의 핵심 기술 08. Null-safety - java는 null check를 매번 해줘야하기 때문에 다른 언어들에 비해 Null을 다루기 쉽지 않다. - 널 안정성을 높이는 방법 => 아래와 같은 코드를 만들지 않는 방법 => 혹은 아래와 같은 널 체크를 하지 않아서 발생하는 NPE(Null Pointer Exception)을 방지하는 방법 (확실한 위치를 반환하지 않음) => 완벽한 방법은 아니지만 IDE(Intellij, Eclipse)에서 경고를 표시함으로써 1차적인 문제를 방지하고, 정확한 에러 위치를 확인할 수 있도록 도움 public void method(String request) { if(request == null) retu.. 2022. 2. 7.
패스트캠퍼스 챌린지 14일차 Part 1. Spring Framework 07. Spring Expression Language(SpEL) SpEL(Spring Expression Language) - Expression Language(표현언어)는 짧고 간단한 문법을 통해 필요한 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어(그래프 접근 등 가능) - SpEL은 그 중에서도 스프링 모든 영역에서 사용 가능한 언어형식임 -> 주로 @Value("${config.value}")와 같은 방식으로 설정값을 주입 받는데 활용 SpEL의 값 평가(evaluation) - SpelParser는 "" 안에 들어있는 문자열을 평가(evaluation)해서 결과값을 만들어낸다. - 'Hello World'는 문.. 2022. 2. 6.
패스트캠퍼스 챌린지 13일차 Part 1. Spring Framework 06. Resource Spring Resource - java.net.URL의 한계(classpath 내부 접근이나 상대경로 등)를 넘어서기 위해 스플링에서 추가로 구현 - 업무에서는 많이 사용되는 부분은 아니지만, 스프링의 내부 동작을 이해하기 위해서 필요한 부분 Resource Interface와 그 구현체들 public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; URI getURI() throws IOException; .. 2022. 2. 5.
패스트캠퍼스 챌린지 12일차 Part 1. Spring Framework 04. Validation, Data binding Validating이란? 한국말로는 유효성 검증 주로 사용자 또는 서버의 요청(http request)내용에서 잘못된 내용이 있는지 확인하는 단계를 뜻 Validation의 종류 학문적으로 여러 세부적인 단계들이 있기도 하지만 실제로 개발자가 주로 챙겨야 하는 검증은 크게 두 종류로 나뉜다. 데이터 검증 필수 데이터의 존재 유무 문자열의 길이나 숫자형 데이터의 경우 값의 범위 email, 신용카드 번호 등 특정 형식에 맞춘 데이터 비즈니스 검증 서비스에 정책에 따라 데이터를 확인하여 검증 예) 배달앱인 경우 배달 요청을 할 때 해당 주문건이 결제 완료 상태인지 확인 등 경우에 따라 외부 API를 호출하거나 D.. 2022. 2. 4.
패스트캠퍼스 챌린지 11일차 Part 1. Spring Framework 04. AOP 관점 지향 프로그래밍 - Aspect Oriented Programming 특정한 함수호출 전이나 후에 뭔가 공통적인 처리가 필요하다면? -> AOP - 로깅 - 트랜잭션 (Annotation을 통해 트랜잭션의 시작과 끝에서의 처리를 AOP를 통해 한다.) - 인증 OOP로 처리하기에는 다소 까다로운 부분을 AOP라는 처리 방식을 도입하여 손쉽게 공통 기능을 추가/수정/삭제 할 수 있도록 함 AOP의 기본 개념들 Aspect 여러 클래스나 기능에 걸쳐서 있는 관심사, 그리고 그것들을 모듈화함 AOP 중에서 가장 많이 활용되는 부분은 @Transactional(트랜잭션 관리) 기능 Advice 조언, AOP에서 실제로 적용하는 기능(로깅, 트랜잭션.. 2022. 2. 3.
패스트캠퍼스 챌린지 10일차 Part 1. Spring Framework 03. DI - Dependency Injection IOC(Inversion of Control), DI(Dependency Injection) - IoC나 DI는 레고와 같은 것이다. - 스프링이 바닥판처럼 깔려있고, 우리는 그 위에서 멋진 조립(나의 어플리케이션)을 만들면 된다 - 판 밖에 있는 것들은 Utility java class BEAN이란? (우리가 배우는 Class) - 자바에서의 javaBean * Class 는 Method 와 Property로 이루어져 있는데 Method가 Property를 이용해 동작한다. * Java Bean는 데이터를 저장하기 위한 용도로 사용하는 구조체 ( Java Bean 규약을 통해 관용적으로 사용) - 데이터를.. 2022. 2. 2.