danbibibi
article thumbnail
Ajax (Asynchronous JavaScript and XML) 정리
WEB/front-end 2023. 4. 26. 23:28

Ajax (Asynchronous JavaScript and XML) 웹에서 화면을 갱신하지 않고 데이터를 서버로부터 가져와 처리하는 방법 (화면의 일부만 갱신 가능) 화면 갱신이 없으므로 사용자는 편리하지만, 동적으로 DOM을 구성해야 하므로 구현이 복잡 언어나 프레임워크가 아닌 구현하는 방식을 의미 CORS error가 발생할 수 있음 💡 일반 요청에 대한 응답 - data를 입력 후 event 발생 - Ajax를 적용하지 않은 요청은 서버에서 data를 이용하여 logic 처리 - logic 처리에 대한 결과에 따라 응답 page를 생성하고 client에 전송 (화면 전환 발생) 💡 Ajax 요청에 대한 응답 - data를 입력 후 event 발생 - Ajax를 적용하면 event 발생시 서버에서 ..

article thumbnail
DOM (Document Object Model, 문서 객체 모델)
WEB/front-end 2023. 4. 26. 23:28

DOM ( Document Object Model ) HTML 문서나 XML 문서에 접근하기 위한 일종의 인터페이스 문서 내의 모든 요소의 목적과 특징을 정의하고, 각각의 요소에 접근하는 방법을 제공 DOM 객체 가져오기 태그 이름(tag name)을 이용한 선택 💡 getElementsByTagName(tagname) : 태그이름이 tagname과 일치하는 element 배열 얻기 var selectedItem = document.getElementsByTagName("li"); // 모든 요소를 선택 for (var i = 0; i < selectedItem.length; i++) { selectedItem.item(i).style.color = "red"; // 선택된 모든 요소의 텍스트 색상을 변..

article thumbnail
Spring Boot
WEB/back-end 2023. 4. 26. 20:27

Spring Boot 스프링(Spring)을 더 쉽게 이용하기 위한 도구 * Spring의 경우 Application을 개발하려면 사전에 많은 작업을 해야했음 ( library 추가, dependency 설정, SpringFramework가 처리해야 하는 여러 가지 구성 및 설정파일 등 ) Spring Boot의 장점 project에 따라 자주 사용되는 library들이 미리 조합되어 있음 복잡한 설정을 자동으로 처리 내장 서버를 포함해서 tomcat과 같은 WAS를 추가로 설치하지 않아도 개발 가능 WAS에 배포하지 않고도 실행할 수 있는 JAR 파일로 Web Application을 개발 가능 Project 생성 Project 구조 src/main/java : java source directory H..

article thumbnail
REST API 실습
WEB/back-end 2023. 4. 26. 15:03

pom.xml json을 사용하기 위해 다음과 같이 dependency를 추가해주었다! com.fasterxml.jackson.core jackson-databind 2.15.0 ++ 각각의 Repo파일에 @Mapper annotation을 붙여준다! CatRestController.java RequestBody import에 주의 ...!!!!!!!!!!!! 해야 한다!! 2개다!! 꼭 import org.springframework.web.bind.annotation.RequestBody 로 import하자!! 그렇지 않으면 null 값으로 들어온다^^ package com.ssafy.cat.controller; import java.sql.SQLException; import java.util.Li..

article thumbnail
REST(Representational State Transfer) API
WEB/back-end 2023. 4. 26. 09:52

REST : HTTP URI를 통해 제어할 자원을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원을 제어하는 방식의 아케텍처 기존의 전송 방식과는 달리 서버는 요청 받은 리소스에 대해 순수한 데이터를 전송 기존의 GET/POST 외에 PUT, DELETE 방식을 사용하여 리소스에 대한 CRUD 처리 가능 💡 REST 구성 자원 (Resource) - URI 행위 (Verb) - HTTP Method 표현 (Representations) * 잘 표현된 HTTP URI로 리소스를 정의하고 HTTP method로 리소스에 대한 행위를 정의 * 리소스는 JSON, XML과 같은 여러 가지 언어로 표현할 수 있음 기존 Service와 REST Service 기존 Ser..

article thumbnail
web.xml, servlet-context.xml, root-context.xml
WEB/back-end 2023. 4. 25. 20:25

web.xml 설정을 위한 설정파일 (여러 xml파일을 인식하도록 각 파일을 가리켜 줌) 최초로 WAS가 최초로 구동될 때, 각종 설정을 정의 ( 서블릿, 한글 인코딩 등) 404 /error/404 contextConfigLocation /WEB-INF/spring/root-context.xml encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding /* appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 appServl..

article thumbnail
Spring-MyBatis 실습
WEB/back-end 2023. 4. 24. 21:34

지난번에 JDBC를 이용해 진행했던 간단한 Spring MVC 실습을 MyBatis로 대체해보려고 한다!! 1. XML 파일 수정 MyBatis를 사용하기 위해 pom.xml에 dependency를 추가해준다! org.mybatis mybatis 3.5.13 org.mybatis mybatis-spring 2.1.0 mybatis를 spring에서 사용하기 위해서 root-context.xml에 다음과 같이 sqlSessionFactory를 등록해주고, mybatis-spring:scan을 통해 repo를 스캔해준다!! 2. Mapper 만들기 이제 더 이상 RepoImpl 클래스가 필요하지 않다!! 다음과 같이 resources 폴더 안에 mapper 폴더를 만들고, MyBatis를 사용하여 RepoI..

article thumbnail
MyBatis, MyBatis-Spring 설정
WEB/back-end 2023. 4. 24. 21:31

MyBatisJava Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM FrameworkSQL을 별도의 파일로 분리해서 관리 (유지 보수성 향상)Object - SQL 사이의 parameter mapping 작업을 자동으로 해 줌JDBC 코드와 수동으로 셋팅하는 파라미터와 결과 매핑을 제거 (코드의 중복과 작성 생략 가능) https://mybatis.org/mybatis-3/ko/index.htmlMyBatis – 마이바티스 3 | 소개마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 mybatis.org MyBatis-Spring 연동MyBat..

article thumbnail
Spring File Upload (Apache Commons FileUpload)
WEB/back-end 2023. 4. 24. 21:30

pom.xml Apache Commons FileUpload라이브러리를 이용하기 위해 dependency를 추가해준다! commons-fileupload commons-fileupload 1.5 servlet-context.xml file upload를 처리할 multipart resolver를 빈으로 등록해준다! regist.jsp 파일을 전송할 때는 enctype을 "multipart/form-data"로 설정해주어야 한다! 사용자 정보 입력 아이디 비밀번호 이름 이메일 나이 이미지 MainController.java controller에서 파일을 처리해주는 코드이다! *resources/upload 폴더를 만들고, 안에 아무 파일이나 하나를 만들어 놓아야 인식 가능!! @PostMapping("/r..

article thumbnail
Spring MVC 실습
WEB/back-end 2023. 4. 24. 00:40

내용 정리 겸 지금까지 학습한 Spring, JSP, MVC 패턴 등을 적용한 간단한 실습을 해보자!! DB 만들기 아주 간단한 table 2가지를 만들어서 진행! drop database if exists animal; create database if not exists animal DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs ; use animal; drop table if exists user; create table if not exists user( id varchar(10) primary key, pw varchar(10) not null, name varchar(20) not null ); insert into user values ..

article thumbnail
Interceptor
WEB/back-end 2023. 4. 22. 12:22

Interceptor : Request 객체를 컨트롤러의 핸들러로 도달하기 전에 낚아채서 개발자가 원하는 추가작업을 한 후 핸들러로 보낼 수 있도록 해주는 것 추가적인 작업 로그인 체크, 권한 체크 등 관련 메소드 preHandle() 컨트롤러가 호출되기 전에 실행 false를 반환하면 request를 바로 종료 postHandle() 컨트롤러 수행 후 호출 비동기적 요청 처리 시에는 처리되지 않음 preHandle()에서 리턴 값이 false인 경우 미실행 적용 중인 인터셉터가 여러개인 경우, preHandle() 역순으로 호출 afterCompletion() view를 통해 클라이언트에 응답을 전송한 뒤 실행 요청 처리 중에 사용한 리소스를 반환해주기 적절한 메소드 preHandle()에서 리턴 값이..

article thumbnail
AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)
WEB/back-end 2023. 4. 22. 12:03

AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심 관심 사항과 공통(부가) 관심 사항으로 나누어 모듈화 핵심 관심 사항 : 적용하고자 하는 핵심 비즈니스 로직 공통(부가) 관심 사항 : 핵심 로직을 실행하기 위해 행해지는 부가적인 로직 ex) DB 연결, 로깅 등 분리한 부가 기능을 Aspcet라는 독특한 모듈 형태로 만들어서 설계하고 개발 (공통 모듈을 손쉽게 적용 가능) 💡 한 마디로 AOP란? 부가기능을 Aspcet로 정의하여, 핵심기능에서 부가기능을 분리함으로써 핵심기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 있도록 도와주는 개념 (실무에서는 호불호가 갈린다고 한다) 💡 AOP 등장 배경 기존 OOP에서 공통관심사항을 여러 모듈에..

article thumbnail
Spring
WEB/back-end 2023. 4. 21. 11:51

Spring 자바 기반의 엔터프라이즈 급 어플리케이션을 만들 수 있는 Framwork JEE가 제공하는 다양한 기능을 제공하는 것 뿐만 아니라, DI나 AOP같은 기능도 지원 개발자가 복잡하고 실수하기 쉬운 Low Level에 신경 쓰지 않고, Business Logic 개발에 전념할 수 있도록 해줌 프레임워크와 라이브러리의 차이점 "제어 흐름이 어디에 있는가" 프레임워크는 전체적인 흐름을 쥐고 있으며 애플리케이션의 코드는 프레임워크에 의해 사용됨 (프레임워크) 라이브러리는 개발자가 전체적인 흐름을 만들며 라이브러리를 가져다 씀 (개발자) IoC (Inversion of Control, 제어의 역전) 객체지향 언어에서 Object 간의 연결 관계를 런타임에 결정 객체 간의 관계가 느슨하게 연결됨 (loo..

article thumbnail
Maven 이란?
WEB/기타 2023. 3. 25. 23:46

Maven : 자바용 프로젝트 관리 도구 (자바 프로젝트들을 위한 빌드 자동화 도구) 💡 빌드란? 프로젝트를 위해 작성한 Java코드나 여러 자원들(.xml, .jar, .properties)를 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물 Maven 장점 라이브러리 관리를 용이하게 해줌 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 자동으로 다운받아 줌 프로젝트의 작성부터 컴파일, 테스트 등 프로젝트 라이프사이클에 포함되는 각 테스트를 지원 Maven LifeCycle clean, build, site 세 가지 Lifecycle을 제공 모든 빌드 단위에 대한 Lifecycle이 예약되어 있어서 개발자가 임의로 변경 불가 각 Lifecy..

article thumbnail
JDBC를 이용한 DB 연결 (MySQL)
WEB/back-end 2023. 3. 24. 02:24

JDBC (Java DataBase Connectivity) 자바 언어로 데이터베이스 프로그래밍을 하기 위한 라이브러리 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API로서 ANSI SQL 지원 SQL문을 실행할 수 있는 함수 호출 인터페이스 JDBC 특징 DBMS 종류에 독립적인 자바 프로그래밍 가능 DB가 달라지더라도 동일한 API를 사용하게 해줌 (드라이버 및 URL만 수정하면 가능) 자바가 가지는 플랫폼에 독립적이라는 특성과 DBMS에 독립적인 특성을 가짐 JDBC 기능 데이터베이스에 연결 설정 SQL 문장을 DBMS에 전송 SQL 문장 전송 후 결과를 처리할 수 있음 JDBC API: java.sql package Driver (interface) 드라이버에 대한 정보를 가지..