1. 스프링 mvc 프로젝트 생성

2. pom.xml 수정

2-1. 자바버전 및 스프링 프레임워크 버전 수정(자바버전, 스프링프레임워크버전)

<properties>
		<java-version>1.8</java-version>
		<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
		<org.aspectj-version>1.6.10</org.aspectj-version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

2-2. 메이븐 컴파일러 플러그인 변경(버전, 소스, 타겟)

	<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>

2-3. 스프링 테스트(버전은 현재 스프링에 맞추기), 롬복 추가, log4j 버전 수정, 런타임 수정

		<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${org.springframework-version}</version>
			<scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
			<exclusions>
				<exclusion>
					<groupId>javax.mail</groupId>
					<artifactId>mail</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.jms</groupId>
					<artifactId>jms</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jdmk</groupId>
					<artifactId>jmxtools</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jmx</groupId>
					<artifactId>jmxri</artifactId>
				</exclusion>
			</exclusions>
			<!-- <scope>runtime</scope> -->
		</dependency>

2-4. jnuit 버전 수정

		<!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

* import org.junit cannot be resolved 오류 : property -> Java build path -> Libraries -> Add Libraries -> Junit

 

2-5. HikariCP 추가

<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>2.7.4</version>
</dependency>

2-6. mybatis, mybatis-spring, spring-jdbc, spring-tx 추가

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

2-7. log4jdbc-log4j2 추가(sql 로그 확인용도)

<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>

2-8. servlet 버전 업(기존 버전 주석 후 추가함)

		<!-- Servlet -->
		<!-- <dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency> -->
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>javax.servlet-api</artifactId>
		    <version>3.1.0</version>
		    <scope>provided</scope>
		</dependency>

2-9. json 데이터 처리 위해 jackson-databind 추가

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.4</version>
</dependency>

2-10. 파일 업로드위해 commons-fileupload 추가

<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>

 

3. root-context.xml 수정

3-1. HicariConfig, dataSource 추가

	<!-- HicariCP configuration -->
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
				
		<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
		<property name="jdbcUrl" value="jdbc:log4jdbc:mysql://경로/스키마?useSSL=false&amp;serverTimezone=UTC"></property>
		<property name="username" value="계정명"></property>
		<property name="password" value="비밀번호"></property>
	</bean>
	
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
		<constructor-arg ref="hikariConfig"></constructor-arg>
	</bean>

3-2. mybatis sql Session Factory Bean 추가(+필요시 mybatis config 추가)

	<!-- MyBatis SqlSessionFactoryBean -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
	</bean>

* 어노테이션을 이용하여 마이바티스를 사용할 때 해당 매퍼 패키지를 스캔하는 것을 추가

<mybatis-spring:scan base-package="해당매퍼패키지"/>

* mybatis-config.xml은 src/main/resources 하위에 위치

* DB의 컬럼과 vo, dto를 연동하기 위한 옵션 추가함

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
    <settings>        
        <!-- 전통적 DB 컬럼명을 JAVA의 Camel표기법으로 자동 매핑 설정 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>						
    </settings>    	
    
</configuration>

 

1. 앱키 발급받기

2. 코드1 : db에서 값 가져와서 출력루프문돌기

<title>좌표로 주소를 얻어내기</title>
</head>
<body>
	<script type="text/javascript"
		src="//dapi.kakao.com/v2/maps/sdk.js?appkey=<--앱키-->&libraries=services"></script>
	<script>
    //지오코더 변수 생성
	var geocoder = new kakao.maps.services.Geocoder();
    //jstl로 반복문을 돌며 db의 좌표값을 주소로 화면에 출력
	<c:forEach items="${address }" var="addr">
		var coord = new kakao.maps.LatLng(${addr.key}, ${addr.value}); 
		var callback = function(result, status) {
		    if (status === kakao.maps.services.Status.OK) {
            	//콘솔에 출력
		        //console.log('그런 너를 마주칠까 ' + result[0].address.address_name + '을 못가');
		        
                //현재 변환하고 싶은 좌표 화면에 출력
                document.write(${addr.key} + "," + ${addr.value} + "=");
                //변환된 결과 값(주소) 출력
		        document.write(result[0].address.address_name);
                //줄바꿈
		        document.write("<br>");
		    }
		};
        //역지오코딩 실행
		geocoder.coord2Address(coord.getLng(), coord.getLat(), callback);
	</c:forEach>
</script>
	
</body>

3. 코드2 : 파라미터 x,y를 넘기고 해당 값 역지오코딩해주기

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String x = request.getParameter("x");
	String y = request.getParameter("y");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>좌표로 주소를 얻어내기</title>
</head>
<body>
	<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=APPKEY&libraries=services"></script>
	<script>
		var geocoder = new kakao.maps.services.Geocoder();
	
		var coord = new kakao.maps.LatLng(<%=x%>,<%=y%>); 
		var callback = function(result, status) {
		    if (status === kakao.maps.services.Status.OK) {
		        console.log(result[0].address.address_name);
		        document.write(<%=x%> + "," + <%=y%> + "=");
		        document.write(result[0].address.address_name + "<br>");
		    }
		};
		geocoder.coord2Address(coord.getLng(), coord.getLat(), callback);
</script>
</body>
</html>

 

4.결과화면

5. 출력시 구주소 외 신주소나 건물 본번 부번 등 기타 정보가 필요하다면

developers.kakao.com/docs/latest/ko/local/dev-guide#coord-to-address

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

위 페이지를 참고해서 result[0]. 뒷부분을 수정해주면 된다.

 

6. 구글은 파라미터로 넘기면 된다던데...

 

키 값을 이용하지 않고 삭제, 혹은 업데이트를 하려고 했을때

-> 안전모드를 일시 해제하기

set sql_safe_updates=0;

-> 오류났던 쿼리 입력하면 잘 됨.

'mySQL' 카테고리의 다른 글

mySQl과 JAVA 연결하기 (connecter-j)  (0) 2020.02.17
2020. 02. 14일 기준/ CRUD를 위한 sql문 정리  (2) 2020.02.14
mySQL 설치와 자바 연결  (0) 2020.01.31

내가 설치할 때 참고한 글은 이것

m.blog.naver.com/newlywedkim/221716706136

 

[즐여긍TALK] NAS2DUAL 웹서버 구축

NAS 고유의 목적은 NETWORK상에서 저장공간을 제공하는 것이다. 그러나, 요즘 NAS 장비는 D...

blog.naver.com

 

하지만..!

내가 받은 8.5.64.tar.gz 파일에는 sh파일이 없었고..!

bat 파일만 있었고...!

실행하면 "(" unexpected만 뜨고..!

 

하는 오류를 만났다.

 

결국 해결하고 설치 했는데, 나 같은 사람이 또 있겠지 하는 마음으로 작성하는 글

 

1. tar.gz 파일 XXXXX!!! zip 파일 OOOOO!!! 을 다운받는다.

 

 

2. nas에 접속해 해당 위치의 파일을 압축해제해준다

3. 해당 톰캣 경로/bin/catalina.sh 파일을 다운받고 상단 링크를 참조하여 자바 홈을 설정해준다

4. 이제!!! startup.sh 파일을 실행해본다!!!! (권한오류가 발생하면 chmod 755 startup.sh 입력하여 권한 수정해준다)

5. 이래도 실행안되나 봐라 실행 무조건 된다.

6. putty 종료는 exit

7. 나스 텔넷도 닫아주시길..

 

 

 

이 대단하고 위대하신 다음 카카오 개발자분들이 시키신대로 하니까 까만화면 나올때.

https://itstudy-mary.tistory.com/226

 

Android Studio, JAVA] 다음카카오 지도 API 구현하기

쉐어하우스 프로젝트이다보니, 막히던 부분 중 하나는 다음카카오 지도 API이다. 이게 참.. ㅋㅋ. 구현하기 위해 참고하는 개발자 페이지가 너무나도 불친절하다.. 필자도 참... 여러가지 오류를

itstudy-mary.tistory.com

1. 퍼미션 하나 더 추가

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

2. 메타데이터 위치 확인

<application
        <-- 생략 -->
        >
        <activity android:name=".MainActivity">
            <intent-filter>
               <-- 생략-->
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="발급받은 앱 키 입력" />
    </application>

3. build-gradle에 splits 추가 

android {
    <-- 생략 -->

    defaultConfig {
        <-- 생략 -->
    }

    buildTypes {
        <-- 생략 -->
    }
    compileOptions {
       <-- 생략 -->
    }

    splits {
        abi {
            enable true
            reset()
            include 'x86', 'armeabi-v7a', 'x86_64'
            universalApk true
        }

    }
}

https://developer.android.com/studio/build/configure-apk-splits?hl=ko

 

다중 APK 빌드  |  Android 개발자  |  Android Developers

다중 APK를 위한 앱을 빌드하고 구성하는 방법을 알아보세요.

developer.android.com

 

 

이제 까만화면 굿바이

녹스도 에뮬이라 생각해서

10.0.2.2:포트번호... 를 사용했던 나...

반성한다.. 에뮬 맞는디ㅠㅠㅠㅠ(다음지도 안됨..)

 

AVD에서는 10.0.2.2:포트번호로 잘 들어가지는데...

불편한 AVD를 계속 쓸 수 없었다.

계속 타임아웃에러만 날뿐 ㅠㅠ

 

녹스에서는 안드로이드 디바이스와 마찬가지로

cmd -> ipconfig -> ip4주소:포트번호를 써야한다

 

오늘의 교훈 끝

다음지도 api가 안드로이드 adb지원 안한다니...해서 도전해보는

안드로이드 스튜디오와 녹스 연결하기

(okky의 한 댓글에서 녹스로 해보면 안되냐는 걸 봄.)

 

 

1. 녹스 설치

kr.bignox.com/

 

녹스 앱플레이어

지금까지 써본 앱플레이어중엔 녹스가 제일 좋은것 같아서 몇년 전부터 계속 애용중입니다. 앞으로도 유저 의견 많이 받아들이고 번창하시길 바랍니다 :)

kr.bignox.com

 

2. 명령 프롬프트 실행시켜 설치위치에서 nox_adb.exe connect 127.0.0.1:62001 입력. 연결 확인.

 

3. 안드로이드 스튜디오에서 Run 해보기 

4. 안된다. 여전히 안된다. 역시 녹스도 가상머신이라 안되나봄.

지오 코딩이란 무엇입니까?

지오 코딩 은 주소 (예 : '1600 Amphitheatre Parkway, Mountain View, CA')를 지리적 좌표 (예 : 위도 37.423021 및 경도 -122.083739)로 변환하는 과정으로,지도에 마커를 배치하거나지도를 배치하는 데 사용할 수 있습니다.

역 지오 코딩 은 지리적 좌표를 사람이 읽을 수있는 주소로 변환하는 프로세스입니다.

 

구글

https://developers.google.com/maps/documentation/geocoding/overview?hl=ko#ReverseGeocoding

 

Overview  |  Geocoding API  |  Google Developers

Geocoding converts addresses into geographic coordinates to be placed on a map. Reverse Geocoding finds an address based on geographic coordinates or place IDs.

developers.google.com

https://apis.map.kakao.com/web/sample/coord2addr/

다음 좌표로 주소얻기

apis.map.kakao.com/web/documentation/#services_Geocoder

 

+ Recent posts