이번에 프로젝트 진행하면서, 내용을 정리해봅니다.

 

필요한 작업은 크게 3가지 입니다.

 

1. 톰캣 원하는 폴더에 복사하기

2. 톰캣 서비스에 등록하기

3. 인바운드 규칙 추가

 

위 3가지 작업 중, 이번에 알아볼 작업은 2번 톰캣 서비스에 등록하기 입니다.

 

톰캣 경로가 다음과 같다고 했을때, startup.bat 을 실행시켜서, 톰캣을 띄울 수 있습니다.

tomcat-8.5\apache-tomcat-8.5.61\bin\startup.bat

 

이렇게 진행했을 경우, 커맨드 창을 닫으면 톰캣도 중지되는 단점이 있습니다.

 

그래서! 톰캣을 윈도우에 서비스로 등록을 해서 진행하려고 합니다!

 

서비스로 등록전에, 다들 아시는 내용이겠지만 톰캣을 포트가 현재 사용중이 아닌지 체크하셔야 합니다.

 

커맨드 창을 띄워서, 아래 명령어를 입력해서 사용중이 아닌지 확인합니다.

리스닝 중인 것만 보려면, 파이프 뒤 부분까지 입력합니다.

 

netstat -ano | find "LISTENING"

 

혹, 사용중이라면 톰캣의 포트를 변경해주어야 합니다.

tomcat-8.5\apache-tomcat-8.5.61\conf\server.xml

 

포트가 몇개 있어서, 다 바꾸어 줍니다.

 

 

모든 준비가 완료되었으면, 커맨드를 열고 \bin 경로로 이동하여 명령어를 실행해줍니다.

tomcat-8.5\apache-tomcat-8.5.61\bin

 

service.bat install my-tomcat8

* my-tomcat8 부분은 서비스 명이고, 임의로 입력하시면 됩니다.

 

작업관리자 > 서비스 > 해당서비스 더블클릭

 

 

해당서비스 우클릭 > 속성

 

 

시작유형을 자동으로 선택해주면, 윈도우 실행시 자동 실행된다.

만약 DB도 같은 서버에 있으면, DB가 우선 실행되고 톰캣이 실행될 수 있도록 자동(지연된 시작) 을 선택해준다.

 

시작유형 자동 > 시작 > 확인

 

 

 

톰캣 실행되는지 확인 해보면 끝납니다.

 

저는 테스트 후에, 서비스를 삭제하였습니다.

 

 

끝.

카카오맵/카카오맵API사용법/카카오맵 위치 표시/KAKAO MAP API/카카오맵API사용하기/카카오맵 주소 좌표/카카오맵 주소를 좌표로 변환

 

 

구글맵이나, 네이버지도를 사용한 경험은 있었는데, 이번에 로또관련 페이지를 만들면서 카카오맵을 처음 사용해 보았다. 구글 개발자 페이지 들어가보니 깔금하게 정리가 되어 있어서 사용에는 어려움이 없었다. 

 

우선 내가 할 작업은 아래와 같다.

 

1. 로또 당첨판매점 주소를 가져온다.

2. 주소를 좌표로 변환한다.

3. 좌표를 카카오맵에 원하는 모양으로 표시해준다.

 

 

카카오API를 사용하려면 앱키가 필요하기 때문에, 혹시 아직 발급전이면 아래 페이지에 들어가서 키를 받아와야 한다.

 

 

Kakao Developers

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

developers.kakao.com

 

내 내플리케이션 > 앱설정 > 플랫폼 메뉴로 들어가서 자신이 사용할 플랫폼을 등록해 준다.

나는 Web페이지에서 사용할 것이기 때문에 일단, 내 페이지들을 등록해 두었다.

개발 환경까지 등록해줘야 편하다.

 

플랫폼 등록

 

 

 

Javascript API는 아래 페이지에서 가이드를 참고하면 된다.

https://apis.map.kakao.com/web/guide/

 

기본 준비가 끝났으니, 이제 웹페이지 작업을 해보자.

 

 

우리가 사용할 API와 라이브러리는 아래와 같다.

<!--실제 지도를 그리는 javascript API를 불러오기-->
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=[앱키]&libraries=services"></script>

<!--주소-좌표 변환을 할수 있응 services 라이브러리 불러오기-->
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=[앱키]"></script>

 

 

사용중인 전체 소스코드다. <%=store_add%> 부분에 표시할 주소를 입력해주면 나머지는 카카오에서 알아서 해준다.

정말 편한 것 같다.

 

<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=[나의 앱키]&libraries=services"></script>
    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=[나의 앱키]"></script>
    <script type="text/javascript">
        var container = document.getElementById('map'); //지도를 담을 영역의 DOM 레퍼런스
        var options = { //지도를 생성할 때 필요한 기본 옵션
            center: new kakao.maps.LatLng(33.450701, 126.570667), //지도의 중심좌표.
            level: 3 //지도의 레벨(확대, 축소 정도)
        };

        // 지도를 생성합니다
        var map = new kakao.maps.Map(container, options); //지도 생성 및 객체 리턴

        // 주소-좌표 변환 객체를 생성합니다
        var geocoder = new kakao.maps.services.Geocoder();

        // 주소로 좌표를 검색합니다
        geocoder.addressSearch('<%=store_add%>', function (result, status) {

            // 정상적으로 검색이 완료됐으면 
            if (status === kakao.maps.services.Status.OK) {

                var coords = new kakao.maps.LatLng(result[0].y, result[0].x);

                // 결과값으로 받은 위치를 마커로 표시합니다
                var marker = new kakao.maps.Marker({
                    map: map,
                    position: coords
                });

                // 인포윈도우로 장소에 대한 설명을 표시합니다
                var infowindow = new kakao.maps.InfoWindow({
                    content: '<div style="width:150px;text-align:center;padding:6px 0;"><div style="font-weight: bold;"><%=store_name%></div><div>1등당첨횟수 : <%=win_cnt%></div></div>'
                });
                infowindow.open(map, marker);

                // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
                map.setCenter(coords);
            }
        });    

    </script>

 

 

각자의 취향에 맞게 사용하면 되겠지만, 나는 팝업처럼 꾸며보았다.

그럼 다들 즐코딩하세요!

 

 

 

카카오맵 API를 활용해서 내가 만든 로또페이지! 

http://ddogram.ga/vue/index_v2.aspx

 

카카오맵/카카오맵API사용법/카카오맵 위치 표시/KAKAO MAP API/카카오맵API사용하기/카카오맵 주소 좌표/카카오맵 주소를 좌표로 변환

로또당첨번호API/로또추첨번호/로또API/로또페이지개발로또당첨번호API사용법/로또추첨번호/로또API/로또페이지개발/로또API사용방법/로또페이지개발하는법/로또API 사용하는 법

 

로또 관련 페이지를 만들기 위해서 제일 처음 찾는 것이 바로 로또API일 것이다.

여기저기 뒤져 보다가 당첨결과를 확인 할 수 있는 API를 발경하였다. 

개인적인 공부용으로 로또 관련페이지를 만들었는데, 요긴하게 사용하였다.

물론 아래 API외에도 웹크롤링을 사용해서 다른 정보들도 가져오긴 했지만, 우선 기본이 되는 아래 API부터 사용해보자!

 

사용하는 소스를 그대로 올렸는데, 사실 요청URL부분만 보면 될것 같다.

각자의 스타일에 맞게 잘 사용해봅시다!

 

1. API호출 및 저장

public void InsertLottoNumber(string targetNumber)
{
    DBConn dbSql = new DBConn();
    StringBuilder sb = new StringBuilder();
    DataSet ds = new DataSet();
    Util util = new Util()
    try
    {
    	//이미 등록된 회차인지 확인
        sb.Append(" select * from [데이터베이스스키마] where drwNo=@drwNo ");
        sb.Replace("@drwNo", targetNumber);
        ds = dbSql.ExecuteWithDataSet(sb.ToString())
        
        //등록되지 않은 회차이면 API를 호출한다.
        if (util.ChkDsIsNull(ds))
        {
        	//요청URL-> 사실 이것만 알면 된다.
            string URL = "https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=" + targetNumber
            
            using (var webClient = new System.Net.WebClient())
            {
                var myJsonString = webClient.DownloadString(URL)
                var jo = JObject.Parse(myJsonString)
                
                //데이터베이스에 저장
                if(jo.GetValue("returnValue").ToString() != "fail")
                {
                    string drwNo = jo.GetValue("drwNo").ToString();
                    string totSellamnt = jo.GetValue("totSellamnt").ToString();
                    string returnValue = jo.GetValue("returnValue").ToString();
                    string drwNoDate = jo.GetValue("drwNoDate").ToString();
                    string firstWinamnt = jo.GetValue("firstWinamnt").ToString();
                    string firstPrzwnerCo = jo.GetValue("firstPrzwnerCo").ToString();
                    string drwtNo1 = jo.GetValue("drwtNo1").ToString();
                    string drwtNo2 = jo.GetValue("drwtNo2").ToString();
                    string drwtNo3 = jo.GetValue("drwtNo3").ToString();
                    string drwtNo4 = jo.GetValue("drwtNo4").ToString();
                    string drwtNo5 = jo.GetValue("drwtNo5").ToString();
                    string drwtNo6 = jo.GetValue("drwtNo6").ToString();
                    string bnusNo = jo.GetValue("bnusNo").ToString()
                    sb.Clear();
                    sb.AppendLine("insert into [데이터베이스스키마]  ");
                    sb.AppendLine("values( ");
                    sb.AppendLine(drwNo + ",");
                    sb.AppendLine(totSellamnt + ",");
                    sb.AppendLine("'" + returnValue + "',");
                    sb.AppendLine("'" + drwNoDate + "',");
                    sb.AppendLine(firstWinamnt + ",");
                    sb.AppendLine(firstPrzwnerCo + ",");
                    sb.AppendLine(drwtNo1 + ",");
                    sb.AppendLine(drwtNo2 + ",");
                    sb.AppendLine(drwtNo3 + ",");
                    sb.AppendLine(drwtNo4 + ",");
                    sb.AppendLine(drwtNo5 + ",");
                    sb.AppendLine(drwtNo6 + ",");
                    sb.AppendLine(bnusNo);
                    sb.AppendLine(")")
                    dbSql.ExcuteNonQuery(sb.ToString())
            
            }
        }
    }
    catch
    {
        //string tmp = ex.ToString();
    }
    finally
    {
        dbSql.Close();
        dbSql = null;
    
}

 

 

2. API호출시 리턴값 확인 

 

리턴결과

이번에 개인 프로젝트를 하면서 favicon.ico 파일이 필요햇는데, 요즘에는 세상이 참 좋아져서 무료로 만들어주는 사이트가 있었다.  심지어 사이즈 별로 다 제공해 주어서 세상 편하게 쓸 수 있었다.

 

파비콘을 생성할때 사용할 이미지는 가지고 있어야 한다.

 

https://www.favicon-generator.org/

 

Favicon & App Icon Generator

Upload an image (PNG to ICO, JPG to ICO, GIF to ICO) and convert it to a Windows favicon (.ico) and App Icons. Learn more about favicons.

www.favicon-generator.org

-> 아래 화면에서 파일선택을 이용해서 가지고 있는 이미지를 등록해주고 create favicon버튼을 실행시킨다.

 

 

-> create favicon버튼을 눌러서 아래 이미지와 같이 다운로드 버튼을 누르면 다양한 크기의 파비콘을 한번에 다운로드 받을 수 있다. 

 

 

그럼 모두 즐코딩!

+ Recent posts