danbibibi
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
Memory Management (메모리 관리 전략)
CS/운영체제 2023. 4. 24. 02:43

메모리 관리 배경 프로그램은 반드시 메모리로 불러와야 실행할 수 있다! 💡CPU가 직접 접근할 수 있는 유일한 저장 공간 = Main Memory , registers Register → 1 CPU clock (or less) 에 접근 가능 (굉장히 빠른 저장 공간) Main memory → many cycles (*memory stall : main memory에 접근 하는 메모리 멈춤 시간) 중간에 cache(register 보다는 느리고, main memory 보다는 빠름!!)를 사용함으로써 메모리 접근 시간을 줄일 수 있다!! ( = 메모리 효율을 높일 수 있다!!) 💡 보조 기억장치(하드디스크) → 주 기억장치(메모리) → CPU 프로세스는 독립적인 메모리 공간(Stack, Data, Code,..

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
BOJ 11438번: LCA 2
문제 풀이/백준 2023. 4. 20. 22:25

문제 문제 바로가기> BOJ 11438번: LCA 2 11438번: LCA 2 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net 풀이 N이 최대 100,000이고, M 또한 최대 100,000이므로 두 노드의 공통조상을 찾기 위해 하나씩 올라가면서 비교하다보면, O(NM)으로 시간초과가 발생한다. 따라서, 두 노드의 공통조상을 찾을 때, 조금 더 빠르게 찾아줄 수 있어야 하는데, 이를 위해 2^k 번째 조상까지 저장하는 ancestor 배열을 만들어주었다!! ex ) ancestor[8][22] : 22번 노드의 2^8번째 조상..

article thumbnail
식별관계 비식별관계
CS/데이터베이스 2023. 4. 17. 23:10

식별 관계 부모 테이블의 기본키를 자식테이블의 기본키로 이용하는 방법 반드시 부모테이블에 데이터가 존재해야 자식테이블에 데이터를 입력할 수 있음 (데이터 정합성 보장) 실선으로 표시 💡 데이터 정합성 (Data Consistency) : 어떤 데이터들이 값이 서로 일치하는 상태 💡 데이터 무결성 (Data Integrity) : 데이터 값이 정확한 상태 ex) 중복 데이터가 다 틀린 값으로 일치하는 경우 = 정합성 O, 무결성 X 비식별 관계 부모 테이블의 기본키를 자식테이블의 외래키로 이용하는 방법 부모테이블에 데이터가 없어도 자식테이블에 데이터를 입력할 수 있음 (데이터 정합성 보장 x) 점선으로 표시 💡 비식별 관계 장점 1. 구조 변경 용이 2. 부모 테이블과의 의존성 제거 3. 과도한 인덱스 제거