Web_Backend2023. 6. 20. 17:20[Spring, JAVA] Validation

Validation이란? 📌 [사전] 유효성 검증, 주로 사용자 또는 서버의 요청 내용에서 잘못된 내용이 있는지 확인하는 단계 Validation의 종류 데이터 검증 필수 데이터의 존재 유무 문자열 길이나 숫자형 데이터의 경우 값의 범위 email, 신용카드 번호 등 특정 형식에 맞춘 데이터 비즈니스 검증 서지스의 정책에 따라 데이터를 확인하여 검증 배달앱의 경우 배달 요청 시, 해당 주문 건이 결제 완료 상태인지 확인 등 경우에 따라 외부 API를 호출하거나 DB의 데이터까지 조회하여 검증하는 경우도 존재함 Speing core Tech - Validation란? 📌 Spring 에서는 WEB layer에 종속적이지 않은 Vaildation을 하고자 노력 Spring의 Vaildation( 둘 다 데이..

[JAVA] GC(Garbage collector, Garbage collection)
Web_Backend/Java2023. 6. 15. 13:22[JAVA] GC(Garbage collector, Garbage collection)

GC(Garbage collector)란? 📌 자바의 메모리 관리 방법 중 하나로 JVM의 Heap 영역에서 불필요한 메모리를 주기적으로 삭제하는, 즉 Garbage collection을 해주는 프로세스를 말함. Mark and sweep과 Stop The World를 통함. JAVA에서 객체들은 실질적으로 Heap영역에 생성되고 Method Area나 Stack Area, Root Area에서는 Heap에 생성된 객체의 주소만 참조하는 형식 GC의 대상 Heap 영역에 있는 객체들 중 어디서든 참조하고 있지 않는 (Unreachable한) 객체 GC의 대상 개발자가 메모리 관리, 메모리 누수(Memory Leak)에 대해서 완벽하게 관리하지 않아도 되며, 개발과 비즈니스 로직에만 더 집중할 수 있음 J..

[Servlet] Dispatcher Servlet
Web_Backend/Spring2023. 5. 28. 14:22[Servlet] Dispatcher Servlet

Dispatcher Servlet Servlet이란? ✅ 서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술을 말함. 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말하며, 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 코드의 지저분함(모든 서블릿을 web.xml등록 높은 의존성 HttpServlet 기능을 필수로 Override 해야 하고, 더 이상 일반 객체로 사용할 수 없다. 중복되는 작업 모든 서블릿이 공통으로 처리하는 작업이나, 가장 우선시 되야하는 작업 Dispatcher Servlet이란? 📌 Servlet Container에서 HTTP프로토콜을 ..

[Spring] Spring AOP(Aspect Oriented Programming)
Web_Backend/Spring2023. 5. 28. 14:15[Spring] Spring AOP(Aspect Oriented Programming)

Spring AOP(Aspect Oriented Programming) Spring AOP란? 📌 Aspect Oriented Programming, 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점(데이터베이스 연결, 로깅, 파일 입출력)으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것 AOP 주요 개념 Aspect : 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화함. Target : Aspect를 적용하는 곳 (클래스, 메서드 .. ) Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체 JointPoint : Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, ..

[Spring, JPA] JPA Persistence Context
Web_Backend/Spring2023. 5. 28. 14:05[Spring, JPA] JPA Persistence Context

JPA Persistence Context과 제공하는 기능 영속성이란? 📌 사전 : 영원히 계속되는 성질이나 능력 dev : 애플리케이션의 상태와 상관없도록 물리적인 저장소를 이용해 데이터를 저장하는 행위. Persistence Context란? 📌 영속성 컨텍스트(Persistence Context)는 영속화되어있는 entity identity에 대해 unique 한 entity 인스턴스가 존재하는 entity 인스턴스의 집합. 즉, entity의 영속화에 관여하며, entity들이 DB로 바로 가지 않고 entity를 저장하는 환경으로서의 역할을 함. 아래와 같은 방법으로 영속성 컨텍스트에 접근 가능 EntityManager.persist(entity); 영속성 컨텍스트 특징 식별자 값(id)이 있어..

[DB] RDB 와 NoSQL
Web_Backend/DB2023. 5. 26. 14:57[DB] RDB 와 NoSQL

💬 RDB와 NoSQL의 차이점은 무엇인가요? ✅ 관계형 데이터베이스(RDB)는 사전에 엄격하게 정의된 DB schema를 요구하는 table 기반 데이터를 구조를 갖는데 반해, 비관계형 데이터베이스인 NoSQL은 table 형식이 아닌 비정형 데이터를 저장할 수 있도록 지원합니다. NoSQL은 애자일 개발 등 확장 가능성이 있거나 정확한 데이터 구조가 정해지지 않아 수정 가능성이 있을 때 유연하게 대처가 가능하다는 장점이 있지만, RDB는 엄격한 Schema로 인해 데이터의 중복이 없기 때문에, update가 많거나 데이터 테이블 간에 상관관계가 복잡할 때 유리합니다. 반면 NoSQL은 데이터 중복으로 인해 update시 모든 컬렉션에서 수정이 필요하기 때문에 update가 적고 조회가 많을 때 유리합..

[DB] Primary Key란?
Web_Backend/DB2023. 5. 26. 14:50[DB] Primary Key란?

💬 Primary Key란 무엇인가요? ✅ 데이터베이스의 테이블에 있는 튜플을 유일하게 식별할 수 있는 Key를 기본키, primary key라고 부릅니다. 예시로 국민이라는 테이블의 PK는 주민등록번호가 될 수 있으며, Nosql에서는 Key 값이 Primary Key 가 될 수 있습니다. 또한 Primary Key의 경우 단일 칼럼뿐 아니라 여러 개의 칼럼이 합쳐져 PK가 될 수 있는데, 예를 들면 운동선수라는 테이블에서 id가 PK가 될 수 있지만, 더불어 팀 이름과 등번호를 합친 것 또한 PK가 될 수 있습니다. Primary key Primary key(기본 키)란? 📌 SQL 데이터에서 데이터베이스 테이블의 설계를 고유하게 식별하는 키(A uniquely identifying key in th..

Web_Backend/Java2023. 5. 26. 14:44[JAVA] Stream API

Java Stream API 💬 Java Stream API란 무엇인가요? ✅ (정리 중) Stream API란? 📌 데이터를 추상화하고, 처리하는데 자주 사용되는 함수를 정의해 둔 것. JAVA JAVA는 객체지향 언어이기 때문에, 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JAVA8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 JAVA를 지원함으로써 함수형으로 프로그래밍을 할 수 있는 API들을 지원해주고 있다. 그중에서 Stream API는 위에 설명했듯이 데이터를 추상화하고 처리하는 데 사용된다. 즉, 데이터의 종류에 상관없이 같은 방식으로 데이터를 처리할 수 있다는 것을 의미하며, 그에 따라 코드의 재사용성을 높일 수 있다. 예시 코드 Stream 활용 전 : 원본..

Web_Backend/DB2023. 5. 26. 14:34[DB] ORM(Oject-Relational-Mapping) Framework 이란?

ORM(Oject-Relational-Mapping) Framework 💬 ORM(Oject-Relational-Mapping) Framework란 무엇인가요? 더보기 ✅ 추상화와 상속 다형성의 특징을 지닌 객체지향과, 데이터 중심구조인 RDB사이에서 발생하는 패러다임의 불일치 문제를 해결하기 위해 개발된 프레임워크로, SQL문이 아닌 메서드로 데이터를 조작합니다. SQL Mapper가 코드상으로는 JDBC API와 SQL을 구분 지었다 하더라도, 논리적으로 강한 의존성이 지속되고 있었습니다. 각각의 DB마다 쿼리문이 다를 경우, 개발자가 각 DB의 쿼리문을 사용할 줄 알아야만 DB를 사용할 수 있는 점을 예로 들 수 있습니다.. ORM Framework란? 📌 객체-관계 매핑. 사물을 추상화시켜 이해하..

Web_Backend/Java2023. 3. 19. 20:35[JAVA] String, String Builder, String buffer 차이

JAVA에서 문자열을 다루는 대표적 클래스 - String : 문자열에 대한 연산이 적을 때, 멀티스레드 환경일 경우. - String Buffer : 문자열 연산이 많고, 멀티쓰레드 환경일 경우. - String Builder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우. 1. String - String은 '불변(immutable)'속성을 지님. 따라서, 문자열 수정 시점에 새로운 String 인스턴스가 생성. String str = "hello"; //"hello" 메모리 주소 aaaa str += " world"; //"hello world" 메모리 주소 bbbb(aaaa -> GC의 제거대상) ㄴ 위의 예시에서 볼 수 있듯이 String 문자열의 연산을 진행할 경우..

[초보 개발자의 도서 리뷰] "곁에 끼고 자주 찾아볼 자바 교보재" 코딩 개념 잡는 자바 코딩 문제집
Web_Backend/Java2022. 12. 2. 17:01[초보 개발자의 도서 리뷰] "곁에 끼고 자주 찾아볼 자바 교보재" 코딩 개념 잡는 자바 코딩 문제집

"코딩 실력은 연습이다" "문법+라이브러리로 코딩 문제를 해결한다" "코딩 테스트가 아니라 현장의 문제를 담았다" 책의 커버에 써진 문구들과 같이, 이 책은 이미 자바 문법을 배운 '자바 중급자 이상'을 위한 책이다. 자바 기본 문법을 익힌 후 웹 개발 프로젝트를 진행하며, 기업의 코딩테스트를 자바 언어로 준비하고있는 본인에게는 가장 적합한 자바 교보재였다고 생각한다. 코딩테스트 문제를 풀다가 '중복되는 문자열 찾기' '중복되지 않는 첫번째 문자열 찾기' 등 특정한 기능(문제 해결) 부분만 자바로 구현하기 어려워 막힌 경우 해당 기능(문제해결) 구현만 검색하기는 어려워 결국 문제 전체에 대한 해답 코드를 올려놓은 블로그 글을 참조하여 연습하기에 혼자서 도움없이 문제 전체를 해결하는 연습을 하기 어려운 점..

2022. 3. 24. 18:15[모던 자바스크립트 Deep Dive] 20장_strict mode

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

image