ubinannie의 등록된 링크

 ubinannie로 등록된 네이버 블로그 포스트 수는 46건입니다.

자바 기초 개념 1. 변수와 데이터 타입 [내부링크]

1) 변수 변수란, 하나의 값을 저장할 수 있는 메모리 공간이다. 값을 저장할 수 있는 메모리 공간을 확보하여 어떤 타입의 데이터를 저장할 것인지 + 변수 이름이 무엇인지 결정해야한다. 2) 변수의 선언 형태 : 타입 + 변수이름 ex ) int age; -> 여기서 int 는 타입이고 age는 변수 이름이다. 3) 타입 변수에 저장되는 값의 종류와 범위를 결정짓는 요소 4) 타입의 종류 모든 변수에는 타입이 있으며 타입에 따라 저장할 수 있는 값의 종류와 범위가 달라진다. 주의 : 변수를 선언할 때 주어진 타입의 변수는 사용 도중 변경할 수 없다. 선언시에 어떤 타입을 사용할지 고려해야한다. - 기본(원시) primitive type (정수형) : byte (8bit), short(16bit), int(32bit), long(64bit~) (실수형) : float(32bit), double(62bit) (문자형) : char(2byte) (논리형) : boolean (참,거짓) -

자바 if 조건문 (개념정리) [내부링크]

1) if {}조건문 if (조건식) -->있냐 or 없냐 의 질문은 개발자의 취향에 따라 달라짐 if { 참일 경우 실행 } 2) if {} else{} 조건문 if (조건식) if { 참일 경우 실행 } else { 참이 아닌 경우 실행 } 3)if {} else if{} 조건문 if (조건식) -->조건의 정답이 A가 명확할 수 도 있으나 A.B.C 중에 무엇? if (조건 a) { 문장1, 문장2, 문장3 .... } else if (조건 b) { 문장4, 문장5, 문장6 .... } else if (조건 c) { 문장7, 문장8, 문장9 .... } else { 문장10, 문장11, 문장12 .... } 주의사항 1) 조건문에 따른 실행문장이 한 문장이면 {}를 생략해도 됩니다 (권장사항X) 2) 조건문에 따른 실행문장이 한 문장 이상이면 반드시 중괄호를 사용해야함 3) 중괄호 (코드블럭)안은 경계를 쉽게 알아보기 위해 들여쓰기를 권장

MVC1방식으로 Register 구현하기 (정규식 사용 / 아이디 중복 확인) [내부링크]

MVC1방식으로 Register 구현하기 * 개발 3개월차로 미숙해요 ㅠ 수정사항이 있으면 말씀해주세요 ※ 정규식 사용 ※ 아이디 중복 확인하기 1차 미니프로젝트 주제 : 호텔 중개 사이트 담당 파트 : 로그인 / 회원가입 / 마이페이지 프로젝트 기간 2021년 12월 18일 ~ 21년 1월 7일 (약 3주간 진행) <페이지 구성> LoginMain.jsp 로그인 페이지 register.jsp 회원가입 text 클릭했을때 뜨는 회원가입 페이지 registerOk01.jsp 회원가입 성공했을때 DB연동 페이지 idcheckForm.jsp 아이디중복확인 button 눌렀을때 뜨는 팝업창 IDCheck.jsp 아이디중복확인하는 DB연동 페이지 Member_Dao Member_Vo LoginMain.jsp 로그인 페이지 회원가입 text를 클릭하면 register.jsp 페이지로 이동 register.jsp 회원가입 text 클릭했을때 뜨는 회원가입 페이지 정규식 사용 1. 정규식 변수 선

자바스크립트/제이쿼리(선택자 사용하기) [내부링크]

안녕하세요, 벌써 입사한지 1년차네요. 거의 일년만에 게시물을 올리는 것 같아요. 프로젝트 진행하면서 스스로 어려웠던 점들, 선배 개발자들이 가이드 해줬던 것들을 천천히 올려보겠습니다. 자바스크립트/제이쿼리 (선택자 사용하기) 선택자 : parent() / find() / addClass() / removeClass() 선택자를 사용해서 체크박스에 클릭여부를 판단하여서 input 글자 바이트 수 카운트를 해보겠습니다. < html > onclick="javascript:is_checked(this,1);" 체크박스를 클릭 할 때 -> 자바스크립트의 is_checked() 함수를 호출 시킵니다. -> 호출과 동시에 -> (this,1) 2가지의 정보를 담아서 넘깁니다. this 안에 있는 정보 : onclick이 걸린 줄의 오브젝트를 넘깁니다. : <input type="checkbox" class="chk_mms_all1" id="cate1_job_msg_inc" name="msg"

postman으로 api 토큰값 가져오기 [내부링크]

안녕하세요, 오늘은 postman 으로 비즈뿌리오 (문자연동 솔루션) 을 사용하여서 실제 고객한테 메세지를 발송하기 위해 비즈뿌리오 토큰값을 받아오는 작업을 해보겠습니다. postman으로 비즈뿌리오 연동 postman 사이트 접속 사이트 주소 : https://www.postman.com/ 왼쪽 텝쪽에 있는 workspaces 를 클릭해주세요. My Workspace 를 만들어주세요. 우선 비즈뿌리오의 토큰값을 받아오도록 하겠습니다. 솔루션 가이드에 따라서 post 주소와 / 해더를 설정해주세요. 비즈뿌리오의 로그인 아이디와 비밀번호를 Authorization - Type (Basic Auth)에 설정해주세요. (회사 보안상 문제가 생겨 사진첨부는 하지 않겠습니다.) 이 후 환경설정에서 필요항목들만 on으로 바꿔주시고 필요항목이 아닐 경우 send 시 오류 확률이 높아집니다. 해당 post 주소로 send 를 클릭합니다. send를 하게되면 토큰값과 타입값이 결과값으로 넘어오게됩니

톰켓 사용중일 때 (오류 : starting tomcat v8.0 server at localhost has encountered a problem) [내부링크]

안녕하세요, 톰켓을 사용중일 때 나는 오류건에 대해서 간단한 해결방법을 가져와봤습니다. 이클립스 / 인텔리제이 또는 다른 툴에서 서버를 동작시킬 때 일주일에 몇번씩이고 해당 오류가 뜹니다. 오류 : starting tomcat v8.0 server at localhost has encountered a problem 이 경우 포트를 끄지 않고 퇴근을 하거나 프로젝트를 실행하면 이와 같은 오류가 발생합니다. 해결방법 cmd 창 -> 관리자 권한으로 실행 netstat -ano | findstr 8080 -> 이미 쓰고 있는 포트 번호 찾기 -> 8080 -> 이 부분에 이미 쓰고 있는 포트 번호 넣기 netstat -ano | findstr 8080 -> 엔터 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4612 이렇게 포트 정보가 출력됩니다. LISTENING 의 4612를 삭제해줍니다. taskkill /F /pid 4612 -> 엔터 위 처럼 삭제 로직을 하

서비스임플에서 list로 넘겨받은 데이터 한개씩 처리하기 (서비스 반복문 사용) [내부링크]

안녕하세요, 컨트롤러에서 serviceImpl로 데이터를 넘길 때 list 로 넘겼지만 데이터를 한개씩 처리할 때 반복문을 사용해보겠습니다. Controller 에서 ServiceImpl 로 list 데이터 넘겼을 때 list 데이터를 한개씩 처리하기 (반복문) < 컨트롤러 > jsp파일에서 컨트롤러로 list형식으로 데이터를 넘겼습니다. 컨트롤러는 -> @RequestBody List<NoticeVO> noticeVO 로 데이터를 넘겨 받았습니다. int result = noticeService.noticeSmsInsert(noticeVO); 로 noticeSmsInsert라는 서비스로 List<NoticeVO> 를 넘겼습니다. < 서비스 > int noticeSmsInsert(List<NoticeVO> noticeVO); < 서비스임플 > List<NoticeVO> noticeVOList -> 리스트로 넘겨받고 for(NoticeVO noticeVO : noticeVOList)

java equals 사용법 / VO 안에있는 데이터 변경 [내부링크]

java equals 사용법 / VO 안에있는 데이터 변경 String a = noticeVO.getTrSendstat(); -> a라는 변수에 noticeVO안에 있는 trSendstat 데이터를 가져옵니다. if(a!= null && "정상발송".equals(a)) { -> a가 null이 아니고 a가 "정상발송" 일 때 noticeVO.setTrSendstat("2"); -> noticeVO안에 있는 trSendstat 데이터를 2로 바꿔줍니다. }else if(a != null && "발송오류".equals(a)) { -> a가 null이 아니고 a가 "발송오류" 일 때 noticeVO.setTrSendstat("4"); -> noticeVO안에 있는 trSendstat 데이터를 4로 바꿔줍니다. }

JSON 파싱 [내부링크]

JSON 파싱 JSON 결과 값 : "accesstoken": "22228", "type": "Bearer", "expired": "ubin" 위의 결과 값에서 type값만 추출 하기 response.body().string() -> json 값 String responsetest = response.body().string(); JSONParser parser = new JSONParser(); Object obj; try { obj = parser.parse(responsetest); JSONObject jsonObj = (JSONObject) obj; // type 값 추출 accesstoken = (String) jsonObj.get("type"); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }

java replace 사용법 [내부링크]

java replace 사용법 String jengseMsg = ""; jengseMsg = noticeVO.getJengseMsg(); jengseMsg.replace("#{회원명}", 장유빈).replace("#{상품명}", 상품이름등록).replace("{회원명}", 장유빈2); replace("바꿀값", "바꾸고싶은값") 하나의 변수의 여러개의 값을 바꾸고싶을 경우 .replace를 반복적으로 사용

공용 메소드 생성하기 / HashMap<String,String> 사용법 [내부링크]

공용 메소드 생성하기 / HashMap<String,String> 사용법 공용 메소드로 뺀 이유 : 비즈뿌리오(솔루션) 토큰값은 24시간마다 한번씩 생성해야함 문자를 여러명한테 전송 -> 여러명한테 전송할 때마다 토큰값을 매번 생성하기엔 비효율적 < 공용 메소드 생성 > private HashMap<String, String> getToken() { -> 토큰값을 발급할 때 사용할 정보들을 HashMap 안에 담아서 -> 다른 메소드에서 HashMap String 값을 받을 수 있게끔 HashMap으로 선언 OkHttpClient client = new OkHttpClient().newBuilder() .followRedirects(false) .build(); MediaType mediaType = MediaType.parse("application/json"); okhttp3.RequestBody body = okhttp3.RequestBody.create(mediaType, "

json 형태 [object object] 출력하기 [내부링크]

json 형태 [object object] 출력하기 json 형태를 뷰단에서 console.log 또는 alert 창으로 a라는 변수가 json 형태라면, console.log(a); -> [object object] 라는 결과 값이 나온다. object 안에 있는 결과 값을 보고 싶을 경우, console.log(JSON.stringify(obj)); 로 찍으면 원하는 결과 값을 찍을 수 있다.

404 에러 : No mapping found for HTTP request with URI [내부링크]

404 에러 : No mapping found for HTTP request with URI 컨트롤러는 접근 했는데 404 에러로 No mapping found for HTTP request with URI 이라는 경고가 떴을 때 해결 방법 web.xml 파일에서 밑의 내용을 추가 <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>/WEB-INF/jsp/*</url-pattern> </servlet-mapping> web.xml 파일에서 밑의 내용을 확인 <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>

log가 안찍힐 때 [내부링크]

log가 안찍힐 때 해결 방법 <root> <!-- <priority value="off"/> --> <appender-ref ref="console" /> </root> 위의 로그에서 <priority value="off"/> 를 최대한 주석 달아놓기 안달아놓으면 로그가 안찍힘

config.properties 사용법 [내부링크]

config.properties 사용법 < config.properties 사용이유 > 실제 서버에 반영 할때 config.properties 안에있는 내용만 수정하면 컴파일을 다시 안해도 서버에 반영 할 수 있음 고정값을 파일에 설정해놓고 편하게 수정 할 수 있음 < config.properties > 본인은 비즈뿌리오 솔루션 연동시에 테스트 핸드폰번호 (본인)와 테스트 유무를 config.properties 안에서 설정하여서 진행 biz.pri.phone = 01089488287 비즈뿌리오 테스트 인지 아닌지 Y면 test N면 실제 biz.pri.test = Y < VO.java > @Value("${biz.pri.phone}") // 테스트 핸드폰번호 private String testPhone; @Value("${biz.pri.test}") // 비즈뿌리오 테스트 인지 아닌지 Y면 test N면 실제 private String testYN; < service.java > @

list로 넘어온 String을 해당정보가 몇개있는지 카운트 [내부링크]

list로 넘어온 String을 해당정보가 몇개있는지 카운트 list로 넘어온 String을 해당정보가 몇개있는지 컨트롤러에서 카운트를 해보겠습니다. trSendstat=2 라는 데이터의 갯수와 trSendstat=4 라는 데이터의 갯수를 확인해보겠습니다. String status = noticeVO.toString(); -> noticeVO안에 담겨져있는 String값을 저장합니다. String status2 = "trSendstat=2"; // 정상일 경우 String status4 = "trSendstat=4"; // 오류/비정상일 경우 -> 카운트할 데이터의 조건을 선언합니다. int count = 0; int counterrstatus = 0; String[] sarr = status.split(", "); -> String값을 ,을 기준으로 split 자릅니다. int len = sarr.length; -> 자른 데이터들의 길이를 int로 선언합니다. for(int i =

mariaDB replace 사용법 예시 [내부링크]

mariaDB replace 사용법 예시 핸드폰번호 '-' 를 없애 보겠습니다. replace(해당데이터컬럼이름,'-','') 별칭컬럼이름 replace(tel,'-','') tel

mariaDB date_format 사용 예시 [내부링크]

mariaDB date_format 사용법 date_format(해당데이터컬럼명,'%Y-%m-%d') as 컬럼별칭 date_format(date,'%Y-%m-%d') as date

mariaDB case when 사용 예시 [내부링크]

mariaDB case when 사용법 예시 CASE WHEN STATUS = '1' THEN '1이 들어오면 이걸로 보여주세요' WHEN STATUS = '2' THEN '2가 들어오면 이걸로 보여주세요' WHEN STATUS = '3' THEN '3이 들어오면 이걸로 보여주세요' ELSE '1,2,3이 아닐경우 이걸로 보여주세요' END as STATUS

mariaDB null값 치환 사용 예시 [내부링크]

mariaDB null값 치환 사용 예시 IFNULL (해당데이터컬럼명, 'null일때치환할값') as 컬럼별칭선정 IFNULL (NAME, '-') as NAME

mariaDB 마지막 데이터 추출 select 사용 예시 [내부링크]

마지막 데이터 select 사용법 예시 SELECT MAX(데이터컬럼명) as 컬럼별칭 FROM 테이블이름 SELECT MAX(code) as code FROM tablename

ajax / JSONObject 사용 예시 [내부링크]

ajax / JSONObject 사용법 예시 1. jsp 에서 ajax로 해당주소를 가지고있는 컨트롤러에 데이터를 전달한다. 2. 컨트롤러에서 해당 데이터를 받고 3. 컨트롤러에서 JSONObject를 사용하여 뷰단으로 데이터를 리턴해준다. < jsp ajax > $.ajax({ type : "POST", -> 어떤 type으로 데이터를 전송할 것인지 (GET/POST...) contentType : "application/json", url : "/urlmain", -> 컨트롤러 주소 입력 data : JSON.stringify(searchData), -> 해당 컨트롤러 주소에 보낼 데이터를 json String 형식으로 변환해서 보낼 데이터 dataType : 'json', -> dataType 설정 timeout : 100000, success : function(data){ -> 해당 주소 컨트롤러에 갔다와서 받을 data }, error : function(error) {

데이터 초기화 시키기 reset() 사용 예시 [내부링크]

데이터 초기화 시키기 : reset() 사용법 예시 특정화면 또는 특정버튼을 클릭하여서 페이지 이동을 할 경우 이전의 데이터가 초기화가 안되는 경우가 있습니다. (팝업창에서는 초기화가 더더욱 어렵죠) 이 경우 특정화면 이동 또는 특정버튼 클릭 시 이전의 데이터를 초기화 시키는 함수를 사용해보겠습니다. $("#Search").click(function() { -> 클릭하는 부분의 id 이름 $("#srchForm")[0].reset(); -> 초기화될 데이터가 감싸져있는 form태그의 id 이름[0].reset(); });

핸드폰번호 / 유선번호 하이픈 - 정규식 [내부링크]

핸드폰번호 / 유선번호 하이픈 - 정규식 replace를 사용해서 핸드폰번호 / 유선번호 하이픈 - 처리를 해보겠습니다. 핸드폰번호와 유선번호는 하이픈 처리 방법이 다르겠죠? 둘다 동시에 적용 시켜보겠습니다. replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})$/,"$1-$2-$3");

팝업창 닫기 [내부링크]

팝업창 닫기 <a href="javascript:modalClose('팝업창id');">닫기</a> 또는 해당 스크립트에서 modalClose('팝업창id'); 추가

공용js 파일 사용 예시 common.js 사용 예시 [내부링크]

공용js 파일 사용 예시 common.js 사용 예시 사용이유 : 여러 jsp 파일에서 공용으로 사용될법한 기능들을 공용으로 빼서 간편하게 사용하기 위함 사용방법 : 1. webapp -> resources -> js -> cmm -> common.js 파일 생성 2. common.js에 공용으로 사용할 로직 작성 3. 작성할 로직을 사용할 jsp 파일에 common.js import <script src="<c:url value="/resources/js/common.js"/>"></script> 4. 작성할 로직 -> 단순 함수로 불러오면 끝

ajax로 넘어온값 뷰단에 뿌려주기 each [내부링크]

ajax로 넘어온값 뷰단에 뿌려주기 each $.ajax({ type : "POST", contentType : "application/json", url : "//", -> 해당 컨트롤러 url data : JSON.stringify(data), -> 본인은 json 형식의 데이터를 전송함 -> json 스트링으로 변경하여서 데이터 전송 dataType : 'json', timeout : 100000, success : function(data) { -> 컨트롤러에서 -> 서비스 -> xml -> 해당 쿼리 -> 컨트롤러 -> 다시 뷰단으로 넘겨받았을 때 실행되는 곳 if(data && data.resultCd && data.resultCd == "S") { $.each(data.codeList, function (index, item) { -> list 형식으로 리턴 받았음으로 each문을 사용하여서 하나하나 뷰단에 출력 작업 -> data.codeList -> codeList는

프로젝트 예외처리 예시 1 <고정 데이터 값이 null 일 때 처리> [내부링크]

프로젝트 예외처리 예시 1 <고정 데이터 값이 null 일 때 처리> 예시 상황) 고객에게 메세지를 전송하는데 휴대폰번호가 필수 데이터이다. 이 때 휴대폰번호가 없는 고객의 정보가 서비스단으로 들어왔다. 이 경우 예외처리를 어떤식으로 진행할 것 인가. 방법은 여러가지지만, 예외처리방법) 본인은 핸드폰번호가 ""이거나 null로 들어왔을 경우 if문을 사용하여서 발송상태에 오류값을 set하고 발송오류메세지에 핸드폰번호가 존재하지 않는다는 문구를 set할 것이다. 오류 발생처리건으로 디비에 저장하게 끔 insert를 진행 할 것이다. if (trPhone == "" && trPhone == null){ noticeVO.setTrSendstat("4"); noticeVO.setTrErrmsg("핸드폰번호가 존재하지 않습니다."); }

프로젝트 예외처리 예시 2 <체크박스가 여러개일 때 아무것도 체크 안하면 마지막 id가 없다고 에러뜸> [내부링크]

프로젝트 예외처리 예시 2 <체크박스가 여러개일 때 아무것도 체크 안하면 마지막 id가 없다고 에러뜸> 예외상황) 체크박스가 2개일 때 2개다 선택을 안했을 경우 마지막 id가 없다고 에러가 뜸 예외처리방법) if ($("#ps_send1").is(":checked")) { searchData.ps_sendType = '1'; -> ps_send1 id를 가진 체크박스가 클릭이 되었을 때 }else if ($("#ps_send2").is(":checked")) { searchData.ps_sendType = '2'; -> ps_send2 id를 가진 체크박스가 클릭이 되었을 때 }else if ($("#ps_send1").is(":checked")&&("#ps_send2").is(":checked")) { searchData.ps_sendType = '1'; -> ps_send1과 ps_send2 id를 가진 체크박스가 둘다 클릭이 되었을 때 }else{ searchData.ps_s

java.lang.IllegalStateException [내부링크]

java.lang.IllegalStateException 에러 : java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext 해결방법 : 톰켓 클린 -> 프로젝트 종료 -> 재실행

FileZilla 접속오류 SFTP 서버로 FTP를 연결하지 못했습니다. (오류해결) [내부링크]

FileZilla 접속오류 SFTP 서버로 FTP를 연결하지 못했습니다. (오류해결) 오류내용 -> FileZilla에서 FTP 서버로 접근시 오류 발생 -> SFTP 서버로 FTP를 연결하지 못했습니다. 적합한 프로토콜을 선택하십시오. 상단의 오류가 발생하며 접속오류로 접근이 불가했다. 원인 -> SFTP서버에 FTP 프로토콜로 접속 해결방법 -> 파일 -> 사이트 관리자 -> FTP 프로토콜에서 SFTP서버로 변경

FileZilla 사용법 [내부링크]

FileZilla 사용법 FileZilla 접근 후 해당 프로젝트의 호스트 : 예) 111.201.111.11 포트 : 예) 8080 사용자 : 예) root 비밀번호 : 예) 1111 호스트/포트/사용자/비밀번호 -> 입력 후 연결 연결 성공 시 VPN 연동이 안되어 있을 경우 왼쪽은 본인 pc / 오른쪽은 해당 프로젝트 pc 저는 보통 하단과 같은 방법으로 진행합니다. -본인 pc에 백업 폴더를 생성 -기존 프로젝트 파일 -> 백업 폴더로 옮겨놓기 -본인 pc에서 컴파일할 파일 -> 프로젝트 파일에 옮기기

모듈 jar 파일 프로젝트 설치 및 연동 방법 [내부링크]

모듈 jar 파일 프로젝트 설치 및 연동 방법 nice 인증 솔루션을 사용할 때 모듈을 프로젝트에 설치해야하는 일이 생겼습니다. jar파일 설치 경로 -> /src/main/webapp/WEB-INF/lib/ 이 경로고 nice 풀 네임은 -> ${basedir}/src/main/webapp/WEB-INF/lib/NiceID_v1.1.jar 경로다. 해당 경로에 솔루션에서 제공해준 jar을 추가한 다음 pom.xml에 하단과 같이 모듈을 dependency 해준다. <!-- [START] NICE평가정보 안심본인인증 서비스 모듈 --> <dependency> <groupId>Nice</groupId> <artifactId>NiceID</artifactId> <version>1.1</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/NiceID_v1.1.jar</systemPath> </d

NICE 인증 모듈 (솔루션) 설치 및 연동 [내부링크]

NICE 인증 모듈 (솔루션) 설치 및 연동 1. NICE 솔루션측에 계약서를 작성한다 (기획자) 2. 계약이 성사되면 1~2일 안에 이메일로 예시모듈과 키값이 전달된다. (키값 -> NICE로부터 부여받은 사이트 코드 / NICE로부터 부여받은 사이트 패스워드) 3. 해당 키값을 예시모듈에 넣어서 프로젝트에 맞게 코드를 수정한다. 예시) 4. /src/main/webapp/WEB-INF/lib/NiceID_v1.1.jar -> 해당 경로에 jar 모듈 추가 5. pom.xml -> nice 인증 jar 디펜던시 추가 6. login.jsp (로그인 페이지 JSP파일) NICE에서 제공한 예시 코드 추가 7. 로그인 클릭 시 fnPopup () 함수 호출 8. NICE 성공 / 실패 여부를 처리하는 컨트롤러 생성 NiceAuthController.java ... 생략 9. 성공시 nice/res_success.jsp 파일로 document.addEventListener("DOMCon

Intellij (인텔리제이) FTP 연동 [내부링크]

Intellij (인텔리제이) FTP 연동 하는 방법 저는 파일질라를 사용하여서 해당 서버에 파일을 업로드하였습니다. 하지만 이직한 회사에서 Intrllij (인텔리제이)를 사용하였고 Intrllij (인텔리제이) FTP 연동하는 방법을 사용하면 더 간편하게 사용 할 수 있음을 알게되었습니다. 1. 인텔리제이에서 Tool → Deployment → Browse Remote Host 클릭 2. SSH Configurations -> 왼쪽 상단에 + 버튼 클릭 -> 해당 서버 등록 3. Deployment에 해당 서버 등록 및 path 설정 -> test connection으로 커넥션 성공 여부 확인 후 등록 4. 해당 jar 파일 드래그 -> 로딩 기다리기 이렇게 쉬운 인텔리제이 FTP 연동 및 서버 파일 업데이트를 이제야 알았다니.. ; 네....

Index: 0, Size: 0 에러 원인 [내부링크]

Index: 0, Size: 0 에러 원인 작업을 진행중에 Index: 0, Size: 0 에러 가 떠서 원인을 분석하였습니다. 해당 소스에서 body()안에 첫번째 변수가 값이 넘어오지 않아서 발생한 오류였습니다. Map<String, String> returnValue = objectMapper.convertValue(((List)noticeResult.getBody()).get(0), new TypeReference<Map<String, String>>(){}); 오류가 발생하였을때 로그를 보고 타고 올라가는 습관을 들여야겠습니다. 원인 분석 하는 과정을 상세하게 적고싶지만 회사 내부 보안상 적지 못했습니다. ㅠ

Intellij git push / update / pull 사용법 [내부링크]

Intellij git push / update / pull 사용법 Intellij git push 하단에 commit 버튼 클릭 → 작업했던 내용중 선택해서 → 커밋 클릭 → 코멘트 눈치껏 Intellij git update update project 클릭 (상단에 gip update 버튼 클릭)→ 최신 버전으로 맞춰야함 Intellij git push ctrl + shift + a → push → master인지 확인 → 코멘트 작성 후 push

console Debugging 콘솔 디버깅 사용 [내부링크]

console Debugging 콘솔 디버깅 사용방법 console Debugging 콘솔 디버깅 간편한 사용방법 예시를 들어보겠습니다. 콘솔에서 디버깅 하고 싶을 경우 (툴 콘솔창 말고 뷰단에서) authParams 리스트에서 buyerName 이 잘 넘어오는지 확인하고 싶을 때 1. 해당 페지이 접근 2. 결과값을 반활할 변수 옆에 클릭 -> 파란색 아이콘이 생김 3. 해당 결과값이 반환되는 시점까지 실행 4. 디버깅 모드가 자동으로 실행되고 해당 변수에 값이 잘 담겼는지 확인하기 위해서는 → paused in debugger 옆옆에 있는 아이콘을 클릭하여서 실행하고 → 변수에 마우스를 가져다 대면 → 어떤 값이 들어있는지 확인할 수 있다 5. 또는 하단 첨부사진처럼 콘솔창에 쳐서 select를 하면 결과값이 반환되어 보여진다.

SSH Linux 배포 방법 및 Linux 명령어 [내부링크]

SSH Linux 배포 방법 및 Linux 명령어 해당 파일에 접근한다 sudo -i 접근 시 파일 비밀번호를 입력한다 해당 버전의 jar 파일이 있는지 확인한다 cd /home/해당파일경로/해당파일포트 파일 확인 (업데이트 시간까지 확인) ll 파일옮기는 명령어 mv /home/해당파일경로/옮길파일명 ./새로지은파일명 파일이 잘 옮겨졌는지 확인 단축키 ll 작업자 변경 명령어 명령어 chown 파일대경로:파일대경로 작업자변경할파일명 돌고 있는 파일인지 확인하는 명령어 ./돌고있는 파일명.sh status 돌고있는 파일명 -> running이라고 뜨면 돌고있는 jar파일이 맞음 샷다운 명령어 ./돌고있는 파일명.sh stop 돌고있는 파일명 -> 해당 로그 확인 시 셧다운 나오면 셧다운 완료된 것 리로드 명령어 ./리로드할 파일명.sh start 리로드할 파일명 -> 해당 로그 확인 시 Started McareWebUIApplication 나오면 리로드 완료

Linux 특정 log 찾기 grep sort 사용법 [내부링크]

Linux 특정 log 찾기 grep sort 사용법 Linux 서버를 사용할 때 운영일 경우 log를 보면서 cs를 처리해야할 때가 다수입니다. 이 경우 대부분 grep을 사용해서 해당 cs사용자 또는 특정 키값으로 검색하여서 log를 분석합니다. $ cat /var/log/파일경로/로그파일명.log | grep "~~~ 특정 로그" 정렬을 해서 확인하고 싶을 경우 | sort를 사용해주면 됩니다. $ cat /var/log/파일경로/로그파일명.log | grep "~~~ 특정 로그" | sort

MVC1방식으로 MyPage 구현하기 (정규식 사용) [내부링크]

MVC1방식으로 MyPage 구현하기 * 개발 3개월차로 미숙해요 ㅠ 수정사항이 있으면 말씀해주세요. ※ 정규식 사용 2차 미니프로젝트 주제 : 호텔 중개 사이트 담당 파트 : 로그인 / 회원가입 / 마이페이지 프로젝트 기간 2021년 12월 18일 ~ 21년 1월 7일 (약 3주간 진행) <페이지 구성> registerOk.jsp 로그인 완료 시 뜨는 메인페이지 myPage.jsp 마이페이지 -> 회원정보 수정 myPageOk.jsp 회원정보 수정 (DB연동) Member_Dao Member_Vo registerOk.jsp 로그인 완료 시 뜨는 메인페이지 session으로 로그인한 사용자의 정보를 다른 페이지에도 들고 갈 수 있게 만들었습니다. myPage.jsp 마이페이지 -> 회원정보 수정 session.getAttribute(""); 으로 id값을 각 페이지에 넘겨서 사용 정규식 사용 1. 정규식 변수 선언 2. 비밀번호 : 특수문자, 영문자, 숫자의 조합으로 7자이상을 입력

MVC1방식으로 Login 구현하기 [내부링크]

MVC1방식으로 Login 구현하기 * 개발 3개월차로 미숙해요 ㅠ 수정사항이 있으면 말씀해주세요 1차 미니프로젝트 주제 : 호텔 중개 사이트 담당 파트 : 로그인 / 회원가입 / 마이페이지 프로젝트 기간 2021년 12월 18일 ~ 21년 1월 7일 (약 3주간 진행) <페이지 구성> index.jsp 로그인 전 메인페이지 LoginMain.jsp 로그인 text 클릭했을때 뜨는 로그인 페이지 LoginOk.jsp 로그인시 회원정보가 맞는지 확인하는 곳 (DB연동하여 회원정보 유무 체크) registerOk.jsp 로그인 완료 시 뜨는 메인페이지 logout.jsp 로그아웃 눌렀을때 로그아웃 해주는 페이지 Member_Dao Member_Vo index.jsp 로그인 전 메인페이지 (로그인 전) 메인 페이지로 header를 만들었습니다. 로그인 -> 클릭 -> 회원 로그인 창 LoginMain.jsp로 이동 관리자용 -> 클릭 -> 관리자 로그인 창 LoginMain02.jsp로