목록전체 글 (210)
개발의 시작과 끝
템플릿 엔진 템플릿 양식(HTML)과 데이터 모델(DB)에 따른 입력 자료를 결합하여 문서를 출력하는 소프트웨어. View를 담당하는 HTML코드와 DB 로직 코드를 따로 분리해서 합쳐주는 기능. 데이터와 템플릿을 결합하여 사용자에게 동적 콘텐츠를 제공. 동적 웹 애플리케이션에서 정적 템플릿과 데이터를 결합하여 최종 웹 페이지 생성. 주요 역할 데이터와 템플릿 결합 : 데이터(서버정보)와 템플릿(HTML)을 결합해 최종 HTML문서 생성. 동적 콘텐츠 생성 : 동적으로 콘텐츠 생성 (ex. DB 정보 표시) 반복문과 조건문 : 제어 구조 템플릿 내에 포함. 템플릿 재사용 : 웹 페이지 일부분을 템플릿으로 분리하고 재사용 가능. ▶ 서버사이드 템플릿 엔진(Server-Side Template Engine)..
FetchType 엔티티 간의 관계를 로딩할 때 사용되는 전략을 결정하는 열거형. 어떤 상황에서 관련된 엔티티를 로딩할지 결정하는 중요한 요소이며, 데이터 액세스 패턴과 성능을 고려하여 적절한 타입을 설정해야함. 크게 두가지 타입으로 나뉘는데 Eager 전략과 Lazy 전략이 있다. 즉시로딩(EAGER) - FetchType.EAGER로 설정하여 사용. - 연관된 엔티티를 조회할 때, 즉시 관련된 엔티티를 모두 함께 로딩. - 관련된 데이터를 한 번에 모두 가져오기 때문에 성능 저하 가능성이 있음. - 일반적으로 연관된 객체가 항상 필요한 경우에 사용. 지연로딩(LAZY) - FetchType.LAZY로 설정하여 사용. - 연관된 엔티티를 실제로 사용할 때 까지 로딩 지연. - 연관된 엔티티에 접근할 때..
스트림(Stream) 자바 프로그래밍 언어의 기능 중 하나 컬렉션 데이터를 다루고 변환하는 데 사용되는 강력한 기능 데이터 처리를 함수형 방식으로 다룸. 코드를 간결하고 가독성 있게 작성할 수 있도록 도움. 주요 특징과 개념 데이터 소스 : 컬렉션, 배열, 파일 등 여러 종류. 파이프라이닝 : 중간 연산과 최종 연산으로 구성. 중간 연산은 스트림을 변환하고 필터링하며, 최종 연산은 최종 결과를 생성. 이러한 연산은 파이프라인을 형성. 지연 평가(lazy evaluation) : 지연 평가를 사용하여 요청할 때만 요소를 처리. 메모리를 효율적으로 사용하고 불필요한 연산은 지양. 스트림 연산 : 연산을 조합해 원하는 데이터 처리 작업 수행. 중간 연산 : filter(), map(), flatMap() 최종..
JPA(Java Persistence API) 자바를 사용하여 DB와 상호 작용하기 위한 자바의 ORM 기술 중 하나. DB 테이블과 자바 객체 간의 매핑 지원. 개발자가 SQL 쿼리를 직접 작성하지 않고도 DB 조작이 가능. 객체 지향 프로그래밍의 장점을 유지하며 DB 액세스 코드를 작성할 수 있어 개발 생산성 향상. ORM을 사용하기 위한 인터페이스를 모아둔 것. JPA를 사용하기 위해선 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 함. 단순히 명세이기 때문에 구현이 없음. Hibernate 자바 언어 기반의 ORM 프레임워크. JPA라는 명세의 구현체. Hibernate는 마치 자바의 interface와 해당 interface를 ..
ORM(Object-Relational Mapping)객체 지향 언어와 관계형 데이터베이스 간 데이터를 변환하고 상호 작용하기 위한 기술 또는 패턴.객체 지향 모델과 데이터베이스 모델 간 매핑.객체와 데이터베이스 간 불일치를 해결하기 위해 사용.ORM 프레임워크를 사용하면 DB와 상호 작용이 더 쉽고 효율적으로 처리 가능, 유지 보수 및 확장이 간편.대표적인 프레임워크 HibernateEntity Framework (.NET)Django ORM (Python)Sequelize (Node.js)SQLAlchemy (Python)JPA (Java)Ruby on Rails의 Active Record 참고- https://chat.openai.com- https://velog.io/@alicesykim95/J..
API(Application Programming Interface) 두 개 이상의 소프트웨어 컴포넌트 사이에서 상호 작용할 수 있도록 정의된 인터페이스. (연결장치, 매개체) 일반적으로 함수, 프로토콜 또는 클래스로 구성. 다른 소프트웨어 개발자들이 이를 사용하여 특정 서비스, 기능 사용 가능. 다른 개발자들이 사용할 수 있는 함수, 메서드, 클래스 등을 정의하는 것. 컴포넌트 간의 인터페이스 정의. 라이브러리(Library) 개발자들이 자주 사용하는 코드 집합. 이를 사용하여 개발자들은 복잡한 기능을 쉽게 구현 가능. 여러 개발자가 공유하여 사용할 수 있는 소프트웨어 코드 모임. 프레임워크(Framework) 개발자들이 애플리케이션을 개발하는 데 사용되는 구조 제공. 일련의 규칙과 구조 정의하고, 애..
스프링 시큐리티란? Spring에서 제공해주는 인증(Authentication)과 인가(Authorization)에 대한 처리를 위임하는 별도의 프레임워크. 인증(Authentication)은 로그인을 의미. 인가(Authorization)는 서버가 로그인 한 사용자를 보고 허가하는 것. 권한(Authorize)은 인증된 사용자가 어떤 것을 할 수 있는지를 의미. 로그인, 권한설정, 권한 검사 기능 등 제공 서블릿 필터 이용. 참고 - https://wikidocs.net/162150 - https://www.youtube.com/watch?v=ewslpCROKXY - https://thalals.tistory.com/436
build 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물(Artifact)로 변환시키는 과정 build tool Ant 설정 시 xml 사용. 간단하고 사용하기 쉬움. 복잡한 처리를 하려면 빌드 스크립트가 장황해져 관리하기 어려움. 외부 라이브러리 관리 불가능. 거의 안 씀. Maven 설정 시 xml 사용. 외부 라이브러리 관리 가능. 장황한 빌드 스크립트 문제 해결. 특정 경우 xml이 복잡해짐. xml 자체의 한계 존재. Ant 단점 대부분 극복. 지금도 쓰지만, 신규 PJ에는 지양. Gradle 설정 시 groovy 언어 사용. 외부 라이브러리 관리 가능. 유연하게 빌드 스크립트 작성 가능. 성능 뛰어남. 가장 최신에 나온 java 빌드 툴. 신규 PJ에 많이 사용됨. 참고 ..