728x90

자바 120

[Java] Class에 대하여

클래스와 인스턴스 우리가 'new MemberRepository()' 와 같은 코드를 작성하면 애플리케이션은 'MemberRepository 클래스'를 참조하여 'MemberRepository 인스턴스'를 만들게 됨. 인스턴스를 만든다는 것은 클래스의 정보를 기반으로 메모리에 새로운 객체를 만든다는 의미. 예를들면, 클래스는 붕어빵 틀에 인스턴스는 붕어빵에 비유 가능. 붕어빵 틀을 이용하여 붕어빵을 만들수 있지만 붕어빵 틀과 붕어빵은 서로 다른것처럼. 클래스는 필드(멤버변수)와 메서드를 가질 수 있음. 그리고 필드와 메서드에는 static 키워드를 붙일 수 있음. static 이 붙은 필드나 메서드는, '인스턴스의 소유'가 아닌, '클래스의 소유'가 됨. 클래스 소유의 뜻 클래스의 소유라는 뜻은, 어떤 ..

JAVA 2021.07.28

[GeoServer] tomcat 배포

파일질라를 통해서 Java war를 배포하는건 문제가 없었는데, GeoServer를 이용하려고하니 처음이라 머리가 조금 아팠다. 하지만 생각보다 엄청 단순했음... geoserver를 tomcat에 설치하면 되는거였따... gerserver에 호스트 주소에 맞는 창을 따로 설치해야하는데.. 쉽게 생각하자면, 서버가 Linux라면 Linux에 Geoserver를 설치하거나, 파일질라에 Geoserver.war를 옮겨줘서 풀어줘서 끄읕... Linux나 파일질라가 어색해서 시간을 조금 허비했네..ㅎㅎ;;

[Java]Cannot create PoolableConnectionFactory

스프링에서 db에 접속하는 방법 1. JDBC만을 이용한 접속 이 경우에는 pom.xml를 이용하여 jdbc 작성을 위해 driver를 다운로드 2. Spring에서 datasource를 정의하고 이를 통한 접속 이 경우에 pom.xml과 root-context.xml이 사용 혹은 context-datasource 3. Mybatis를 이용한 접속 - 2번과 사용하는 파일은 똑같지만 sqlSessionFactory 라는 Mybatis 이용시 필요한 객체를 사용하여 db에 접속하는 방법

JAVA 2021.07.27

[Java] Spring 토비의 스프링

정리 - 예외를 잡아서 아무런 조취를 취하지 않거나 의미 없는 throws 선언을 남발하는 것은 위험. - 예외는 복구하거나 예외처리 오브젝트로 의도적으로 전달하거나 적절한 예외로 전환 - 좀 더 의미 있는 예외로 변경하거나, 불필요한 catch/throws를 피하기 위해 런타임 예외로 포장하는 두 가지 방법의 예외 전환 - 복구 할 수 없는 예외는 가능한 빨리 런타임 예외로 전환하는것이 바람직 - 애플리케이션의 로직을 담기 위한 예외는 체크 예외로 만듬 - JDBC의 SQLException은 대부분 복구 할 수 없는 예외이므로 런타임 예외로 포장해야함 - SQLException의 에러코드는 DB에 종속되기 때문에 DB에 독립적인 예외로 전환될 필요가 있음 - 스프링은 DataAccessException..

JAVA 2021.07.26

[Spring] 스프링 핵심 원리 - 기본편(1)

https://start.spring.io/ 주소를 통해서 스프링 초기 Setting을 할 수 있음. Project Metadata 부분에서 Artifact는 프로젝트의 빌드명이 된다. 윈도우 기준 Settings에서 Gradle를 검색하면 Gradel Projects를 설정 할 수 있다. Build and run using 과 Run tests using을 InjelliJ IDEA로 설정해주면 실행해주는 속도를 빠르게 할 수 있을 것이다. Q. 인터페이스를 사용하는 목적? 인터페이스를 사용하는 가장 큰 목적은 선언과 구현을 분리하기 위함. 그래서 사용하는 입장에서 인터페이스만 의존하고, 구현을 모르도록 하는 것. 그래야 향후 구현을 했을때, 클라이언트 코드를 변경하지 않아도 되기 때문. 인터페이스를 사..

JAVA 2021.07.13

[Spring] 3장 템플릿

리소스 반환과 close() Connection이나 PreparedStatement에는 close()메소드가 있음. 이름 그대로 열린것을 닫는 역할인데 보통 리소스를 반환하는 의미로 이해하는것이 좋다. Connection과 PreparedStatement는 보통 풀(pool) 방식으로 운영. 미리 정해진 풀 안에 제한된 수의 리소스(Connection, Statement)를 만들어 두고 필요할 때 이를 할당하고, 반환하면 다시 풀에 넣는 방식으로 운영. 요청이 매우 많은 서버환경에서는 매번 새로운 리소스를 생성하는 대신 풀에 미리 만들어둔 리소스를 돌려가며 사용하는편이 훨씬 유리함. 대신 사용한 리소스는 빠르게 반환해야한다. 그렇지 않으면 풀에 있는 리소스가 고갈되고 결국 문제가 발생하게 된다. clos..

JAVA 2021.06.24

[Java] getRealPath("/")

파일 업로드 로직을 구현하는 도중에 오류(?)까진 아닌거 같은데, 자바에서 처리가 안되서 찾아봤다. getRealPath("/"); 는 경로상 webapp 폴더까지를 의미하는데, Java에서 저렇게 빨간줄이 찍 하고 나온건 deprecated 되었다는 뜻이라고 한다. 이유는 ServletContext에서도 있는걸 중복으로 가지고 있어서 그렇다고한다. 이에따른 해결방안은 request.getSession().getServletContext().getRealPath("/"); 로 적용하면 된다고한다. 간단한건가..?!

오류 모음집 2021.06.23

[Spring] 2장 테스트

단위 테스트(unit test) : 작은 단위의 코드에 대해 테스트를 수행한 것. 단위 테스트를 하는 이유? 개발자가 설계하고 만든 코드가 원래 의도한 대로 동작하는지 개발자 스스로 빨리 확인하기 위해서 getUserFailure() 테스트 코드에 나타난 기능 단계 내용 코드 조건 어떤 조건을 가지고 가져올 사용자 정보가 존재하지 않는 경우에 dao.deleteAll(); assertThat(dao.getCount(), is(0)); 행위 무엇을 할 때 존재하지 않는 id로 get()을 실행하면 get("unknown_id"); 결과 어떤 결과가 나온다 특별한 예외가 던져진다 @Test(expected = EmptyResultDataAccessException.class) 테스트 주도 개발(TDD, Te..

JAVA 2021.06.14

[Openlayers] 기능정리

기본사이트 구상 : 최종 구현 시스템을 고려하여 프로토 타입 생성 확대, 축소 - 기본 http://openlayers.org/en/latest/examples/accessible.html#map 화면 이동 및 검색 목록 클릭시 이동 - http://openlayers.org/en/latest/examples/animation.html http://openlayers.org/en/latest/examples/center.html - http://openlayers.org/en/latest/examples/navigation-controls.html 마크표시 + 이동경로 - 기본 및 전제조건, 부가기능 기능 http://openlayers.org/en/latest/examples/draw-features...

JavaScript 2021.06.14

[Spring] 1장 오브젝트와 의존관계(4)

[Spring] 1장 오브젝트와 의존관계(3) [Spring] 1장 오브젝트와 의존관계(2) [Spring] 1장 오브젝트와 의존관계(1) 스프링이란? 개발에 사용되는 애플리케이션 프레임워크. 개발을 빠르고 효율적으로 할 수 있도록 틀과 프로그래밍 모델, 기 itkjspo56.tistory.com public class UserDao{ private ConnectionMaker connectionMaker; public UserDao(ConnectionMaker connectionMaker){ this.connectionMaker = connectionMaker; } ... } DI컨테이너는 자신이 결정한 의존관계를 맺어줄 클래스의 오브젝트를 만들고 이 생성자의 파라미터로 오브젝트 레퍼런스를 전달. 바로..

JAVA 2021.06.10
728x90