JAVA (33) 썸네일형 리스트형 두 좌표의 거리 계산 좌표값만 가지고 두 지점의 거리를 계산하고자 한다.이때 필요한 공식은 Haversine 공식...나는 이 공식을 잘 모르기때문에 적어두고 사용하려고 한다..//현재좌표double lat1 = 35.8240;double lon1 = 127.1481;//목적지좌표double lat2 = 37.5668;double lon2 = 126.9786;double latitude = Math.toRadians(lat2 - lat1);double longitude = Math.toRadians(lon2 - lon1);double a = Math.sin(latitude / 2) * Math.sin(latitude / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Ma.. 위치정보 활용하기 & 공공데이터 XML 파싱 - 지도활용 Part2 지난 포스팅에서 현재위치를 가져와서 카카오 지도에 표출하는 과정까지 진행했다. (https://seollica.tistory.com/153)이번에는 공공데이터를 활용하여 근처 관광지 정보를 가져오는 과정을 해보도록 하겠다. * 한국관광공사 오픈 apihttps://www.data.go.kr/data/15101971/openapi.do#/ 내가 사용한 오픈 api는 위의 링크의 api이며, 위치기반 관광정보조회를 사용할것이다.활용신청을 하고면 개발용 인증키를 바로 발급받을수 있다. String serviceUrl = "http://apis.data.go.kr/B551011/KorService1/locationBasedList1";String param = "MobileOS=" + MobileOS + .. JAVA XML 데이터 값 가져오기 XML 형태로 된 String 변수에서 특정 태그의 값을 가져올일이 있었다.정규식 패턴을 활용하여 매칭되는 value값을 찾는 함수를 만들었다.public String extractValue(String text, String keyword) { Pattern pattern = Pattern.compile("(.*?)"); Matcher matcher = pattern.matcher(text); if (matcher.find()) { return matcher.group(1); } return "";} 싱글톤 패턴 싱글톤 패턴 - 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. - 공통된 객체를 여러개 생성해서 사용하는 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) - 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. 하나의 일반적인.. [실습] 서블릿+컨넥션+트렌젝션+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.. 커넥션 풀 구현 Connection Pool 구현 ▶ 라이브러리에 DB 드라이버의 jar 파일을 추가한다. - mariadb : org.mariadb.jdbc.Driver - mysql : org.git.mm.mysql.Driver ▶ context.xml 파일의 Resource를 설정한다. - Resource를 등록하여 웹에서 JNDI로 호출할 이름과 정보를 설정한다. 더보기 1. name : JNDI로 호출될 이름을 설정 2. auth : DBCP를 관리할 관리자 (Container or Application) 3. type : 해당 resource의 return type 4. factory : dbcp를 유용하는 관리 클래스 5. driverClassName : JDBC를 이용하기 위한 드라이버 클래스 6. url.. 컨넥션 풀 Connection Pool JNDI (Java Naming and Directory Interface) - 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고하기 위한 자바 AP - 외부에 있는 객체를 가져오기 위한 기술 DBCP(Database Connection Pool) - 데이터베이스와 연결된 커넥션을 미리 만들어서저장. 필요할때 저장된 곳(pool)에서 가져다 씀 - 데이터베이스 연결과 해제 직접 관리한다. 미리 컨넥션 정보를 가지고 있어서 한번 설정해 두면 디비정보를 계속 꺼낼 필요가 없다. 실무에서 사용하는 방법. 커넥션 풀. ▶ Connection Pool 의 원리 ▶ DBCP 특징 풀 속에 미리 커넥션이 생성되어 있기 때문에 커넥션을 생성하는 데 드는 연결 시간이 소비되지 않는.. 이전 1 2 3 4 5 다음