STUDY
-
BeanSTUDY/백엔드 2021. 1. 5. 18:43
Bean이란? - 스프링 IoC 컨테이너에 의해서 인스턴스화되어 조립되거나 관리되는 객체를 말한다. - 스프링부트의 경우 @Component, @Service, @Controller, @Repository, @Bean, @Configuration 등으로 필요한 빈들을 등록하고 필요한 곳에서 의존관계 주입을 통해 사용하는 것이 일반적이다. - Bean 등록 1. xml 설정 파일에 등록 2. Annotation을 이용한 등록(class를 bean으로 등록) // @Component // @Service // @Controller @Repository public interface HelloWorldMapper { HelloWorld selectHelloWorld(); } ※ Controller, Servi..
-
MybatisSTUDY/백엔드 2020. 12. 31. 10:01
Mybatis란? - 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 Persistence Framework이다. Mybatis는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다. Mybatis는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. ※ Persistence Framework : 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합이다. JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있으며 안정적인 구동도 보장한다. - 특징 쉬운 접근성과 코드의 간결함. XML ..
-
Server LogSTUDY/백엔드 2020. 12. 28. 15:53
Logging이란? - 프로그램 개발 중이나 완료 후에 발생할 수 있는 오류에 대해 디버깅하거나 운영 중인 프로그램 상태를 모니터링하기 위해 필요한 정보(로그)를 기록하는 것이다. 서비스 동작 상태 파악 장애 파악 & 알람 - 종류 java.util.logging JDK 1.4부터 포함된 표준 로깅 API 별도 라이브러리 추가 불필요 기능이 많이 부족해 다른 로그 라이브러리를 많이 사용 Apache Commons logging 아파치 재단의 Commons 라이브러리 중에 로그 출력을 제공하는 라이브러리 Log4j/Log4j2 아파치 제단에서 제공하는 자바 기반 로깅 라이브러리 Logback Log4j를 개발한 Ceki Gulcu가 Log4j의 단점 개선 및 기능을 추가하여 개발한 로깅 라이브러리 Log4..
-
Apache Spring boot(내부 tomcat) 연동STUDY/백엔드 2020. 12. 24. 18:59
apache와 tomcat은 연동을 위해서 AJP를 통해 통신을 해야한다. apache는 80포트로 들어오는 요청을 처리하고, 요청 중 서블릿이 필요한 요청은 tomcat을 통해 처리한다. AJP를 이용한 연동을 위해 mod_jk 모듈을 사용한다. 1. httpd_conf 파일 수정 LoadModule jk_module modules/mod_jk.so // 모듈 위치 JkWorkersFile "workers.properties파일 경로" JkLogFile "logs/mod_jk.log.%y%m%d 86400 " JkLogLevel error JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" 2. workers.properties 추가 - 연동할 tomcat의 목록 worker.l..
-
Linux Shell ScriptSTUDY/리눅스 2020. 12. 23. 12:04
1. shell script 파일 생성 touch 파일명.sh 2. 파일 실행 권한 부여(chmod) 권한 종류 : r(읽기, 4) / w(쓰기, 2), x(실행, 1) 0 - 7까지 숫자를 통해 권한을 부여할 수 있다. chmod 755 파일명.sh // 소유자에게는 rwx, 그룹&기타사용자에게는 r-x 권한 부여 chmod +x 파일명.sh // 모든 사용자에게 실행(x)권한 부여 3. vi편집기로 스크립트 작성 vi 파일명.sh // vi편집기로 쉘 스크립트 파일 열기 shell script 상단에 #!/bin/bash 설정 - 해당 스크립트 파일을 bash 쉘로 실행시키겠다는 의미, 만약 다른 쉘로 실행시키고 싶다면 #!/bin/쉘명(ex. tcsh)로 작성하면 된다. 원래 shell script..
-
CI/CDSTUDY/배포 2020. 12. 21. 18:21
CI(Continuous Integration)/CD(Continuous Deployment)란? - CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션이다. - 특히, CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이로써 개발자는 코드 작성에만 집중할 수 있게 된다. CI(Continuous I..
-
TC(Test Case) & JUnitSTUDY/백엔드 2020. 12. 18. 17:45
JUnit Java에서 독립된 단위 테스트(Unit Test)를 지원해주는 프레임워크이다. 특징 @Test 메서드를 호출할 때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어진다. Test마다 경과 시간이 나오기 때문에 최적화된 코드를 유추할 수 있다. org.junit.jupiter junit-jupiter-params 5.4.2 test 지원하는 Annotation @Test - 테스트를 실행하는 메소드로 선언 JUnit은 각각의 테스트가 서로 영향을 주지 않고 독립적으로 실행되며 @Test마다 개체를 생성해서 내부적으로 실행된다. @Disabled / @Ignore - 테스트를 실행하지 않는 메소드로 선언 @BeforeEach / @Before - @Test 메소드가 실행되기 전에 실행된다..
-
WEB 서버와 WASSTUDY/백엔드 2020. 12. 17. 17:01
WEB 서버란? - 소프트웨어와 하드웨어로 구분되며, 소프트웨어 WEB서버는 클라이언트로부터 HTTP 요청을 받아들이고 HTML 등의 웹 페이지 문서에 반응하는 컴퓨터 프로그램으로, HTTP 프로토콜을 기반으로 하여 브라우저의 요청을 서비스하는 기능을 담당한다. WAS란? - HTTP를 통해 컴퓨터나 장치에 application을 수행해주는 미들웨어이다. 동적 서버 컨텐츠를 수행한다는 것으로 일반 WEB 서버와 구별되며, 주로 데이터베이스 서버와 같이 수행된다. 1) 차이점 WEB 서버는 정적인 컨텐츠(html, css, 이미지)를 제공하고, WAS는 DB조회나 어떤 로직을 처리하는 동적인 컨텐츠를 제공하는 서버이다. 즉, 정적 컨텐츠 요청이 오면 WEB 서버에서 수행하고, 동적 컨텐츠 요청이 오면 WE..