본문 바로가기

분류 전체보기

(133)
Git - 형상관리 Git - 형상관리 ▶ Git 컴퓨터 파일의 변경사항을 추적하고, 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템. GIT HUB ( http://github.com ) Git Hub 회원가입 후, Start Project -> 프로젝트 생성 ▶ Git에 올린 프로젝트를 workspace로 불러오기 맨 마지막, Import Maven Projects... 를 클릭하면 workspace에 불러와진다.
날씨 API 활용하기 ▶ 기상청에서 공공데이터 받기 주소 → http://www.weather.go.kr/weather/lifenindustry/sevice_rss.jsp RSS를 클릭하고 해당 uri로 이동해보면, 아래처럼 GET 방식으로, zone=지역코드로 이루어져 있다. Crome으로 F12번의 개발자 도구를 킨다. option의 value 값에 지역코드들이 들어가 있다. ▶ 날씨 API 활용해보기 1. pom.xml 파일에 jsoup dependency 를 추가한다. jsoup은 HTML 문서에 저장된 데이터를 구문 분석, 추출 및 조작하도록 설계된 오픈 소스 Java 라이브러리 이다. org.jsoup jsoup 1.12.1 Jsoup 클래스의 static 메소드 connect에 uri 경로로 분석하고자 하는 ht..
spring boot - 파일 업로드 파일 업로드 ▶ application.properties 설정 file.upload.directory = uploadFiles //업로드 폴더 위치 spring.servlet.multipart.max-file-size=128KB //파일 크기 제한 spring.servlet.multipart.max-request-size=128KB //파일 크기 제한 ▶ 파입 업로드 폼 설정 form 의 enctype 설정하고 submit 하여 파일을 보낸다. File to upload: ▶ 컨트롤러에서 파일 다운로드 Multipart 객체로 넘겨받은 파일을 서비스단에서 처리한다. package kr.or.ksmart.file; import org.springframework.beans.factory.annotation..
싱글톤 패턴 싱글톤 패턴 - 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. - 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. ▶ 싱글톤 패턴 특징 - 하나의 인스턴스를 생성해서 사용한다. - 메모리 낭비 방지한다. - 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용된다. - 꼭 필요한 경우가 아니면 지양한다. ▶ 싱글톤 패턴 단점 - 전역 인스턴스이기 때문에 데이터 공유할 우려가 있다. (static 변수에 인스턴스 생성되는 경우) - 멀티쓰레드 환경에서 동기화 처리를 하지 않으면 인스턴스가 두개가 생성되는 경우가 발생할 수 있다...
객체지향 설계의 5대 원칙 1. SRP (단일책임의 원칙: Single Responsibility Principle) - 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다. 2. OCP (개방폐쇄의 원칙: Open Close Principle) - 기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 설계해야 한다. 3. LSP (리스코브 치환의 원칙: The Liskov Substitution Principle) - 자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다. 4. ISP (인터페이스 분리의 원칙: Interface Segregation Principle) - 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. 하나의 일반적인..
Mybatis CRUD Mybatis CRUD CRUD : 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. - INSERT - SELECT - UPDATE - DELETE ▶ Mybatis로 Insert 회원가입 폼(memberInsert.html)에서 받은 값(요청)을 컨트롤러에서 수행하여 메소드를 처리하고, 결과를 리턴해준다. 더보기 m/memberInsert.html post 메소드 타입으로 /addMember 경로로 입력 value를 받아서 넘긴다. 컨트롤러에서 해당 경로를 맵핑하여 메소드를 실행한다. 폼 액션 방식이 Post 방식이기 때문에 맵핑 어노테이션?도 @PostMapping 으로 설정해준다. 메소드..
Mybatis(마이바티스) Mybatis 기존의 JDBC를 이용하여 개발하는 방식에 비해 개발자의 부담을 덜어주고 생산성을 향상시켜 준다. MyBatis는 개발자가 지정한 SQL, 저장프로시저, 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. MyBatis는 JDBC 코드와 수동으로 셋팅하는 파라미터와 결과 매핑을 제거한다. MyBatis는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO를 설정하고 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. 쿼리 기반 웹 애플리케이션 개발에 많이 사용되는 SQL 맵퍼 프레임 워크이다. 마이바티스를 사용하지 않고 직접 JDBC를 이용할 경우 반복 작성해야 할 코드가 많고, 서비스 로직 코드와 쿼리를 분리하기 어렵다. 또한 커넥션 풀의 설정 등 개발자가..
[실습] 서블릿+컨넥션+트렌젝션+mvc ▶ 서블릿 컨트롤러 - 요청된 request의 uri를 분석해서 경로를 forward 시킨다. (요청된 uri는 패턴에 따라 컨트롤러로 들어오게 어노테이션을 설정한다.) - MainController package kr.or.ksmart.controller; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Htt..