diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index 6f4e8dcc..3fa7bb89 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -147,7 +147,8 @@ public class SecurityConfig{ "/monitoring/**", "/intelligenceNetwork/**", "/budget/**", - "/deadline/**" + "/deadline/**", + "/search/**" ).hasRole(Role.USER.name()) // USER 접근 허용 .antMatchers( "/authMgt/**", diff --git a/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java b/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java new file mode 100644 index 00000000..03b732ec --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java @@ -0,0 +1,29 @@ +package com.dbnt.faisp.main.searchEngine; + +import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.main.publicBoard.model.PublicBoard; +import com.dbnt.faisp.main.publicBoard.model.PublicComment; +import com.dbnt.faisp.main.publicBoard.service.PublicBoardService; +import com.dbnt.faisp.main.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.List; + + +@RestController +@RequiredArgsConstructor +@RequestMapping("/search") +public class SearchEngineController { + + @GetMapping("/searchPage") + public ModelAndView organMgtPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) { + ModelAndView mav = new ModelAndView("searchEngine/search"); + return mav; + } + +} diff --git a/src/main/resources/static/css/searchEngine/base.css b/src/main/resources/static/css/searchEngine/base.css new file mode 100644 index 00000000..91dda6a3 --- /dev/null +++ b/src/main/resources/static/css/searchEngine/base.css @@ -0,0 +1,37 @@ + +html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, + dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, +legend, table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed, figure, figcaption, +footer, header, hgroup, menu, nav, output, ruby, section, summary,time, mark, audio, video { + margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after,q:before, q:after { + content: ''; content: none; +} +fieldset, hr { + display: block; margin: 0; padding: 0; border: 0 none; +} +input, select { + max-width: 100%; vertical-align: middle; +} +input, select, button, textarea, optgroup { + margin: 0; font-family: inherit; font-size: inherit; color: inherit; +} +a { color: inherit; text-decoration: none; } +button { padding: 0; border: 0 none; background: none; cursor: pointer; } +input[type='submit'] { -webkit-appearance: none; -moz-appearance: none; appearance: none; } +img {max-width: 100%; border: 0 none; font-size: 0; vertical-align: middle; } +table {border-collapse: collapse; border-spacing: 0; width: 100%;} \ No newline at end of file diff --git a/src/main/resources/static/css/searchEngine/search.css b/src/main/resources/static/css/searchEngine/search.css new file mode 100644 index 00000000..88cefe7d --- /dev/null +++ b/src/main/resources/static/css/searchEngine/search.css @@ -0,0 +1,173 @@ +html, body {font-family: 'Noto Sans KR','맑은고딕','돋움','Sans-serif',arial; -webkit-text-size-adjust: 100%; min-width:1200px; } +body{position:relative; background:#eeeef4;} +.hide{display:none !important;} +*{color:#222;} +.red{color:#e42029 !important; } +.blue{color:#2a6de8 !important; } +.bold{font-weight:bold !important; color:#000;} +.tie{display:inline-block;} +input{height:30px; line-height:30px; border:1px solid #ddd; padding-left:10px; vertical-align:middle; font-family:'Noto Sans KR','malgun gothic','맑은고딕','돋움','Sans-serif',arial;} +input:-ms-input-placeholder { color: #aaa; } +input::-webkit-input-placeholder { color: #aaa; } +input::-moz-placeholder { color: #aaa; } +/*인풋 기본 스타일*/ + +#skip_navigation {position:absolute; float:left; top:0px; left:0px; width:200px; font-size:14px; font-weight:bold; padding-left:10px; height:20px; z-index:9999;} +#skip_navigation a { position:absolute; display:block; height:0; overflow:hidden;} +#skip_navigation a:hover, #skip_navigation a:focus, #skip_navigation a:active { height:auto; background:#333; color:#f9f9f9; padding:10px 10px 10px 10px; } +/*스킵네비*/ + +/*헤더부분------------------------------------------------------------------------*/ +.headerArea{border-bottom:1px dashed #bbb;} +header {height:80px; position:relative;} +header h1{padding:15px;} + +header .searchPagetop{position:absolute; top:12px; left:50%; margin-left:-400px; width:800px;} +header .searchPagetop .searchBox{width:100%; position:relative; padding-right:175px; box-sizing:border-box; height:56px; background:#fff; border-radius:5px; box-shadow:rgba(60, 90, 130, 0.2) 1px 1px 5px;} +header .searchPagetop .searchBox > input{width:100%; padding:0 20px; box-sizing:border-box; height:56px; line-height:50px; background:url(../images/board/boardSchBul.png) #fff right 10px center no-repeat; border:none; border-radius:5px;} +header .searchPagetop .searchBox > input::-ms-clear {display: none;} +header .searchPagetop .searchBox > input:focus{background:url(../images/board/boardSchBul.png) right 10px center no-repeat;} +header .searchPagetop .searchBox > a{width:78px; position:absolute; top:5px; right:90px; background:#377fe7; color:#fff; text-align:center; display:block; height:44px; line-height:44px; border-radius:5px; border:1px solid #377fe7;} +header .searchPagetop .searchBox > a:last-of-type{right:5px; color:#377fe7; background:#fff; } +header .searchPagetop .searchBox .autoSearchList{position:absolute; top:56px; left:0; display:none; background:#fff; box-sizing:border-box; border:1px solid #bec8d8; border-top:none; z-index:9990; width:calc(100% - 175px);} +header .searchPagetop .searchBox > input:focus ~ .autoSearchList{display:block;} + +.autoSearchList > p{padding:20px; font-size:15px; color:#284d7e;} +.autoSearchList > ul{padding:13px 0;} +.autoSearchList > ul li a{padding:7px 20px; font-size:15px; color:#555; display:block;} +.autoSearchList > ul li:hover a, .autoSearchList > ul li a:focus{background-color:#f6f8fb;} + + +header .searchPagetop .searchBox .sRightBox{position:absolute; right:-140px; top:15px;} +header .searchPagetop .searchBox .sRightBox span{display:block;} +header .searchPagetop .searchBox .sRightBox span label{font-size:16px; vertical-align:middle;} +/*결과 내 재검색*/ +/*헤더부분------------------------------------------------------------------------*/ + + +/*검색내용부분------------------------------------------------------------------------*/ +.searchPageBox{width:1400px; max-width:95%; margin:0 auto 15px auto; display:none;} +.searchPageBox.searchDTView{display:block;} +.searchWideBox{background:#fff; box-sizing:border-box; border-radius:5px; box-shadow:rgba(60, 90, 130, 0.2) 1px 1px 5px;} +.searchWideBox:after{content:''; display:block; visibility:hidden; clear:both;} +.searchWideBox > li{position:relative; padding:13px 0 13px 60px; float:left; margin-left:70px; border-left:1px solid #ddd;} +.searchWideBox > li:first-of-type{margin-left:0px; border-left:none;} +.searchWideBox > li:after{content:''; display:block; visibility:hidden; clear:both;} +.searchWideBox > li p{position:absolute; top:13px; left:15px; font-size:16px; line-height:30px; font-weight:bold;} +.searchWideBox > li label{margin-right:14px; font-size:15px; line-height:32px; vertical-align:middle; color:#666;} +.searchWideBox > li ul:after{content:''; display:block; visibility:hidden; clear:both;} +.searchWideBox > li ul{width:331px; border:1px solid #ddd; border-left:none; box-sizing:border-box; float:left;} +.searchWideBox > li > span{float:left; margin-left:8px;} +.searchWideBox > li ul li{float:left; width:55px; border-left:1px solid #ddd; box-sizing:border-box;} +.searchWideBox > li ul li a{display:block; text-align:center; font-size:14px; line-height:30px; background-color:#fff;} +.searchWideBox > li ul li.active a, .searchWideBox > li ul li a:hover{background-color:#888; color:#fff;} +.shortText{width:110px;} +.dateAppBtn{background:#377fe7; color:#fff; text-align:center; display:inline-block; line-height:32px; width:80px; vertical-align:middle; margin-left:5px;} +/*검색부분*/ + +.searchDataBox:after{content:''; display:block; visibility:hidden; clear:both;} +.searchDataBox > .searchDataList {float:left; width:1150px; border-right:1px dashed #bbb; box-sizing:border-box; padding:50px 30px 50px 0; min-height:700px;} + +.searchDataInfo{text-align:center; margin-bottom:50px; font-size:25px;} + +.searchDataBox > .searchDataList .searchDataNav:after{content:''; display:block; visibility:hidden; clear:both;} +.searchDataBox > .searchDataList .searchDataNav{border-bottom:1px solid #222; box-sizing:border-box; margin-bottom:20px;} +.searchDataBox > .searchDataList .searchDataNav li{float:left; width:25%; box-sizing:border-box;} +.searchDataBox > .searchDataList .searchDataNav li a{display:block; text-align:center; padding:17px 0; font-size:17px;} +.searchDataBox > .searchDataList .searchDataNav li.active a, .searchDataBox > .searchDataList .searchDataNav li:hover a{background:#fff; border-radius:7px 7px 0 0; box-shadow:rgba(60, 90, 130, 0.2) 2px -2px 4px; color:#377fe7; } +/*탭*/ + + +.searchDataListBox{padding:40px 0px 30px 0; position:relative;} +.searchDataListBox > .optionView{position:absolute; top:51px; right:13px;} +.searchDataListBox > .optionView .plusView{font-size:16px; line-height:32px; display:inline-block; vertical-align:middle;} +.searchDataListBox > .optionView select{min-width:50px; height:32px; vertical-align:middle; border-radius:5px; border:1px solid #ccc; padding:0 3px;} +.searchDataListBox > .optionView .searchViewBtn{font-size:16px; background:#2a6de8; color:#fff; line-height:32px; padding:0 12px; display:inline-block; border-radius:5px; vertical-align:middle;} + +.searchDataListBox h3{font-weight:bold; font-size:20px; margin-bottom:25px; background:#f9f9fc; border-radius:5px; box-shadow:rgba(60, 90, 130, 0.2) 1px 1px 5px; padding:15px;} +.searchDataListBox h3 span{display:inline-block; margin-left:16px; font-size:12px; color:#869ec0; padding:4px 10px; border:1px solid #869ec0; border-radius:50px; font-weight:normal;} + +.menuList > li ol:before{content:' · '; } +.menuList ol li{display:inline-block; margin-right:3px; font-size:17px; line-height:30px;} +.menuList ol li:before{content:' 〉'; color:#aaa;} +.menuList ol li:first-of-type:before{content:'';} +/*메뉴*/ +.boardList li{margin-bottom:30px;} +.boardList li dt{margin-bottom:15px;} +.boardList li dt a{font-size:17px; font-weight:bold; line-height:24px;} +.boardList li dt .titleDate{color:#aaa; margin-left:8px; font-size:12px; line-height:24px; line-height:none;} +.boardList li dd:first-of-type{ margin-bottom:12px; font-size:15px; text-overflow:ellipsis; overflow:hidden; white-space:nowrap; word-wrap:normal; color:#444;} +.boardList li dd:nth-of-type(2){color:#999; margin-bottom:5px; font-size:15px; } +.boardList li dd:nth-of-type(2):before{color:#999; content:' ㄴ ';} +.boardList li dd:nth-of-type(3) > b{display:inline-block; color:#999; padding-right:24px; margin-bottom:5px; font-size:14px; line-height:26px; cursor:pointer;} + +.boardList li dd .searchFileList{display:none; padding:10px 20px; border:1px dashed #bbb; font-size:14px; border-radius:5px;} +.boardList li dd .searchFileList a:before{content:'- ';} +.boardList li dd .searchFileList a{display:block; line-height:22px; font-size:14px; color:#777; margin-bottom:4px;} +.boardList li dd .searchFileList a:last-of-type{margin-bottom:0px;} + +.boardFileList >li dl dt{padding-left:25px; background:url(../images/board/boardFile.png) left center no-repeat; background-size:20px;} +.boardFileList >li dl dt .downBtn{background:url(../images/board/down.png) 5px center no-repeat; border:1px solid #377fe7; color:#377fe7; font-size:14px; font-weight:normal; padding:2px 5px 2px 22px; margin-left:5px; background-size:21px;} +/*게시판*/ + +.openBul{position:relative; top:0; left:0;} +.openBul:after{content:''; width:10px; height:10px; background:url(../images/common/optionBg01.png)center center no-repeat; position:absolute; top:9px; right:8px;} +dd.focus .openBul:after{background:url(../images/common/optionBg03.png)center center no-repeat;} +/*일반*/ + + +.searchDataBox > .popularSearchWord {float:left; width:220px; margin-left:30px;} +.searchDataBox > .popularSearchWord section {padding:30px 0 30px; } +.searchDataBox > .popularSearchWord section:first-of-type {padding:50px 0 30px; border-bottom:1px solid #ccc;} +.searchDataBox > .popularSearchWord section h3{font-size:20px; font-weight:bold; margin-bottom: 20px;} +.searchDataBox > .popularSearchWord section ul li{padding:4px;} +.searchDataBox > .popularSearchWord section ul li span{display:inline-block; width:20px; height:20px; box-sizing:border-box; line-height:18px; border:1px solid #999; color:#999; text-align:center; font-size:12px; vertical-align:middle; margin-right:8px;} + +.searchDataBox > .popularSearchWord section ul li a{ line-height:17px; font-size:15px; vertical-align:middle;} +.searchDataBox > .popularSearchWord section ul.myWord li a:first-of-type:before{content:'· ';} +.searchDataBox > .popularSearchWord section ul li b{line-height:17px; font-size:12px; vertical-align:middle; font-weight:bold;} +.searchDataBox > .popularSearchWord section ul.popularWord li *:last-child{float:right;} +.searchDataBox > .popularSearchWord section ul li a:hover{text-decoration:underline;} +/*인기검색어*/ + + +.footerArea{border-top:1px dashed #bbb; padding:40px 0;} +.footerArea p{padding:8px 0;} +.footerArea p:last-of-type{font-size:13px; color:#999;} + + +.emptyBox{margin:50px 0; border-radius:5px; box-shadow:rgba(60, 90, 130, 0.2) 1px 1px 5px; box-sizing:border-box; padding:310px 30px 30px 30px; text-align:center; background:url(../images/common/empty.png) #fff center 10px no-repeat;} +.emptyBox h3{color:#2a6de8; font-size:24px; line-height:30px; margin-bottom:20px; font-weight:bold;} +.emptyBox p{ box-sizing:border-box; padding:8px; font-size:16px; line-height:22px;} +/*검색내용부분------------------------------------------------------------------------*/ + + +.paging{padding:40px 0; width:100%; text-align:center;} +.paging > a {display: inline-block; width:26px; line-height: 32px; text-align: center; font-size:16px; margin:0 5px;} +.paging > a:first-of-type , .paging > a:last-of-type {color:#aaa; letter-spacing:-3px;} +.paging ol {display: inline-block; box-sizing: border-box; text-align: center; padding:0 10px;} +.paging ol li {display: inline-block;} +.paging ol li a {display: block; font-size: 14px; line-height: 30px; height:32px; width: 32px; transition-duration: 0.4s; background:#fff; border-radius:5px; box-shadow:rgba(60, 90, 130, 0.2) 1px 1px 5px; } +.paging ol li a:hover {background-color:#cbdef8;} +.paging ol li a.focus { background-color:#2a6de8; color:#fff; font-weight:bold;} +/*페이징*/ + +@media screen and (max-width:1441px) { + + .guideBox {width:95%; margin:0 auto;} + + header .searchPagetop{margin-left:-300px; width:600px;} + + .searchWideBox > li{padding:13px 0 13px 130px; float:none; margin-left:0px; border-left:none;} + .searchWideBox > li p{left:55px; } + /*검색부분*/ + .searchDataBox > .searchDataList {width:calc(100% - 250px); } +} + + +@media screen and (min-width:1442px) { + + .guideBox {width:1400px; margin:0 auto;} + +} +/*pc*/ diff --git a/src/main/resources/static/img/searchEngine/board/boardFile.png b/src/main/resources/static/img/searchEngine/board/boardFile.png new file mode 100644 index 00000000..855d5473 Binary files /dev/null and b/src/main/resources/static/img/searchEngine/board/boardFile.png differ diff --git a/src/main/resources/static/img/searchEngine/board/boardSchBul.png b/src/main/resources/static/img/searchEngine/board/boardSchBul.png new file mode 100644 index 00000000..ddace9b0 Binary files /dev/null and b/src/main/resources/static/img/searchEngine/board/boardSchBul.png differ diff --git a/src/main/resources/static/img/searchEngine/board/down.png b/src/main/resources/static/img/searchEngine/board/down.png new file mode 100644 index 00000000..1eb46128 Binary files /dev/null and b/src/main/resources/static/img/searchEngine/board/down.png differ diff --git a/src/main/resources/static/img/searchEngine/common/empty.png b/src/main/resources/static/img/searchEngine/common/empty.png new file mode 100644 index 00000000..fe54ea8b Binary files /dev/null and b/src/main/resources/static/img/searchEngine/common/empty.png differ diff --git a/src/main/resources/static/img/searchEngine/common/logo.png b/src/main/resources/static/img/searchEngine/common/logo.png new file mode 100644 index 00000000..3e8aa6fd Binary files /dev/null and b/src/main/resources/static/img/searchEngine/common/logo.png differ diff --git a/src/main/resources/static/img/searchEngine/common/optionBg01.png b/src/main/resources/static/img/searchEngine/common/optionBg01.png new file mode 100644 index 00000000..6a6d93fc Binary files /dev/null and b/src/main/resources/static/img/searchEngine/common/optionBg01.png differ diff --git a/src/main/resources/static/img/searchEngine/common/optionBg03.png b/src/main/resources/static/img/searchEngine/common/optionBg03.png new file mode 100644 index 00000000..65892d78 Binary files /dev/null and b/src/main/resources/static/img/searchEngine/common/optionBg03.png differ diff --git a/src/main/resources/static/js/searchEngine/bower.json b/src/main/resources/static/js/searchEngine/bower.json new file mode 100644 index 00000000..d14660e6 --- /dev/null +++ b/src/main/resources/static/js/searchEngine/bower.json @@ -0,0 +1,25 @@ +{ + "name": "bxslider-4", + "version": "4.1.2", + "homepage": "https://bxslider.com", + "license": "MIT", + "main": [ + "jquery.bxslider.js", + "jquery.bxslider.css", + "images/bx_loader.gif", + "images/controls.png" + ], + "keywords": [ + "bxslider", + "javascript", + "jquery", + "library" + ], + "ignore": [ + "**/.*", + "*.md" + ], + "dependencies": { + "jquery": ">=1.6" + } +} diff --git a/src/main/resources/static/js/searchEngine/layout.js b/src/main/resources/static/js/searchEngine/layout.js new file mode 100644 index 00000000..4ee3f90d --- /dev/null +++ b/src/main/resources/static/js/searchEngine/layout.js @@ -0,0 +1,20 @@ + + +$(function () { + $('.searchFileBtn').click(function () { + if ($(this).parent('dd').hasClass('focus')) { + $(this).parent('dd').removeClass('focus'); + $(this).parent('dd').children('.searchFileList').slideUp(); + } else { + $(this).parent('dd').addClass('focus'); + $(this).parent('dd').children('.searchFileList').slideDown(); + } + }); + $('.searchPageBoxBtn').click(function () { + if ($('.searchPageBox').hasClass('searchDTView')) { + $('.searchPageBox').removeClass('searchDTView'); + } else { + $('.searchPageBox').addClass('searchDTView'); + } + }); +}); diff --git a/src/main/resources/static/js/searchEngine/prefixfree.min.js b/src/main/resources/static/js/searchEngine/prefixfree.min.js new file mode 100644 index 00000000..4c12fff7 --- /dev/null +++ b/src/main/resources/static/js/searchEngine/prefixfree.min.js @@ -0,0 +1,18 @@ +/** + * StyleFix 1.0.3 & PrefixFree 1.0.7 + * @author Lea Verou + * MIT license + */ +(function(){function k(a,b){return[].slice.call((b||document).querySelectorAll(a))}if(window.addEventListener){var e=window.StyleFix={link:function(a){var c=a.href||a.getAttribute("data-href");try{if(!c||"stylesheet"!==a.rel||a.hasAttribute("data-noprefix"))return}catch(b){return}var d=c.replace(/[^\/]+$/,""),h=(/^[a-z]{3,10}:/.exec(d)||[""])[0],l=(/^[a-z]{3,10}:\/\/[^\/]+/.exec(d)||[""])[0],g=/^([^?]*)\??/.exec(c)[1],m=a.parentNode,f=new XMLHttpRequest,n;f.onreadystatechange=function(){4===f.readyState&& +n()};n=function(){var b=f.responseText;if(b&&a.parentNode&&(!f.status||400>f.status||600 + + + + + 검색옵션 +
+ + + + +
+ + + + + +
+
+
+ 상세검색 +
    +
  • +

    정렬

    + + + + +
  • +
  • +

    기간

    + + + + + + + ~ + + + + + 적용하기 + +
  • +
  • +

    영역

    + + + + + + +
  • +
+
+
+
+
+
+
+

검색어 "해양"에 대한 총7,623건의 검색결과를 찾았습니다.

+ +
+

메뉴검색8건

+ + +
+
+

게시판998건

+ + +
+
+

첨부파일201건

+
    +
  • +
    +
    180731 해양경찰 “지자체 해안방제 대응 역량 높인다”.hwp2018.07.31내려받기
    +
    (화) 09:00 담당부서 기동방제과 담당과장 서기관 서정목 (044-205-2094/010-3942-1000) 담 당 자 사무관 김백제 (044-205-2296/010-9755-1327) 해양경찰 “지자체 해안방제 대응 역량 높인다” - 8월14일까지 지자체 대상 해안방제정책설명회 개최 - 해양경찰이 대규모 해양오염 사고 시.
    +
    해양경찰청 > 새소식/알림 > 보도자료
    +
    +
  • + +
  • +
    +
    (0730)주문진 영진해변 파도에 외해로 떠밀리던 물놀이객 구조.hwp2018.07.31내려받기
    +
    보 도 자 료 보도일시 배포 즉시 보도해 주시기 바랍니다. 총 1쪽(붙임 없음) 배포일시 2018.7.30.(월) 담당부서 속초해양경찰서 기획운영과 담당과장 기획운영과장 경정 곽윤희(033-634-2212) 담 당 자 기획운영과 경사 홍상의(033-634-2212) 속초해경, 강릉 영진해변 물놀이객 구조해 -.
    +
    속초해양경찰서 > 알림사항 > 보도자료
    +
    +
  • +
  • +
    +
    선박교통관제 시설관리규정(시행 18.4.2).hwp2018.07.31내려받기
    +
    선박교통관제 시설관리규정 선박교통관제 시설관리규정 법제처 - / - 국가법령정보센터 [시행 2018. 4. 2.] [해양경찰청훈령 제61호, 2018. 4. 2., 일부개정.] 해양경찰청(해상교통관제과) 044-205-2485 {전문} 제1조(목적) 이 규정은「선박의 입항 및 출항 등에 관한....
    +
    해양경찰청 > VTS > 알림마당
    +
    +
  • +
  • +
    +
    선박교통관제 시설관리규정(시행 18.4.2).hwp2018.07.31내려받기
    +
    선박교통관제 시설관리규정 선박교통관제 시설관리규정 법제처 - / - 국가법령정보센터 [시행 2018. 4. 2.] [해양경찰청훈령 제61호, 2018. 4. 2., 일부개정.] 해양경찰청(해상교통관제과) 044-205-2485 {전문} 제1조(목적) 이 규정은「선박의 입항 및 출항 등에 관한....
    +
    해양경찰청 > VTS > 알림마당
    +
    +
  • +
+ +
+ + + +
+
+
+

추천검색어

+ +
+
+

인기검색어

+ +
+
+
+
+ + + \ No newline at end of file