일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- reactive
- 네트워크
- effective
- redis
- mybatis
- NoSQL
- github
- AWS
- 데이터통신
- HTTP
- Linux
- git
- VCS
- cache
- nodejs
- mongodb
- socket
- Lombok
- reactor
- Elk
- spring
- Heap
- Static
- r
- html
- javascript
- network
- libuv
- Java
- ajax
- Today
- Total
목록분류 전체보기 (187)
빨간색코딩
1. JSTL 이란?JSTL은 JSP 표준라이브러리(JSP Standard Tag Library)의 약어이다. 자주 사용될 수 있는 커스텀 태그들을 모아서 표준으로 모아놓은 태그 라이브러리다.JSTL 의 종류라이브러리명접두어주요 기능URI코어c변수 지원, 제어문, 페이지 관련 처리http://java.sun.com/jsp/jstl/core함수fncollection 처리, String 처리http://java.sun.com/jsp/jstl/fuctions포매팅fmt포맷 처리, 국제화 지원http://java.sun.com/jsp/jstl/fmt데이터베이스sqlDB관련 CRUD 처리http://java.sun.com/jsp/jstl/sqlXMLxXML관련 처리http://java.sun.com/jsp/jst..
인스턴스를 생성할 때 파라미터가 많을 수록, 매우 많은 경우의 수가 생긴다. 파라미터A는 값이 들어있을수도, B는 안들어있을수도 있는 등등등. 이럴 경우 대응할 수 있는 방안이 내 생각에서는 아래와 같았다.오버로딩으로 사용할 만한 경우마다 생성자를 생성한다.하나의 생성자에서 파라미터를 그냥 null 로 넘긴다.그런데 타인의 코드를 보던 도중 VO 에 빌더패턴을 적용한 것을 보았다..!1. Builder 패턴은 왜 쓰는가?위의 서문같은 경우를 해결할 수 있다. 또한 아래와 같은 장점들이 있다.인스턴스를 생성할 때 인자를 선택적으로 가독성 좋게 넘길 수 있다.인자의 순서에 상관이 없어진다.불필요한 생성자를 만들지 않는다.2. 사용 예제아래처럼 생성자를 멤버변수들을 나열해도 좋고, ComputerBulider..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html1. enum 이란?enumeration의 앞글자로 열거라는 뜻이다. JDK 1.5 부터 관련이 있는 상수들의 집합을 사용할 때 enum을 사용한다. enum은 완전한 클래스이다. 그 이전에는 열거형 상수를 선언하려면 다음과 같이 했다.클래스 내에 final static 로 변수 선언interface 에 상수선언기존방식의 문제한 클래스에 final static 으로 다 선언하자니 네임충돌 발생할 수도 있고, 복잡함인터페이스를 사용하면 위 문제는 해결되나, 타입안정성이 떨어짐 (컴파일 때 형검사를 하지 않으므로 오류발생 소지)enum의 장점코드가 단순해지고, 가독성이 짱인스턴스 생성과 ..
참조문서https://www.javatpoint.com/spring-mvc-tiles-examplehttps://tiles.apache.org1. tiles 란?타일즈는 웹 페이지의 상단이나 하단 메뉴와 같이 반복적으로 사용되는 부분들에 대한 코드를 분리해서 예쁘게 한 곳에서 관리를 가능하게 해주는 프레임워크이다.JSP include와의 차이비슷한 역할이지만, tiles가 여러모로 편리하고 좋다. jsp는 페이지 내에 동일한 레이아웃 정보가 들어가므로 전체적인 레이아웃을 변경하게 될 경우 모든 페이지를 수정해야하는 문제점이 있다. 예를들면 만약 50개의 페이지에 상단 메뉴가 include 되어있는데, 페이지명이 바뀌면 50개 파일을 전부 수정해주어야 하는 것이다. tiles는 이런 일이 있으면 설정파일만..
참조문서 : https://freemarker.apache.org/docs/index.html1. freemarker란?템플릿 엔진이다. 자바 객체에서 데이터를 생성해서 템플릿에 넣어주면 freemarker에서 템플릿에 맞게 변환하여 HTML 파일을 생성한다. 다른언어도 쓸 수 있지만, JVM 위에서 돌아가므로 주로 자바 서블릿에서 많이 쓴다. freemarker는 HTML 출력만을 위한 엔진은 아니고 텍스트라면 그 어떠한 것도 가능하다. 어떠한 포맷이라도 텍스트에서 텍스트로 변환해서 출력하기 때문이다.freemarker는 웹기반 프레임워크가 아니고 완전한 POJO기반 템플릿 엔진이다. .java + .ftl = .html 이다. 비슷한 템플릿 엔진으로는 velocity 가 있다.장점 : JSP의 가장 ..
참조문서 : http://maven.apache.org/이클립스에서만 깨작깨작해본 나는 메이븐은 이름만 들어보았을 뿐.. 라이브러리 추가할 거있으면 dependency 만 복붙해서 저장하면 자동으로 추가되길래 개편하다. 까지가 메이븐 공부하기 전..ㅋㅋㅋ공식문서가 엄청엄청 잘되어있다.1. 메이븐이란?주로 java 진영에서 프로젝트 빌드, 관리에 사용되는 도구이다. 개발자들이 전체 개발과정을 한 눈에 알아볼 수 있다. 아파치 프로젝트이다.maven의 특징빌드 절차 간소화동일한 빌드 시스템 제공프로젝트 정보 제공구조 ant와의 차이점Ant가 비교적 자유도가 높다. 전처리, 컴파일, 패키징, 테스팅, 배포 가능Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전반적인 프로젝트 관리 기능까지 포함하고 있..
스프링과 연동하려면 마이바티스에서 제공해주는 API를 사용해야 한다. 다음과 같은 클래스를 쓴다.org.mybatis.spring.SqlSessionFactoryBeanorg.mybatis.spring.SqlSessionTemplate1. 연동 기본설정applicationContext-dao-config.xml 에 bean 을 추가한다. 2. 연동방법1 : SqlSessionDaoSupport 상속DAO클래스에 SqlSessionDaoSupport 를 상속받아서 사용한다.// BoardDAO.java @Autowired public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { super.setSqlSessionFactory(sqlSe..
참조문서http://www.ehcache.org/documentation/https://blog.outsider.ne.kr/1094https://www.mkyong.com/spring/spring-caching-and-ehcache-example/ 캐시 엔진 중에 유명한 것들은 memcached, redis 등이 있다. ehcache는 간단한게 쓸 수 있는 캐시라이브러리이며, spring에서 어노테이션으로도 쉽게 쓸 수 있다. 캐시를 적용하기 최적인 경우는 20%의 데이터가 전체 조회 건수의 80%를 차지할 경우(80:20 법칙?) 캐시를 사용함으로써 성능을 대폭 향상 가능하다.1. EHCache란?캐시 엔진 중의 하나이다. 주요 특징으로는 아래와 같다.경량의 빠른 캐시 엔진확장성 : 메모리, 디스크 저..
1. 엘리먼트 : 루트 엘리먼트namespace : 유일한 id 만드는데 도움을 준다. ex. 네임스페이스.id : select 구문에 사용id : 필수속성, 유일한 id를 써야함parameterType : 인자 타입, 보통 패키지까지 안쓰고 로 간결하게 씀.resultType : 필수속성, select의 결과로 반환된 resultSet이 매핑될 객체의 타입 : insert 구문에 사용idparameterTypekeyPropertyresultType : update 구문에 사용idparameterType : delete 구문에 사용idparameter : select문에서 resultType 대신 resultMap 을 사용 가능하다. 검색 쿼리가 단순 테이블 조회가 아닌 join 구문을 포함할 때는 하나..
1. 마이바티스란?객체지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 좀더 쉽게 할수 있게 도와주는 개발 프레임워크이다.자바는 jdbc api 를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재, 한 파일에 java언어와 sql언어가 있어서 재사용성 등이 안좋아지는 단점이 있다.Mybatis는 jdbc의 이러한 단점들을 개선했으며, 개발자가 작성한 SQL 명령어와 자바 객체를 매핑해주는 기능을 제공하며, 기존에 사용하던 SQL 명령어를 재사용한다.특징한 두줄의 자바 코드로 DB 연동을 처리SQL 명령어를 자바 코드에서 분리하여 XML 파일에 따로 관리2. Ibatis 와 MybatisIbatis는 아파치 프로젝트였을때 이야기고, 구글로 넘어가면서 Mybatis로 이름만 바뀌..
서블릿(servlet) from JungHoon Lee 1. 서블릿이란?HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 컨테이너에 의해서 실행되고 관리된다.HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답한다.2. JSP와 서블릿의 차이점JSP : HTML 문서 안에 java 코드를 포함하고 있다. MVC에서 View 역할서블릿 : 자바 코드 안에 HTML을 포함하고 있다. 주로 MVC에서 컨트롤러 역할3. 서블릿 컨테이너(톰캣 등)란?HTTP 요청을 받아서 Servlet을 실행하고 생명주기를 관리하는 역할을 한다.servlet과 웹서버가..
1. static 이란?객체마다 데이터를 가지고 있는데, 이걸 공유해야 할 상황에 static을 쓴다. 여러 객체의 메소드들이 동시에 접근, 수정할 수 있는 전역변수같은 느낌이다.static 키워드를 사용한 변수를 클래스 변수라고 한다. 즉 객체가 아닌 클래스의 변수이기 때문에 new로 객체를 안만들었어도 사용이 가능하다. ex. System.out.println(Test.count);2. 메모리 상 위치클래스 변수는 JVM Runtime Data Area에서 Method area 에 들어간다. 여기서 클래스는 Method area에, 객체는 heap에 올라간다. static이 붙으면 클래스의 시그니처?같은 것들이 메모리 상에 로딩되면서 같이 올라가는 것이다. 따라서 아래에서 설명할 static 변수, ..
1. 접근제어자의 종류현재 클래스동일 패키지상속받은 하위클래스모든 클래스publicOOOOprotectedOOOXprivateOXXX(default)OOXXpublic : 모든 외부에서 직접 접근하거나 호출 가능protected : 현재 클래스와 동일 패키지이거나 다른 패키지이더라도 상속 시에는 접근하거나 호출 가능private : 현재 클래스 밖에서는 사용X(default) : 현재 클래스와 동일한 패키지 내에서만 접근하거나 호출 가능, 뭐 안붙이면 이거다.2. 주로 어디다 쓰는가클래스는 public 과 default만 선택가능하다.필드는 다 쓸 수 있지만 보통 private로 한다. 완벽한 상수는 public static을 주로 사용한다.메소드도 다 할 수 있다. 추상메소드에는 private 쓰면 안..
1. 생성자란?객체를 생성할 때 init하는 것이다. 생성자는 오로지 클래스에서 객체를 생성(new)할 때만 사용된다. 몇가지 특징으로는 생성자의 이름은 클래스명과 동일하고, 리턴 타입이 없다.2. 기본 생성자생성자를 따로 정의하지 않고 클래스를 만들더라도, 객체는 만들어진다. 이것은 컴파일러가 default 생성자를 끼워넣었기 때문이다.// Test.java public class Test { public static void main(String[] args) { System.out.println("hello world"); } } // javap -c Test.class C:\Users\sjh836\Desktop>javap Test.class Compiled from "Test.java" publi..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html1. 예외처리란?Exception Handling 이라고 하며, 잘못된 하나로 인해 전체 시스템이 무너지는 결과를 방지하기 위한 기술적인 처리이다. java에서는 예외와 에러도 객체로 처리한다.예외가 주로 발생하는 원인사용자의 잘못된 데이터 입력잘못된 연산개발자가 로직을 잘못 작성하드웨어, 네트워크 오작동시스템 과부하2. Throwable 클래스(클릭하면 크게 보인다..) Throwable 클래스는 예외처리를 할 수 있는 최상위 클래스이다. Exception과 Error는 Throwable의 상속을 받는다. 유명한 것들만 정리해보았으며, 실제로 더 많다. io.IOExcept..