itstart-190126의 등록된 링크

키자드에 등록된 총 329개의 포스트를 확인하실 수 있습니다.

Tistory

코닥 울트라 F9 - 필름사진 모음

[2022.04 부산 여행] - 부산 해운대에서 찍은 사진 중 건진... 사진 - 다른것도 있지만 같이 놀러간 동료들 얼굴이 찍혔기 때문에 보류!! [집근처 돌아다니며 찍은 막 사진 모음] 사진 하나하나 찍으면서 돌아다니는 재미를 느꼈다. 비록 가까운 곳을 돌아다니며 찍었지만 필름 카메라를 사고 처음 찍었기 때문에 설레고 들뜬 마음으로 찍으며 돌아다녔다. 이때가... 음... 22년 여름에서 가을로 넘어가던 시기여서 날씨가 굉장히 좋을때였다 그래서 하늘 색상도 굉장히 잘 담긴 펴닝며 흔들림 거의 없이 찍혔다. 아래 두개의 사진은 다른날 찍은 사진인데 약간 흐린 날씨일때 찍었던 사진이다. 날도 흐리고 날씨의 영향을 많이 받는 나였지만 필름카메라 하나로 신나서 찍으러 돌아다녔다. 그 중에 건진 사진이 저 두..

Tistory

mybatis - 프로시저 사용 (파라미터 있는 경우도 포함)

[mybatis - 프로시저 사용 (파라미터 있는 경우도 포함)] mybatis에서 프로시저를 사용할때는 statementType으로 callable을 선언해줘야한다. 그래야 프로시저를 사용함을 앎 -- statementType="CALLABLE" mode IN,OUT,INOUT파라미터를 명시하기 위해 사용한다. 파라미터가 OUT / INIOUT이라면 파라미터의 실제 값은 변경될 것이다. mode=OUT(또는 INOUT)이고, jdbcType=CURSOR라면 파라미터의 타입에 ResultSet를 매핑하기 위해 resultMap을 명시해야 한다. jdbcType 지원되는 타입 목록에서 설명하는 JDBC 타입. JDBC타입은 insert, update 또는 delete 하는 null 입력이 가능한 칼럼에서만..

Tistory

구글 애드센스 사용기(1) - 03.22

[구글 애드센스 사용기] 구글 애드센스를 03.22를 기점으로 사용하기 시작했다. 운영이 어떻게 될지... 다른 블로그를 찾아보니 저품질로 판단되어 광고운영이 안되는 것도 있던데... 수익을 조금이나마 늘려보려고 하는거라... 제발 잘 되었으면 좋겠다. 하루, 이틀 정도에 하나씩 올리는 분도 있고... 나도 많이 올리는 건 아니지만... 2~3일에 하나씩은 올려야 하지 않을까 싶다. 구글 애드센스 사용하는 방법은 내일 작성하여 올리는 것으로 하자 ㅎㅎ 지금은 블로그 광고 운영을 어떻게 할지 고민해 보는게 좋을거 같다 ㅎㅎㅎ [2023.03.22 애드센스 예상 수입 보고서] 과연 오늘은 어떻게 나올지 00시 되면 갱신되려나... ㅎㅎ [2023.03.23 애드센스 예상 수입 보고서] 궁금해서 00:00 까..

Tistory

JAVA - 주민번호, 패스워드 암호화 (양방향, 단방향 암호화)

[주민번호는 양방향 암호화 / 패스워드는 단방향 암호화] 양방향 알고리즘은 암호화된 암호문을 복호화 할 수 있는 알고리즘을 의미하고 단방향 알고리즘은 암호화는 수쟁하지만 절대로 복호화가 불가능한 알고리즘을 의미한다. 양방향은 대칭키와 비대칭키가 있으며, 단방향은 HASH가 있다. 양방향 알고리즘 : 암호화, 복호화 가능 (대칭키, 비대칭키) 단방향 알고리즘 : 암화화 가능, 복호화 불가 대칭키(비공개키) 방식 : DES, AES 비대칭키(공개키) 방식 : RSA 양방향 암호화 방식 (주민번호 암호화 시 사용) https://velog.io/@zz1996zz/%EC%95%94%ED%98%B8%ED%99%94%EC%99%80-%EB%B3%B5%ED%98%B8%ED%99%94-AesBytesEncryptor ..

Tistory

javascript - map 사용법

배열의 요소를 일괄 변경해야하는 경우, Array 객체의 map 메소드를 활용한다. callback 함수를 인자로 받아서, callback 함수의 return으로 반환되는 값들을 재조합하여 새로운 배열로 만든다. const arr = [ {id : 0, name : '혜림', age : 0}, {id : 1, name : '현일', age : 3}, {id : 2, name : '현아', age : 5}, {id : 3, name : '우림', age : 2} ]; const arr2 = arr.map(el => { el.age = el.age + 1; return el; }); const arr3 = arr.map(el => el.name); console.log(arr2); //[ // {id : 0..

Tistory

javascript - Object.keys()

keys : 객체에서 키만 추출하기 Object 객체의 메소드 keys를 활용하면, 객체의 키들만 추출할 수 있다. 추출한 키를 배열에 담아 반환된다. const obj = { movie : 'Sunny', music : 'Like Sugar', style : 'Retro', price : Infinity }; const arr = Object.keys(obj); console.log(arr); //["movie", "music", "style", "price"] obj 변수에 객체 리터럴을 대입한 후 Object 객체의 메소드 keys()를 호출하고, 인자로 obj 변수를 넣는다. keys는 obj 변수에 정의된 속성 키 정보들만 추출한다. 추출된 값들은 새로운 배열에 담아 return 한다.

Tistory

javascript - Object.values()

Object.values() : 객체에서 값만 추출하기 Object 객체의 메소드 values를 활용하면, 객체의 속성값(values)만 추출할 수 있다 추출된 속성값들은 배열에 담아 반환된다. const obj = { movie : 'Sunny', music : 'Like Sugar', style : 'Retro', price : Infinity }; const arr = Object.values(obj); console.log(arr); //['Sunny', 'Like Sugar', 'Retro', Infinity]

Tistory

JAVA - WAS 서버에서 이미지 표출 처리

[WAS 서버에서 이미지 표출 처리하기] 사용자가 사진을 업로드할 시 서버에 저장되고 저장된 이미지를 다시 화면에 뿌려줘야할때 또는 보안적으로 안전하게 경로를 보여주고 싶지 않을 때 서버에서 이미지 표출 처리 하며 script단에서 태그에 서블릿 경로로 지정한 후 서버단에서 처리해주는 방식으로 있다. 현재 내가 아는 방식은 두가지가 있으며 아래와 같다. 1. ServletOutPutStrrem으로 파일 읽어서 내보내기 RequestMapping("/profile") public String profile(HttpSession session,HttpServletResponse response , String fileId ) throws Exception { response.setContentType( "i..

Tistory

SQL) 경기도에 위치한 식품창고 목록 출력하기 - oracle

문제) FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요. 문제풀이) SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, NVL(FREEZER_YN, 'N') FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%' * 해당문제는 NULL값을 다른값으로 치환시키는 문제이다. 상당히 쉬운 문제였는데, NULL 값을 'N'으로 변경하는 문제여서 NVL함수를 사용하였다.

Tistory

SQL) 나이 정보가 없는 회원 수 구하기 - oracle

문제) USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정해주세요. SELECT COUNT(*) USERS FROM USER_INFO WHERE AGE IS NULL * 문제풀이 IS NULL문제 해당문제는 IS NULL 문제로 나이정보가 없는 회원의 수 즉, COUNT 함수와 WHERE 절에서의 조건으로 IS NULL을 사용하는 문제였다. 문제내용을 파악하는 순간 풀 수 있는 문제였다.

Tistory

SQL) 가장 비싼 상품 구하기 - oracle

문제) PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요. SELECT MAX(PRICE) MAX_PRICE FROM PRODUCT * SUM, MAX, MIN문제로 해당 문제는 MAX() 함수 사용에 대한 문제였다.

Tistory

javascript - filter 사용법

filter : 배열의 특정 조건을 기준으로 필터링하기 Array 객체의 filter 메소드는 인자로 대입된 callback 함수를 통해 배열 내부를 순환하면서, 요소 각각이 특정 조건을 만족하는지 확인한다. 확인하는 방식은 callback 함수 내부에 정의된 문장들을 통해 테스트하게 되는데, callback 함수의 반환값은 무조건 true 또는 false이어야 한다. 이중에서 true 결과값을 만족하는 요소들을 다시 새로운 배열에 담아 반환한다. const arr = [1,2,3,4,5,6,7,8,9,10]; const filteredTwo = arr.filter(a=>{ console.log('현재 위치의 값은 ${a} 입니다.'); return a%2 == 0; }); console.log(filt..

Tistory

SQL) 재구매가 일어난 상품과 회원 리스트 구하기 - Oracle

문제) 정답) SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*) > 1 ORDER BY USER_ID, PRODUCT_ID DESC

Tistory

SQL) 오프라인/온라인 판매 데이터 통합하기 - oracle

문제) ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요. 문제풀이 SELECT TO_CHAR(SALES_DATE,'YYYY-MM-DD') SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE TO_CHAR(SALES_DATE, 'YYYYMM') ..

Tistory

SQL) 강원도에 위치한 생산공장 목록 출력하기 - Oracle

문제) 답안) SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE '강원도%' ORDER BY FACTORY_ID ASC;

Tistory

SQL) 12세 이하인 여자 환자 목록 출력하기 - Oracle

문제) 정답) SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE') TLNO FROM PATIENT WHERE GEND_CD = 'W' AND AGE

Tistory

SQL) 3월에 태어난 여성 회원 목록 출력하기 - Oracle

문제 설명) 정답) SELECT MEMBER_ID, MEMBER_NAME, GENDER, TO_CHAR(DATE_OF_BIRTH, 'YYYY-MM-DD') AS DATE_OF_BIRTH FROM MEMBER_PROFILE WHERE TO_CHAR(DATE_OF_BIRTH, 'MM') = '03' AND GENDER = 'W' AND TLNO IS NOT NULL ORDER BY MEMBER_ID * 3월에 태어난 => TO_CHAR(DATE_OF_BIRTH, 'MM') = '03' * 여성 => GENDER = 'W' * 전화번호 없는 사람 제외 => TLNO IS NOT NULL * 멤버아이디 오름차순 => ORDER BY MEMBER_ID

Tistory

SQL) 인기있는 아이스크림 - Oracle

문제 설명) 정답) SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ** 엄청 간단한 문제였다

Tistory

SQL) 조건에 맞는 도서 리스트 출력하기 - Oracle

문제 설명) 정답) SELECT BOOK_ID, TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD') AS PUBLISHED_DATE FROM BOOK WHERE TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021' AND CATEGORY = '인문' ORDER BY PUBLISHED_DATE

Tistory

SQL) 과일로 만든 아이스크림 고르기 - Oracle

문제 설명) 문제 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. 정답) SELECT half.FLAVOR FROM ICECREAM_INFO info, FIRST_HALF half WHERE info.FLAVOR = half.FLAVOR AND half.TOTAL_ORDER > 3000 AND info.INGREDIENT_TYPE = 'fruit_based' ORDER BY half.FLAVOR

Tistory

SQL) 흉부외과 또는 일반외과 의사 목록 출력하기 - Oracle

문제 설명) 정답) SELECT DR_NAME, DR_ID, MCDP_CD, TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') as HIRE_YMD FROM DOCTOR WHERE MCDP_CD IN ('CS', 'GS') ORDER BY HIRE_YMD DESC, DR_NAME

Tistory

SQL) 평균 일일 대여 요금 구하기 - Oracle

문제 설명) 정답) SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE = 'SUV' * ROUND : 반올림 해주는 function이다.

Tistory

SQL) 어린 동물 찾기 - Oracle

문제) 정답 ) SELECT ANIMAL_ID , NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' ORDER BY ANIMAL_ID ASC

Tistory

SQL) 조건에 맞는 회원 수 구하기 - Oracle

[문제] [정답] SELECT COUNT(*) cnt FROM USER_INFO WHERE TO_CHAR(JOINED, 'YYYY') = '2021' AND (age >= 20 AND age

Tistory

SQL) 서울에 위치한 식당 목록 출력하기 - Oracle

문제 설명) 문제 REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요. 정답) SELECT info.REST_ID, info.REST_NAME, info.FOOD_TYPE, info.FAVORITES, info.ADDRESS, ROUND(review.REVIEW_SCORE, 2) REVIEW_SCORE FROM REST_INFO info, (SELECT REST_ID, AVG(REVIEW_SCORE) A..

Tistory

SQL) 평균 일일 대여 요금 구하기 - Oracle

문제 설명) 문제) 문제 CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요. 정답) SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE = 'SUV'

Tistory

SQL) 재구매가 일어난 상품과 회원 리스트 구하기 - Oracle

문제 설명) 문제) ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. 정답) SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(ONLINE_SALE_ID) >= 2 ORDER BY USER_ID, PRODUCT_ID DESC

Tistory

SQL) 오프라인/온라인 판매 데이터 통합하기 - Oracle

문제 설명 ) 문제 ) 문제 ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요. 정답 ) SELECT * FROM (SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE..

Tistory

SQL) 아픈 동물 찾기 - Oracle

문제 설명) 정답 ) SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID

Tistory

Vue.js 입문 (1일차)

- Vue.js로 프로젝트를 만드는 회사가 많아짐에 Vue.js를 입문해야겠다는 생각이 들어 Vue.js를 입문하기 부터 프로젝트를 생성하여 하나의 앱을 만들기까지의 과정을 작성해보고자 한다. - 금일은 Vue.js가 무엇인지 알아가고 개발환경을 셋팅하는 시간을 가져본다. Vue.js란 Vue.js는 웹 페이지 화면을 개발하기 위한 프런트엔드 프레임워크이다. 뷰는 화면단 라이브러리이자 프레임워크라고도 볼 수 있다. 뷰 코어 라이브러리는 화면단 데이터 표현에 관한 기능들을 중점적으로 지원하지만 프레임워크의 기능인 라우터, 상태관리, 테스팅 등을 쉽게 결합할 수 있는 형태로도 제공된다. 즉, 라이브러리 역할뿐만 아니라 프레임워크 역할도 할 수 있다. Vue의 장점 1. 배우기가 쉽다 2. 리액트와 앵귤러에 ..

Tistory

PDF파일 작성 (pdfbox)

[PDF파일 작성 (pdfbox)] POM.XML - pdfbox maven 설정 1 2 3 4 5 org.apache.pdfbox pdfbox 2.0.8 cs JAVA Controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 @RequestMapping(value = "/pdfTest", method = RequestMethod.GET) @ResponseBody public void pdfTest(HttpServ..

Tistory

개발환경 설정 및 프로젝트 생성

* 크롬 브라우저 * 아톰(Atom) 텍스트 에디터 * node.js * 뷰 개발자 도구(Vue.js devtools, 크롬 확장 플러그인)

Tistory

CollectionUtils 사용법

[CollectionUtils 사용법] Apache Commons 라이브러리 중 Null 체크 해주는 메소드가 있음 List scheduleModelList = scheduleService.selectCastSchedule(vo); if(CollectionUtils.isNotEmpty(scheduleModelList)){} 아래와 같이 쓰면 Null 오류 날 수 있어 위와 같이 ConllectionUtils를 사용한다. List.isEmpty()

Tistory

IntelliJ - Maven Build 하기

IntelliJ - Maven Build 하기 [Maven Build 실행 순서] [결과]

Tistory

JAVA - UUID 란 / UIUID 생성하기

JAVA - UUID 란 / UIUID 생성하기 UUID 란 UUID는 Universally unique identifier의 약자로서, 정보 식별을 위하여 사용되는 식별자이다 128-bit 숫자로 이루어져 있으며, xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 형식으로 표현한다 UUID의 장점 중, 데이터들이 나중에 단일 DB로 통합되거나, 같은 채널에서 전송되더라도 식별자가 중복될 확률이 매우 낮다는 점이 있었다 UUID는 128-bit로 이루어진, “실용적인 측면에서 충분히 고유한” universal 식별자이다 8-4-4-4-12 형식 이점 UUID는 128-bit 숫자로, 정보 식별에 사용됨 Microsoft의 S/W에서는 GUID라고 불림 standard mehod로 생성 시..

Tistory

Not allowed to read local resource 오류

[Not allowed to read local resource 오류]

Tistory

JAVA - Enum 타입

JAVA - Enum 타입 Enum enum은 equals 메서드를 쓸 필요가 없다 열거 타입은 인스턴스들이 고정되어 있으므로 ==을 사용하면 된다 equals 를 실행한다고 해도 결국 == 검사를 수행함 == 비교를 하는 편이 코드도 간단해지고 직관적이기 때문에 == 을 사용하는 것!!

Tistory

jasypt 암호화 복호화

[jasypt 암호화 복호화] 1) Dependency - 의존성 주입 2) 사용법 [결과값] 3) DB 정보를 설정시 자주 사용한다 * 참고 - jasypt 통한 암호화 복호화 테스트 할 수 있는 사이트 https://www.devglan.com/online-tools/jasypt-online-encryption-decryption

Tistory

OpenLayers (특정 위치로 이동 : view.fit())

지도의 특정 영역으로 이동하는 방법은 찾아보면 되게 많은데 view 에서 fit()이라는 함수가 그 중 하나이다. fit은 center와 zoom을 동시에 이동시켜주기에 간단하지만 굉장히 유용하다 POSTGIS box2d ST_Extent(geometry set geomfield); SELECT ST_Extent(the_geom) as bextent FROM sometable; st_bextent ------------------------------------ BOX(739651.875 2908247.25,794875.8125 2970042.75) BOX --> 좌표 배열 --> EXTENT --> JS에서 replace(치환)하여 view.fit()에 넣을 수도 있음

Tistory

PostGIS (영역의 중심점 추출하기 - ST_CENTEROID, ST_POINTONSURFAC)

[PostGIS (영역의 중심점 추출하기 - ST_CENTEROID, ST_POINTONSURFAC)] ST_Extent — 기하 도형의 행을 묶는 경계 상자를 반환하는 집계 함수입니다. ST_Centroid — 지오메트리의 기하학적 중심을 반환합니다. ST_PointOnSurface — 폴리곤 또는 지오메트리에 있는 것이 보장된 점을 반환합니다. ST_Centroid : MultiPolygon의 특성상 계산을 통해 중심점을 잡았을 경우 실제 Area 영역 이외에 Center가 잡힐 수 있음 (온전한 다각형의 모양이 아닌 경우) ST_PointOnSurface : 실제 Area 영역 이내에 Center 값이 잡히게 보정하는 것 EXTENT / centroid, pointononsurface 두가지..

Tistory

Spring Boot - 에러페이지 설정 (Custom Error page)

Spring Boot - 에러페이지 설정 (Custom Error page) 스프링 부트 공식 문서 https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications.spring-mvc.error-handling Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs a..

Tistory

jQuery validation : 입력 데이터 유효성 검사 플러그인

validation 플러그인 웹 프로그래밍에서 form 입력 데이터 유효성 검사는 사용자가 허용되지 않은 형식의 값을 입력하는 것을 방지하기 위하여 꼭 필요한 기능이다. jquery validation은 이러한 유효성 검사를 쉽게 사용할 수 있도록 도와주는 플러그인이다. 경고창 방식의 단점을 개선하고 사용자에게 빠른 체크가 가능하도록 시각화 원클릭, 원체크의 단점을 개선하여 원클릭 올체크가 가능 onkeyup, onfocusout을 이용하여 실시간 유효성 검사 가능 색 혹은 텍스트를 이용하여 빠른 정보를 제공함 사용자 편의성과 이해도를 높일 수 있음 // jquery validate를 사용하기 위해서는 jquery library가 있어야 함 jquery.validate : 검증플러그인 (필수) add..

Tistory

SHP, SHX, DBF, KML 등 GIS 용어 정리

SHP : shapefile은 벡터 형식이며 점, 선, 도형으로 표현된다. 도한 그 속성을 지니고 있음. * shapefile을 하나의파일포맷이라고생각하지만 사실,3개의확장포맷을통틀어shapefile이라고하며 shp,shx,dbf가 해당포맷을뜻함 DBF : 각 도형(점, 선, 면)의 대한 속성값이 담겼음 (테이블 형식으로 생김) ※ shp, shx = data (공간데이터) dbf = information (속성정보) QGIS에서는 shapefile을 분석 혹은특정위치(공간)편집으로 활용 SHP, SHX, DBF, KML 용어정의와 활용 그럼 웹과 모바일에 데이터시각화를 하려면? Shp파일포맷은 웹에서인식하지못한다. 웹의형식에 맞는 파일포맷이필요한데 JSON과 XML이 적합하다. javaScrip..

Tistory

JAVA - ZIP 파일 다운로드

[JAVA - ZIP 파일 다운로드] Zip 파일 다운로드 - zip 파일 다운로드 시 ContentType은 application/zip;으로 한다 - ZipOutputStream/ZipInputStream이 java.util.zip에 있다 해당 클래스로 Zip 파일생성/ 다운로드/ 업로드가 가능하니 사용해보는게 좋을것 같다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 @GetMapping(value = "/down..

Tistory

Do It! 자료구조와 함께 배우는 알고리즘 - 다차원 배열

배열을 구성 요소로 하는 것이 2차원 배열이며, 2차원 배열을 성 요소로 하는 것이 3차원 배열이다. 이런 배열을 보통의 배열(1차원 배열)과 구별하기 위해 다차원 배열이라고 한다. 다차원 배열이라고 한다. 다차원 배열 가운데 가장 간단한 것이 2차원 배열이다. 1 int [][] x = new int[2][4]; cs 2차원배열 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package com.nam.project; public class Int2DArray { public static void main(String[] args) { int [][] x = new int[2][4]; x[0][1] = 37; x[0][3] = 54; x[1][2] = 65; for (..

Tistory

브라우저 확인 후 파일 다운로드

[브라우저 확인 후 파일 다운로드] - 브라우저 별로 한글 인코딩 필요 --> 한글 깨짐 방지 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 @RequestMapping(value="/info/downloadManual.do") public void downloadManual(HttpServletRequest request, HttpServletResponse response) { String path = "파일경로"; //full경로, 추후 모딩 필요 String fileName..

Tistory

PostgreSQL 다운로드 및 설치 (Window 10)

PostgreSQL 다운로드 및 설치 (Window 10) postgresql 설치 - 아래 링크에 들어가서 'Download the installer' 를 클릭한다. - https://www.postgresql.org/download/windows/ PostgreSQL: Windows installers Windows installers Interactive installer by EDB Download the installer certified by EDB for all supported PostgreSQL versions. This installer includes the PostgreSQL server, pgAdmin; a graphical tool for managing and developin..

Tistory

파일 업로드 - FileUtils.copyInputStreamToFile()

FileUtils를 사용하려면 commons.io를 maven해야 사용할 수 있다. FileUtils.copyInputStreamToFile 메소드는 매개변수가 두개 있어야 한다. 1. InputStream 소스 : 복사할 파일의 바이트 2. File : InputStream 소스의 바이트를 copy 할 File 데이터 - InputStream 소스의 경우 복사할 바이트이기 때문에 Null이면 안되고 덮어쓸 File 데이터의 경우 디렉토리 또는 Null이 아니어야 한다. Exception) : IOException - 스트림, 파일 및 디렉터리를 사용 하 여 정보에 액세스 하는 동안 throw 되는 예외에 대 한 기본 클래스이다. 기본 클래스 라이브러리에는 다음과 같은 형식이 포함 되어 있으며, ..

Tistory

Exception) - java.nio.file.AccessDeniedException

일반적으로 파일 권한 또는 기타 액세스 확인으로 인해 파일 시스템 작업이 거부 될 때 발생하는 확인 된 예외입니다. 이 예외는 파일에 대한 액세스가 거부 될 때 액세스 컨트롤러 또는 보안 관리자가 던지는 AccessControlException 또는 SecurityException 과 관련이 없다. 파일 소유권 권한 문제 파일들 자체가 root 권한으로 되어있기 때문에 사용자로 소유자 변경을 해준다. chown -R 사용자 : 사용자[폴더이름]

Tistory

Thymeleaf란

Thymeleaf란 Thymeleaf란 Thymeleaf는 HTML, XML, JavaScript, CSS 및 일반 텍스트까지 처리할 수 있는 웹 및 독립 실행형 환경을 위한 최신 서버 측 Java 템플릿 엔진입니다. Thymeleaf의 주요 목표는 템플릿을 만드는 유지 관리가 쉬운 방법을 제공하는 것입니다. 이를 달성하기 위해 디자인 프로토타입으로 사용되는 템플릿에 영향을 미치지 않는 방식으로 논리를 템플릿 파일에 주입하는 Natural Templates 의 개념을 기반으로 합니다 . 이를 통해 디자인 커뮤니케이션이 향상되고 디자인 팀과 개발 팀 간의 격차가 해소됩니다. Thymeleaf는 처음부터 웹 표준(특히 HTML5) 을 염두에 두고 설계되어 필요한 경우 완전히 검증된 템플릿을 생성할 수 있..

Tistory

객체 속성 기술자 이해하기

[객체 속성 기술자 이해하기] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 let user = { name : "jeado" }; let descriptor = Object.getOwnPropertyDescriptor(user, 'name'); console.log(descriptor); let user2 = {}; Object.defineProperty(user2, "name", { value : "jeado", enumerable : true, configur..

Tistory

Do it! 자료구조와 함께 배우는 알고리즘 입문 : 소수의 나열

어떤 정수 이하의 소수를 나열하는 알고리즘 소수는 자신과 1 이외의 정수로 나누어떨어지지 않는 정수이다. 2부터 n-1까지의 어떤 정수로도 나누어 떨어지지 않는다. 만약 나누어떨어지는 정수가 하나 이상 존재하면 그 수는 합성수 이다. [1000이하의 소수를 나열하는 프로그램]

Tistory

handlebars template 사용법

handlebars 사용법 - 핸들바는 간단한 템플릿 언어 입니다. 템플릿과 입력 개체를 사용하여 HTML 또는 기타 텍스트 형식을 생성합니다. 핸들바 템플릿은 핸들바 표현식이 포함된 일반 텍스트처럼 보입니다. 핸들바를 테스트하는 가장 빠른 방법은 CDN 에서 핸들바를 로드 하여 HTML 파일에 포함하는 것입니다. https://handlebarsjs.com/guide/ Introduction | Handlebars Introduction What is Handlebars? Handlebars is a simple templating language. It uses a template and an input object to generate HTML or other text formats. Handl..

Tistory

Do It! 자료구조와 함께 배우는 알고리즘 - 두 배열의 비교

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 package com.example.demo.algorism; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Scanner; public class ArrayEqual{ //두배열의 비교 //두 배열이 같은가..

Tistory

함수 호이스팅 이해하기

* 자바스크립트에서는 함수를 선언하기 전에 호출이 가능하다. * 이러한 현상을 호이스팅이라고 한다. 호이스팅을 직영하면 '끌어올리기'인데 함수가 실제 호출하기 이전으로 끌어 올라간 것 처럼 동장하기 때문이다. [함수를 선언문이 아닌 표현식을 통해 변수에 할당하여 호출하기] TypeError 에러가 발생한다. 에러의 종류가 TypeError 의외일 수 있다. 실제로는 hello2 이름으로 선언된 변수는 호이스팅이 이루어졌고, 여기에는 undefined가 할당된다. 그래서 undefined는 호출할 수 없기 때문에 TypeError가 발생한 것이다. 만약 호이스팅이 이루어지지 않았더라면 ReferenceError로 hello가 선언되지 않았다는 에러가 나와야 한다. [NOTE] 호이스팅은 자바스크립트의 코드..

Tistory

스코프 이해하기

스코프는 유효 범위로써 변수와 매개변수가 어디까지 유효한지를 나타낸다. 예를들어, 코드에서 a라고 작성했을 때 a라는 식별자가 어디를 참조할지, 실제값이 무엇인지를 찾을 때 스코프를 활용하여 찾게 도니다. 자바스크립트는 기본적으로 전역과 함수 단위로 스코프를 생성한다. 함수 안에서 선언된 수는 함수 블록 안에서만 접근이 가능하다. 그리고 전역에 선언한 변수들은 코드 어디에서든 접근이 가능하다

Tistory

클로저 이해하기

* counter1과 counter2 객체의 increase 메소드를 호출하면 2라인에서 볼 수 있는 createCounterClosure 함수 내부의 count 변수에 모두 접근한다. 하지만 cunter1과 counter2의 getCount를 호출한 결과를 보면 counter1의 메소드들이 가리키는 count와 counter2의 메소드들이 가리키는 count가 다른 값을 가지고 있는 것을 알 수 있다. counter1과 counter2의 메소드들이 다른 count에 접근하는 것은 다른 렉시컬 환경의 환경 레코드에서 count에 접근하는 것이다. 이러한 현상이 가능한 이유는 바로 클로저 때문이다. increate와 getCount 함수가 정의될 때의 렉시컬 환경은 createCounterClosure 실..

Tistory

Do it! 자료구조와 함께 배우는 알고리즘 입문 (자바편) - 다중 루프 (Q12~14)

* Q12 : 위쪽과 왼쪽에 곱하는 수가 있는 곱셈표를 출력하는 프로그램을 작성하세요 - 구분선은 수직선 기호(|), 마이너스 기호(-), 플러스 기호(+)를 사용하세요. * Q13 : 곱셈이 아니라 덧셈을 출력하는 프로그램을 작성하세요 - Q12와 같이 표의 위쪽과 왼쪽에는 더하는 수를 출력하세요. * Q14 : 입력한 수를 한변으로 하는 정사각형을 * 기호로 출력하는 프로그램을 작성하세요.

Tistory

Do it! 자료구조와 함께 배우는 알고리즘 입문 (자바편) - 직각 이등변 삼각형 출력(Q15~17)

* Q15 : 직각 이등변 삼각형을 출력하는 부분을 아래와 같은 형식의 메서드로 작성하세요 - static void triangleLB(int n) - 또 왼쪽 위, 오른쪽 위, 오른쪽 아래가 직각인 이등변 삼각형을 출력하는 메서드를 작성하세요. - static void triangleLU(int n) //왼쪽 위가 직각인 이등변 삼각형을 출력 - static void triangleRU(int n) //오른쪽 위가 직각인 이등변 삼각형을 출력 - static void triangleRB(int n) //오른쪽 아래가 직각인 이등변 삼각형을 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33..

Tistory

ES6의 향상된 객체 문법 알아보기 - 단축 속성명, 속성 계산명, 비구조화 할당

ES6부터 추가된 단축 속성명으로 객체를 정의하는 방법 ES6에 새로 추가된 JavaScript 기능인 단축 속성명을 활용하여, 객체의 속성을 좀 더 간단하게 정의할 수 있다. 객체 속성을 리터럴로 정의하기 위해서는 키 : 값으로 작성해야 했다. 단축 속성명은 변수가 미리 준비되어 있는 경우 활용 가능하며, 변수명으로 속성의 키와 값을 한번에 정의할 수 있다. 이는 객체 리터럴 선언 코드를 더 짧고 가독성 있게 만들어 준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 // {변수명} var address = 'Seoul'; var member = {}; var addFamily ..

Tistory

Do it! 자료구조와 함께 배우는 알고리즘 입문 (자바편) - 배열, 난수 (Q1)

자료구조 - 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 데이터 단위는 데이터를 구성하는 한 덩어리라고 생학하면 된다. 자료구조는 쉽게 말해 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 벙법을 말한다. 배열 배열은 같은 자료형의 변수로 이루어진 구성요소(component)가 모인 것 - int [] a; // a는 자료형이 int형인 배열 : 형식 A - int a []; // a는 자료형이 int형인 배열 : 형식 B * 단순한 int 형이 아니라 int 형인 배열임을 명확하게 나타내는 형식 A쪽이 훨씬 많이 사용된다. 구성요소의 개수가 5개인 배열은 아래와 같이 선언된다. - a = new int [5]; // 배열 본체를 생성하는 본체에 대한 참조를 생성 (int [5]) ..

Tistory

코딩테스트 연습 > 정렬 > K번째 수

function solution(array, commands) { var answer = []; var i; var j; var k; var subArray; var cnt = 0; for(var index in commands){ i = commands[index][0]; j = commands[index][1]; k = commands[index][2]; subArray = array.slice(i-1, j); subArray.sort(function (f, s) { return f-s; }); answer[index] = subArray[k -1]; cnt++; } return answer; } * 주의점 : 배열 정렬 시 해당 코드에서는 숫자를 정렬하는 것이므로 숫자 정렬 코드를 적용해 주어야 한..

Tistory

Do it! 자료구조와 함께 배우는 알고리즘 입문 (자바편) - 반복 (Q7~9)

* Test7 : n이 7이면 '1+2+3+4+5+6+7=28'로 출력하는 프로그램을 작성하세요. * Test8 : 1부터 10까지의 합은 (1+10)*5와 같은 방법으로 구할 수 있습니다. 가우스의 덧셉이라는 방법을 이용하여 1부 터 n까지의 정수 합을 구하는 프로그램을 작성하세요. * 가우스 덧셈 * Test9 : 정수 a,b를 포함하여 그 사이의 모든 정수의 합을 구하여 반환하는 아래 메서드를 작성하세요. static int sumof(int a, int b) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ..

Tistory

Do it! 자료구조와 함께 배우는 알고리즘 입문 (자바편) - 반복 (Q10~11)

사전 판단 반복과 사후 판단 반복의 차이점 - 사전 판단 반복문인 while문 for문은 처음에 제어식을 평가한 결과가 0이면 루프 본문은 한번도 실행되지 않는다. - 사후 판단 반복문인 do문은 루프 본문이 반드시 한번은 실행된다. *Q10 두 변수 a, b에 정수를 입력하고 b-a를 출력하는 프로그램을 작성하세요 - 단, 변수 b에 입력한 값이 a 이하면 변수 b의 값을 다시 입력하세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package algorithm; import java.util.Scanner; public class Train..

Tistory

javascript : 반복문 사용하기

반복문 : 특정 코드를 반복해서 실행하고 싶을 때 사용하는 구문이다. 1. for문 2. while문 for문 - 조건식을 만족하는 한 계속해서 코드를 반복 실행한다. 매 반복 실행 마다 마지막에 증감식을 실행시킨다. for(초기식; 조건식; 증감식){ 반복 실행될 코드 } while문 - 조건식을 만족하는 한 계속해서 코드를 반복 실행한다. while(조건식){ 반복 실행될 코드 } 피보나치 수열 출력하기

Tistory

javascript : 배열 사용하기

배열형(Array Type) 인덱스 기반으로 값을 순서대로 삽입할 수 있는 특별한 객체 형태 - 인텍스(Index) : 위치, 0부터 시작하는 정수형 값 var array = [0, 10, 20]; array[0]; // 0 array[2]; // 20 배열형 (Array Type), 값의 삽입/제거 - length : 배열의 크기를 리턴 - push() : 배열에 새로운 값을 추가 - push : 밀어넣다 - unshift() : 배열에 새로운 값을 0번 인덱스로 추가 // 맨 앞에 추가 - pop() : 배열의 마지막값을 리턴하면서 제거 - shift() : 배열의 처음 값을 리턴하면서 제거

Tistory

javascript : 객체 사용하기

객체 자료형 (Object Type), 프로퍼티 객체는 프로퍼티의 모음이다. 프로퍼티는 값이나 함수 (메소드, method)를 가질 수 있다. userName : "인프런" ---> key : value 형태 : 객체 property name value 객체 프로퍼티에 접근하거나 값을 저장하고 싶으면 .(dot) 기호를 사용한다. var object = {userName : "인프런"} // -- 객체 타입은 {}로 묶는다. 새로운 객체 타입 선언, 프로퍼티 없이 선언 가능 object.userName // "인프런", userName 값에 접근 object.age = 12 // age 값을 12로 변경 object.online = true // online 값을 true로 지정 // online이라는 ..

Tistory

javascript : 함수(Function) ? / 스코프 이해하기

함수(function)? - 함수는 독립적인 실행 코드를 하나로 묶어 둔 것을 의미한다. 이렇게 코드들을 묶어서 작성하는 것을 함수의 정의 (declaration)라고 하고 정의된 함수는 호출(call)을 통해 실행할 수 있다. function 함수명(매개변수){ 실행 코드 } 함수(Function)의 입력과 출력 - 수학에서의 함수는 미리 정해진 방정식에 미지수를 정의하면 해당 미지수에 값을 대입하고 y 값을 돌려받는다.' - 프로그래밍의 함수도 한 개 이상의 입력 = 매개변수 과 단일 출력 (=리턴값)을 구현할 수 있다. y = f(x) function convertDollarToWon(dollar) { return (dallar * 1201.2); } 스코프 이해하기 {}(중괄호) = > 블록(Bl..

Tistory

javascript : Type 이해하기

데이터형(자료형) * 데이터 타입은 프로그래밍 언어에서 중요한 내용이다. - 원시형태(Primitive) : 숫자(Number), 문자열(String), 불리언(boolean), undefined(정의되지 않음), null(없음) - 객체형태(Object) : 시간(Date), 배열(Array), 객체(Object) 등 리터럴(Literal) 선언) * 코드상에서 값을 직접 명해서 선언하거나 할당하는 것으로 자료형에 따라 리터럴 선언 문법이 다르다. "1000"? VS 1000? = > 데이터를 코드상에서 직접 선언하는 방법 ------- ------- 문자열 숫자 원시 자료형(Primitive Type) - Number : 숫자형으로 정수나 실수(소수점 자리를 가지는 수)를 포함한다. : 100, 0...

Tistory

javascript : 변수, 산술연산 이해하기

변수 ? * 프로그램은 다양한 조건과 환경에 따라 달라지는 값을 입력받아 정해진 동작을 수행한다. 변수 x, y f(x, y) = z ==> 리턴(결과) z * 변할 수 있는 값으로 재사용할 수 있는 값(미지수) 변수의 선언 * 변수의 선언 : variable의 약어인 'var' 키워드와 변수의 이름을 선언 변수에 값을 할당 : 선언된 변수명에 대입 연산자( = )를 사용하여 값을 대입 x= 40; or x = '철수'; : 데이터를 리터럴 선언으로 대입 가능 var x = 40; : 선언과 동시에 대입(할당) 가능 undefiend : 변수때문에 생긴 것 ==> 변수만 선언한 형태 : var x; 변수 이름을 정하는 규칙 - 하이픈 ( - ) 사용 불가 - 첫 글자로 숫자 사용 불가 - 띄어쓰기 사용불..

Tistory

javascript : 값을 비교하기

비교연산자 두 값을 비교하기 위해 사용함, 참 또는 거짓이 결과 값으로 나옴 - 동등 : == - 부등 : != - 일치 : === * 동등은 dataType 까지는 비교하지 않고 5 == '5' 내용이 비슷하면 true를 반환한다. * 일치연산자를 쓰는게 더 나은 코드이다. - 우변보다 좌변이 큼 : > - 우변보다 좌변이 크거나 같음 : >= - 우변보다 좌변이 작음 : >) 삼항연산자 : 명제 ? 참일경우 리턴 값 : 거짓일 경우 리턴값 - 리턴값 : 결과값을 돌려줌. ex ) var bool = 19 > 10 ? "참이다" : "거짓이다"; 비트연산자 : 2진수 연산을 할 때 쓴다 (101101)

Tistory

javascript : 조건문 사용하기

조건문 : 조건의 참/거짓 여부에 따라 원하는 코드를 실행한다. - 조건은 참 또는 거짓을 결과로 가지는 비교연산자나 논리연산자의 조합으로 작성할 수 있다. 1. if문 2. switch 문 if문 - if else 키워드의 조합으로 조건문은 완성한다. - 하나의 조건만 검사 : 만약 ~하다면 if(조건식){ //비교, 논리 ( 함수 --> 리턴(boolean) 실행코드 } - if문에서 else if로 추가 조건을 계속 추가할 수 있다. - 조건 내의 실행구문 (블록, block)이 한줄 코드라면 중괄호 생략이 가능하다. switch문 switch, case 키워드로 조합으 조건문을 완성한다. - switch(표현식) < - 표현식 : 변수

Tistory

좌표계

UTM 좌표계 (Universal Transverse Mercator Coordinate System) - 지구상의 점들의 위치를 통일된 체계로 나타내기 위한 격자 좌표체계이다. - 지리 좌표계가 극지방으로 갈수록 직사각형이 크게 감소하는 반면 UTM좌표계는 직사각형 모양을 유지하므로 거리, 면적, 방향 등을 나타내는데 매우 편리하다는 장점이 있다. ex) WGS84, GPS용 좌표계로 많이 사용된다. 타원체 - 지구는 구나 타원체가 아니다. 다만 타원체에 가까운 형태이다. 지도를 만들기 위해서 인공위성 궤도를 결정하기 위해서는 수학적으로 표현할 수 있는 지구의 형상이 필요하다. 이런 필요에 의해 지구를 표현한 것이 회전 타원체이다. 이 타원체는 지구의 모양에 가깝기는 하지만 지구의 정확한 형상이 아니기..

Tistory

MySQL - com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 오류

스프링으로 DB 연동 설정 및 MyBatis 연동 설정 후 연동했을 때 오류 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server --> 데이터베이스 서버에 연결할 수 없습니다. 해결 방법 [현재 사용하는 버전] MySQL 버전 : 8.0.23 mysql-connector-java 버전 : 5.0.23 * DB에 붙지 못하는 문제로 원인은 mysql 버전과 Spring이 붙지 못한 것 -> mysql은 8버전을 사용했으며 최신버전은 스크립트 방식으로 처음 만든 방식이기 때문에 드라이버를 확인해야함 pom.xml에서 mysql-connector-java..

Tistory

여행 계획 페이지에 스타일 적용해 보기

HTML 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 여행계획 나의 여행 계획 일 시간 여행지 및 활동 이미지 1일째 09:00 산에 도착 13:00 점심 식사 2일째 11:00 남한상성 13:00 남한상성 18:00 남한상성 Colored by Color Scripter cs CSS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 h1{ font-size: 18px; font-wei..

Tistory

SSH란

SSH 안녕하세요. 오늘은 제가 평소에 많이 사용은 하지만 정확히 그것이 어떻게 동작하는지에 대해서 알고 싶어서 공부를 해보고 간단하게 정리를 해보는 시간을 가지려고 합니다. 동아리에서 한 친구가 "SSH가 뭐에요?" 라는 질문을 했었습니다. 많이 사용을 했고 언제 사용하는지도 대충은 알았지만 그것이 어떻게 동작하는지와 정확히 무엇인지는 잘 몰랐기에 저는 대충 "그냥 다른 컴퓨터에 접속할 때 쓰는거야" 라고 설명했습니다. 이렇게 저도 대충 알려주었기 때문에 계속 신경이 쓰였고 이렇게 알아보고 기록을 하는데 오랜 시간이 걸렸습니다. 그럼 이제 제가 알아본 SSH에 대한 것을 간략하게 정리해보도록 하겠습니다. SSH란? SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터..

Tistory

Spring Boot dependency - yml/yaml 파일 구성 및 작성법

YAML / YML 이란 YAML Ain't Markup Language의 약자다 YAML은 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식 YAML은 모든 데이터를 리스트, 해쉬, 스칼라 데이터의 조합으로 적절히 표현할 수 있다는 믿음고급 컴퓨터 언어에 적합하다. 을 가지고 만들어졌다. 문법은 상대적으로 이해하기 쉽고, 가독성이 좋도록 디자인 되었으며, JSON은 yaml의 일종이다 사용법 1. 기본 사용법은 아래와 같다. 들여쓰기, 띄어쓰기로 구분하여 보기 편하다. 2. 리스트 표현 여러 줄을 쓸때는 하이픈으로 시작하는 한 줄에 하나의 요소를 표현 한 줄에 모아 쓸 때에는 대괄호([])를 이용하며 쉼표로..

Tistory

반복문 - for in

for-in 반복문은 for 반복문과 비슷하게 for 키워드를 사욯나다. 단, 순회 조건과 내부 요소에 접근하는 방법에 차이가 있는데, for-in 반복은 in 키워드를 사용한다. 키워드를 사이에 두고 오른쪽에는 반복한 대상 변수를 , 왼쪽에는 속성명을 작성한다. for ( 속성명 in 반복할 대상 (list, 배열,) { } 1 2 3 4 5 6 7 var store = { snack: 1000, flower: 5000, beverage: 2000 }; for (var item in store) { if (!store.hasOwnProperty(item)) continue; console.log(item + ' 는 가격이 ' + store[item] + ' 입니다.') } Colored by Color..

Tistory

반복문 배우기 - while

shift()는 배열의 앞에서부터 값을 하나씩 빼내오는 함수이다. [1,2] 배열에 shift() 가 실행되어 1이 방출되면 해당 배열은 [2]가 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 var hometown = [ {name: '진', city: '과천'}, {name: '남준', place: '일산', city: '고양'}, {name: '호석', place: '광주', city: '전라도'}, {name: '지민', place: '부산', city: '경상도'} ]; var isHometown = function(h, name) { console.log(`함수가 실행..

Tistory

@annotation 생성

[@annotation 생성] @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface MyAnnotation { String name(); String value(); } public class TheClass { @MyAnnotation(name = "someName", value = "Hello World") public String myField = null; } 커스텀 즉 고객(customer)이 요청한 대로 특별 주문 제작을 행했다는 뜻으로 쓰인 단어인데, 이렇게 제작된 물건은 당연히 그 물건의 원래 규격과는 다르며, 여기에서 착안하여 원래의 모습과 달라진 물건을 커스텀으로 칭하게 된다. - 다른 어노테이션..

Tistory

[Java1000제] 성적처리 4 - 전교등수 계산

[문제4] 총점으로 전교등수를 계산하고 총점이 높은 순에서 낮은 순(내림차순)으로 정렬해서 list를 출력하세요. 전교등수를 저장할 수 있도록 Student클래스에 인스턴스변수 schoolRank가 추가되어 있습니다. - calculateSchoolRank(List list) - 전교등수(schoolRank)를 계산한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 7..

Tistory

SPRING 구성 도구 설치

[프로젝트 구성 도구 설치] 스프링 프레임워크에는 다양한 모듈이 존재한다. 핵심 모듈인 spring-core, spring-beans, spring-context, spring-aop를 비롯한 spring-webmvc, spring-jdbc, spring-tx 등 다양한 모듈이 존재한다. 각 모듈은 스프링 프레임워크에 포함되어 있지 않은 다른 모듈을 필요로 한다. 예를들어 spring-aop 모듈은 aopalliance 모듈을 필요로 하고, spring-orm 모듈은 JPA나 하이버네이트 모듈을 필요로 한다. 각 모듈은 모두 메이븐 중앙 리포지토리를 통해서 배퐂되고 있다. 자바 프로젝트를 구성할 때 주로 사용하는 빌드 도구인 메이븐과 그레이들 둘 다 메입느 리포지토리를 지원한다. -- 프로젝트 폴더 생성..

Tistory

[Node.js 다운로드]

Node.js 설치하기 http://nodejs.org/ko.download/ 로 이동하여 설치 진행 다운로드 이지 내 설치 파일에는 LTS(Long Term Support)와 현재버전(Current)이 있다. LTS란, 최소 18개월 지원되는 버전으로 장기간 동안 유지 관리가 가능하다. 현재버전은 항상 최신 기능이 적용된 반면, 이를 6개월만 지원하기 때문에 기능 추가 및 버전 업데이트가 자주 발생한다. 따라서 보다 안정된 환경에서 개랍하고 유지관리하기 위해서는 LTS를 사용하는 것을 권장한다. - 다운로드 받은 후 파일 실행 - 파일실행이 완료되어 Node.js 를 실행시키면 아래처럼 명령 프롬프트가 열린다. - Window 명령 프롬프트를 열어 'node -v','npm -v' 명령어를 실행하여 n..

Tistory

생활코딩 - JAVA (Colletions Framework)

배열과 컬렉션즈 프레임워크 배열은 연관된 데이터를 그룹화해서 편리하게 관리하기 위한 수단이다. 그런데 배열에는 몇가지 불편한 점이 있었는데 그 중의 하나가 한번 정해진 배열의 크기를 변경할 수 없다는 점이다. 이러한 불편함을 컬렉션즈 프래임워크를 사용하면 줄어든다. 컬렉션프레임워크라는 것은 배열이 가진 어떤 불편함 또는 배열이 가진 한계를 쉽게 극보할 수 있게 도와주는 도구이다. 배열이 가진문제점 가운데 가장 먼저 체감할 수 있는 문제는 배열은 선언할 때 몇 개의 값을 가질 수 있는지 지정하게 돼 있다는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package org.opentutorials.javatutorials.co..

Tistory

[Java1000제] 성적처리 1 - Student클래스 만들기

- 성적처리 프로그램을 만드는 것입니다. 총점계산, 반등수, 전교등수, 반, 번호별 정렬을 다룹니다. [문제1] 다음의 예제에서 Student클래스를 작성하세요. 코드를 완성하세요. 1. 이름(name), 반(classNo), 번호(studentNo), 국어(Korean), 수학(Math), 영어(English), 총점(Total)을 인스턴스변수로 선언한다. 2. 이름, 반, 번호, 국어, 수학, 영어를 입력받아서 각 인스턴스변수에 저장하는 생성자를 선언한다. 3. Object클래스의 toString()을 오버라이딩해서 실행결과와 같이, 이름, 반, 번호, 국어, 수학, 영어, 총점이 화면에 출력되도록 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21..

Tistory

[Java1000제] 성적처리 2 - Comparable구현하기

[문제2] Student클래스가 Comparable인터페이스를 구현해서, list를 총점(total) 내림차순으로 정렬되도록 하는 예제입니다. 아래의 코드를 완성하세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 package testAl; import java.util.*; class SungJukEx2 { public static void m..

Tistory

[Java1000제] 성적처리 3 - Comparator를 이용한 정렬

[문제3] list를 다양한 기준으로 정렬하기 위해 Comaprator를 구현한 클래스를 구현하세요. ClassTotalComparator - 반별로 총점이 높은 순에서 낮은 순으로 정렬(반은 오름차순, 총점은 내림차순) ClassStudentNo - 반, 번호 순으로 내림차순 정렬 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83..

Tistory

생활코딩 - JAVA (참조)

[복제란?] 복제는 뭔가를 똑같이 만든다는 뜻이다. 데이터 타입을 생성할 때 new를 통해 생성하는 것들은 기본 데이터 타입이 아니고 참조형 또는 참조 데이터 타입이라고 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package org.opentutorials.javatutorials.reference; public class ReferenceDemo1 { public static void runValue(){ int a = 1; int b = a; b = 2; System.out.println("runValue, "+a); } public static void main(String[] args) { runValue(); } } Colored by Color Scripte..

Tistory

생활코딩 - JAVA (제네릭)

제네릭이란? 제네릭의 사용법 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다 제네릭은 마치 메솓의 매개변수와 상당히 비슷하게 동작한다고 할 수 있다. 변수에 들어갈 값과 관련돼 있는데 제네릭은 그 변수의 데이터 타입과 관련되 있다고 생각하면 된다. 인스턴스화될 때 꺾쇠 안에 String이라는 구체적인 데이터 타입을 지정하면 그것이 앞서 말한 T에 지정된다. T는 String이 되고, info는 String 데이터 타입을 갖게 된다. 이것이 제네릭이다. 이렇게 만들어진 인스턴스를 담을 수 있는 이 p1의 데이터 타입도 person이라는 데이터 타입과 똑같이 지정돼야 한다. 데이터 타입으로 인스턴스를 생성하기 때문에 이 인스턴스를 담을 변수도 이와 동일한 데이..

Tistory

생활코딩 - JAVA (예외 (exception))

[예외란 무엇인가] 예외란 프로그램을 제작하는 과정에서 발생하는 오류를 제어 또는 처리하는 것이다. 예외를 이해하려면 기본적으로 알고 있어야 할 것들이 많이 있다. 애플리케이션을 잘 만들고 잘 동작하게 하며, 애플리케이션을 규모 가변성 있게 구축하는 것은 예외와 상관이 없거나 적다는 것이다. 예외, 보안과 같은 주제는 실패하지 않는 법이라고 할 수 있다. 일반적으로 오류 또는 에러라는 많이 쓰는데, 자바를 비롯한 여러 프로그래밍 언어에서는 예외라는 표현을 쓴다. 오류는 예외의 일종이라고 생각하면 된다. 일반적이지 않은 상황에서 우리가 기획했던 바와 다르게 발생하는 문제를 포괄적으로 예외(exception)라고 한다. 또한 이 같은 예외 상황에서 해당 프로그램을 만든 프로그래머가 예외 상황을 처리하고 관리..

Tistory

생활코딩 - JAVA (예외 던지기)

[예외던지기] 문제를 다른 사람에게 던질 수도 있고 자기 자신이 처리할 수도 있다. *[F1]키를 누르고 [javadoc for 'java.io.FileReader.FileReader(String)'] 같은 생성자에 관한 도움말을 누르면 FileReader의 생성자에 대한 자바 API를 확인할 수 있다. 해당 도움말에서 중요한 것은 Throws 부분이다. Throws는 FileReader 생성자를 사용하는 쪽에서 반드시 FileNOtFoundException에 대한 예외 처리를 강제한다는 의미이다. [예외 사슬] 1 2 3 4 try { new FileReader("out.txt"); }catch(){ } FileReader라는 API의 사용자에게 던진 예외를 처리하기 위해 catch를 한 것이다. AP..

Tistory

생활코딩 - JAVA (Object 클래스)

객체(object)라는 object라는 이름을 가진 클래스를 의미한다. 이 클래스는 특별한 형태의 클래스인데, 이 클래스를 한마디로 정의하자면 시조이다. 모든 클래스의 공통된 조상으로서 Object라는 구체적인 클래스가 있다. 1 2 3 package org.opentutorials.javatutorials.progenitor; class O {} 위의 코드는 아래와 코드가 같다. 1 2 3 package org.opentutorials.javatutorials.progenitor; class O extends Object {} 어떤 클래스를 정의했을 때 그 클래스가 다른 클래스를 상속하지 않는다면 자바가 암시적으로 "extend Object"를 추가한다는 뜻이다. 이렇게 하는 이유는 자바는 수많은 클래..

Tistory

생활코딩 - JAVA (상수와 enum)

enum은 자바 5.0부터 제공되기 시작했다. 상수 : 변하지 않는 값 x : 변수 [enum의 도입 배경]

Tistory

생활코딩 - JAVA (Abstract)

Abstract는 한국어로는 ‘추상’으로 번역할 수 있다. 객체지향 프로그래밍에서 주목해야 할 특징으로 abstract 키어드ㅡ로 지정된 메소드나 클래스는 직접적으로 사용할 수 없고 반드시 그것을 상속한 클래스를 만들고, 그렇게 상속한 클래스를 사용해야 한다는 것이다. 다시 말해 abstract는 클래스를 상속해서 사용하돍 강제하는 것이다. package org.opentutorials.javatutorials.abstractclass.example1; Abstract class A{ public abstract int b(); // 본체가 잇는 메소드는 abstract 키워드를 가질 수 없다. // public abstract int c(){System.out.println(“hello”); } // ..

Tistory

생활코딩 - JAVA (final)

Abstract가 상속을 가제하는 일종의 규제라고 한다면 final은 abstract와는 정반대되는 의미를 가지고 있다. 상속이나 변경을 금지하는 규제이기 때문이다. [PI 멤버에 final을 지정] pakage org.opentutorials.javatutorials.finals; Class calculator{ static final double PI = 3.14; int left, right; public void setOperands(int left, int right){ this.left = left; this.right = right; //Calculator.PI = 6; } public void sum(){ System.out.println(this.left + this.right); } p..

Tistory

생활코딩 - JAVA (인터페이스)

[문법과 개념] 인터페이스를 abstract, final과 함께 대표적인 규제이다. 인터페이스의 역할을 한마디로 정리하자면 어떤 클래스에서 특정한 인터페이스를 사용한다면 그 클래스가 반드시 해당 인터페이스에 포함된 메소드를 구현하도록 강제하는 것이다. 인터페이스에서 강제하는 메소드를 구현하지 않으면 프로그램은 컴파일조차 되지 않는다. 특정 클래스를 특정 인터페이스와 결합하면 그 클래스를 정의할 때 인터페이스에 정의된 메소드를 반드시 구현하도록 강제할 수 있다. 그리고 이렇게 구현되 잇을 때 A 클래스는 이터페이스를 구현한다라고 이야기 한다. [인터페이스를 사용하는 이유] 인터페이스는 어떤 클래스가 어떤 멤버(메소드)를 가지고 잇는가에 대한 명세서와 같은 역할을 한다. 구현하는 클래스는 해당 명세서에 정의..

Tistory

생활코딩 - JAVA (다형성)

[다형성] 다형성은 한 메소드나 클래스가 다양한 방식으로 동작하는 것을 의미한다. ex) a()라는 메소드가 있을 때 이 메소드가 사왕에 따라 다르게 동작한다는 것을 의미한다. 또한 A라는 클래스가 있을 때 마찬가지로 어떤 경우에는 똑같은 크래스지만 그 클래스의 메소드를 실행했을 때 상황에 따라 다양하게 동작하는 것이 바로 다형성이다. 다형성은 객체나 인터페이스, 추상화처럼 뭔가 철학적인 느낌을 자야낸다. 다형성의 가장 쉬운 예로 오버로딩을 들 수 있다. 오버로딩은 이름이 같지만 매개변수 형식에 따라 다른 베소드가 호출되는 기법이기 때문이다. 즉, 이름은 같지만 다르게 동작한다고 할 수 있기 때문에 다형성이라는 측면에서 생각해 볼 수 있다. [클래스와 다형성1] 다형성을 통해 메소드나 클래스를 바라보는 ..

Tistory

생활코딩 - JAVA (상속, 오버로딩, 오버라이딩)

[상속] 상속 : 무엇인가를 물려준다. 어떤 연관된 변수와 메소드가 함께 담겨있는 덩어리를 객체라고 할 수 있다. 새로운 객체가 기존 객체가 갖고 있는 변수나 메소드를 그대로 물려받으면서 필요에 따라 자신만의 새로운 변수와 메소드를 추가하거나 기존의 변수와 메소드를 변경해서 사용할 수 있게 하는 것을 상속이라고 한다. 경우에 따라 새로운 메소드를 추가하기가 어렵거나 불가능할 떄가 있다. 객체를 자신이 만들지 않았을 때, 그래서 소스를 변경할 수 없다. 변경하면 소스를 업데이트하면 메소드가 덮어쓰게 되며 사라진다. 이러한 문제가 일어나지 않도록 지속적으로 코드를 관리해야한다. 객체가 다양한 곳에서 활용되고 있는데, 메소드를 추가함ㄴ 다른곳에서는 불필요한 기능이 포함될 수 있다. 이것은 자연스럽게 객체를 사..

1 2 3 4