본문 바로가기

개발

(81)
2. Spring Batch Admin 스프링 배치 어드민은 스프링은 오픈소스 프로젝트이며, 스프링배치에 대한 유저인터페이스를 웹 베이스로 제공합니다. spring boot 와 spring admin을 연동시켜보았습니다. – maven dependency 추가 spring admin batch 에서 web 설정을 그대로 쓰기 위해 servlet-config, webapp-config 설정을 가져옵니다. – mainConfiguration을 import하고 bootRun을 하면 콘솔에서 접근가능한url들이 나타납니다. http:도메인/home 으로 들어가면 다음과 같이 페이지가 뜹니다. spring IO 에서 spring batch에 대한 소식을 봤는데 버전 2.0.0.M1 이 릴리즈 되면서 다양한것들이 가능해졌습니다. [… will now s..
1. Spring batch 소개. 0. Why Spring Batch 기존 배치 프로그램 [A씨의 배치 개발 일상] A씨는 배치 개발을 위해 개발을 시작한다. A씨는 DB에 자신있어서 프로시저를 애플리케이션에서 호출해서 쓰고, 스케줄러는 DB 스케줄러를 쓰기로 한다. 기껏 JPA로 DB에 독립적으로 만들어놨는데 프로시저를 호출함으로 써 DB에 다시 종속적으로 포함됬다. 프로시저를 작성하고 DB 스케줄러를 등록하면서 개발을 완료했다. 테스트 과정에서 갑자기 이유없이 배치가 정지되는 상황이 생기고, 비정상적으로 중단된것을 알지 못했다. 확인 결과 한꺼번에 많은 양이 몰려서 발생한 에러였고, A씨는 밤새 비정상 정지되었던 배치를 다시 돌리는 로직을 추가 했으며 A씨는 배치가 돌았는지 쿼리를 실행해보고 확인한다. 현업에서 배치프로그램을 쓰다가 ..
Strict-Transport-Security 헤더에 관련해서... Strict-Transport-Security 헤더 - http 헤더는 브러우저에게 웹 사이트와의 통신을 반드시 유효한 https 터널을 통해서 진행하라고 지시.- 임의의 https 오류를 받아들이고 그냥 비보안 연결에서 통신을 계속 진행하는 것은 불가능.- 브러우저는 사용자가 브라우징을 더 진행하지 못하게 하고, 대신 오류를 설명해 준다.- Strict-Transport-Security 헤더를 이용하면 평문(암호화되지 않은) 통신 채널을 통해 전달된 내용을 사용자가 받아들이지 못하게 할 수 있다 리다이렉션으로 해결. Protected Context /* PUT DELETE HEAD OPTIONS WEB-INF/web.xml 또는 tomcat/conf/web.xml 에 넣고 톰캣을 재시작하면 됩니다. t..
자바 다형성과 추상클래스 https://opentutorials.org/module/516/6127 이해하기 쉽게 잘 나와있음.
http url 문법과 리소스 리소스 : 웹 서버는 웹 리소스를 관리하고 제공하는데, 이 리소스는 웹 콘텐츠의 주요 원천이다. https://www.google.co.kr 대부분 url은 스킴://서버위치/경로로 이루어져 있다. 더 자세하게 나누면 스킴://사용자이름:비밀번호@호스트:포트/경로;파라미터?질의#프레그먼트 스킴 : 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다. 또한 스킴은 프로토콜을 의미하는데 http 프로토콜이 아닌 다른 프로토콜로도 사용가능 하다. ex> mailto, ftp 등사용자이름 : 몇몇 스킴은 리소스에 접근하기 위해 사용자 이름을 필요로 한다.호스토와 포트는 리소스를 호스팅 하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디있는지 알아야하는데 호스트와 포트는 그것을 제공해준다. 경..
equal, ==, 데이터베이스로 객체를 식별하는 3가지 방법. 자바에서는 동등성과 동일성이 존재한다. 동일성을 나타내는 ==는 jvm에 정의돼 있는 개념이다. 두 객체가 같은 메모리 위치를 가리키고 있다면 두 객체 참조는 동일하다고 보는 것이다. ==비교는 같은 클래스 형이지만 물리값이 다르면 다르다고 나오는것이다. 동등성은 equals() 메서드를 구현하는 클래스에 의해 정의되는 개념이며, 서로 다른 두 객체가 같은 값을 갖는것을 말한다. 메모리 공간상에 점유하는 위치가 각자 다르더라도 서로 다른 두 string이 같은 문자를 나타낸다면 두 string은 같다고 보는 식이다. 영속화를 더하면 영속 객체는 데이터베이스 테이블의 특정한 한 행을 메모리 상에서 표현하게 된다. rdbms에 저장된 객체는 같은 행을 나타내거나, 동등하게 같은 테이블과 주키 값을 공유할 때..
프로그램 개발 할때 가장 먼저 해야하는 비즈니스 도메인! 어플리케이션을 처음부터 만들때 가정 먼저 해야 할 일은 비즈니스 도메인을 분석하는것이다. - 소프트웨어 시스템과 관련 있는 주요 엔티티를 식별한다. (엔티티는 사용자들이 이해하고 있는 개념) - 모든 엔티티는 비즈니스를 개념적으로 바라보는 관점에서 찾아야 하며, 이것을 비지니스 모델이라 한다. - 비지니스 모델 분석하고 개념적인 수준의 객체지향 모델을 만든다. (uml 같은) - 사용자가 관심을 가지고 있는 엔티티로 압축하여 문제 영역에서 엔티티를 객체지향 모델로 표현한것을 도메인 모델이라 한다. - 도메인 모델의 목적은 애플리케이션 목적에 필요한 핵심적인 비지니스 정보를 파악하는것. 엔티티- 데이터베이스 자료로 표현하는 것으로 사람이 생각하는 개념이나 정 보 단위.- 현실 세계의 대상체로 유형, 무형의..
하이버네이트 영속화, 왜 하이버네이트를 사용하는지, 패러다임 불일치 1.하이버네이트를 사용하기 위해 알아야 하는 개념. 영속화 : 애플리케이션 개발의 기본 개념중 하나 . 영속화를 통해 자신이 만들어낸 프로세스 밖에서도 존재 가능하다. 자바에서 영속화를 이야기 할때는 일반적으로 SQL을 이용해서 관계형 데이터베이스에 데이터를 저장하는 것을 가르킨다. 하이버네이트를 효율적으로 사용하려면 관계형 모델과 SQL을 알아야한다. ---------------------------------------------------------------------------------------- 2. ORM의 필요성. 패러다임 불일치SQL과 자바는 패러다임 불일치를 발생 시킨다. SQL은 결과 데이터를 표로 가져오고 (Relation) 반면 자바는 상호 연관관계있는 객체망을 가지고 있다. ..