cheershennah의 등록된 링크

 cheershennah로 등록된 티스토리 포스트 수는 225건입니다.

[Tableau] 신병훈련소 실습 2일차_ 계산된 필드 만들기 [내부링크]

분석에 필요한 필드가 데이터 원본에 포함되어 있지 않은 경우도 있다. 이때, 계산된 필드를 사용하여 원본에 존재하는 데이터에서 새로운 데이터를 파생하여 만들 수 있고, 새 데이터에 대한 계산을 수행할 수 있다. 이를 통해 복잡한 분석을 수행하고 데이터 원본에 고유한 필드를 즉석에서 추가할 수 있다. 예를 들어 데이터 원본에 매출, 수익 필드는 존재하지만 수익률 에 대한 필드는 없다고 가정하면, 다음과 같이 매출과 수익 필드를 사용하여 수익률 이라는 계산된 필드를 만들 수 있다. 계산된 필드의 경우 아이콘이 =# 로 나타난다. * 계산식은 행 수준의 계산식과, 집계수준의 계산식으로 나뉜다. 행 수준 계산식 집계 수준 계산식 모든 행에 대해 계산 후 결과값 집계 각 필드 값을 집계한 후에 계산 [수익] / ..

[Tableau] 신병훈련소 실습 2일차_ 박스 플롯(box plot) [내부링크]

*박스 플롯이란? 직사각형에 최댓값과 최솟값을 나타내는 선이 결합된 모양의 데이터 시각화 기법. 상자수염, 봉, 캔들 등 다양한 이름으로 불린다. (상자에 수염이 붙어있는 형태라고.. ) 데이터의 분포 상태와 이상치를 동시에 보여주면서 서로 다른 데이터군을 쉽게 비교할 수 있는 시각화 기법. 최솟값과 최댓값으로 수염의 길이 결정. 중앙 값이 상자 가운데 선의 위치를 결정. 주식을 해본 경험이 있다면 볼 수 있는 차트.. 그림과 같이 흔히 주식 차트에서 사용되는 차트가 바로 박스 플롯 차트이다. 그림과 같이 여러개의 데이터 값을 한눈에 비교하기에 유용. Q. 스타벅스 칼로리 박스 플롯 1. 카테고리 별 메뉴명 수준의 합계 칼로리를 나타낸다 박스 플롯 차트를 적용하기 위해 카테고리를 열(X축), 칼로리 합계..

[Tableau] 신병훈련소 실습 2일차_ 워드클라우드 시각화 [내부링크]

Q. 스타벅스 칼로리가 높은 메뉴명 워드클라우드 시각화 * 워드 클라우드란? 데이터의 키워드, 개념 등을 직관적으로 파악할 수 있도록 핵심단어를 시각화하는 기법. 많은 키워드 속에서 분석 목적에 따라 핵심 키워드를 표현하는데 유용. 값의 정확한 비교보다는 데이터의 트렌드를 나타내는데 유용. 1. 마크유형 - 텍스트 메뉴명을 텍스트로 나타내야 하므로 메뉴명을 텍스트 유형으로 설정 2. 칼로리에 따른 크기와 색상 설정 여기서는 칼로리가 높을수록 붉은색/ 낮을수록 푸른색으로 설정 결과 키워드의 크기가 크고, 붉은색 일수록 칼로리가 높은 메뉴. == 제주 까망 크림 프라푸치노!

[Tableau] 신병훈련소 실습 1일차_ 태블로 대시보드 만들기 [내부링크]

Q. 실습한 스타벅스 데이터분석을 이용해 대시보드 만들기 1. 대시보드 생성 크기는 자동으로 설정해주어야 화면에 꽉 참. 대시보드에 넣고자하는 시트를 끌어 당겨 설정해준다. 결과 원하는 시트를 배치한다. (참 쉽쥬?) * 우측의 수치정보를 시트위에 배치하고자 할때는 Shift 키 누른채로 드래그.

[Tableau] 신병훈련소 실습 1일차_ 맵 시각화2 _ 필터링하기 [내부링크]

Q.서울시의 스벅 실제 매장 위치 맵 시각화 경도/ 위도 데이터를 이용한 서울시 실제 매장 위치 맵 시각화 1. 맵 형태로 경도/위도 표시 경도와 위도를 행열 배치후 맵 형태로 나타내면 전국 기준의 경도/위도 평균값이 표시된다. 2. 각각의 매장정보를 기준으로 하기위해 매장코드를 세부정보로 설정한다. 3. 서울시의 매장 정보만 필요하기 때문에 "시도" 데이터에 필터를 걸어준다. 시도> 필터 영역으로 드래그 > 서울시 선택 > 확인 3.1. 필터 표시 필터를 표시해서 즉각적으로 필터를 변경할 수도 있다. 3.2. 디폴트 셀렉 박스 필터로, 다중 선택이 가능하다 . 서울/경기 정보를 보고 싶을다고 하면, 경기도를 추가로 선택해준다. 3.3. 필터링 형태를 변경할 수도 있다. 다중 선택을 막고 싶다면 필터 형..

[Tableau] 신병훈련소 실습 1일차_스캐터 플롯(산점도) 시각화2 [내부링크]

Q.스타벅스 메뉴별 칼로리와 카페인의 상관관계 시각화 1. 칼로리와 카페인의 상관관계이므로 카페인과 칼로리를 행/열로 배치 역시 디폴트는 합계이기 때문에 합계기준으로 값이 나타남. 2. 메뉴명을 기준으로 설정 메뉴명 > 세부정보로 드래그하여 메뉴명을 기준으로 메뉴별 칼로리/카페인 값이 나타나도록 한다 3. 마크 레이블 메뉴명으로 설정 수치보다 메뉴를 한눈에 알 수 있도록 메뉴명으로 설정함 4. 가독성 마크 모양, 색상, 투명도 등을 통해 가독성이 좋도록 설정 결과 카페인과 칼로리가 모두 0으로 가장 낮은 메뉴는 민트 블랜드 티 이다! 관련 포스팅) https://cheershennah.tistory.com/259 [Tableau] 신병훈련소 실습 1일차_스캐터 플롯(산점도) 시각화 Q. 스타벅스의 당분 ..

[Tableau] 신병훈련소 실습 1일차_ 맵(Map) 시각화 [내부링크]

Q. 스타벅스 시군구 별 매장 분포 현황 맵 시각화 1. 시도, 시군구 필드를 시트로 드래그&드롭 현재 시도/ 시군구는 좌측과 같이 데이터 타입이 주/시/도 로 설정되어 있기 때문에 (직접 설정가능) 시트로 옮기면 태블로에서 자동으로 표현방식으로 맵으로 설정해주어, 행: 위도/ 열: 경도로 자동 생성된다. 표현방식에서 여러가지 차트 형태를 직접 고를 수도 있다. 2. 마크의 크기와 색상을 스타벅스 매장수로 나타내기 매장수는 매장코드를 카운트해서 크기와 색상에 표현. * 카운트와 카운트(고유) 차이점? 카운트는 count(), 카운트 고유는 distinct count(). 즉, 중복을 제거한 카운트를 의미한다. 여기서는 중복제거 카운트 사용. 결과 맵 시각화 필터링 하기: https://cheershenn..

[Tableau] 신병훈련소 실습 1일차_스캐터 플롯(산점도) 시각화 [내부링크]

Q. 스타벅스의 당분 함유량과 칼로리 상관관계 스캐터 플롯(산점도) 시각화 * 스캐터 플롯이란? == 산점도 2개의 연속형 데이터에 대한 상관관계를 분석할때 많이 사용되는 시각화 기법. 도표위에 두 변수 X,Y값이 만나는 지점을 표시. 두개의 축으로 데이터가 얼마나 펴져 있는지 분포를 살펴볼 수 있음. 상수라인/ 평균라인/ 사분위수 및 중앙값 / 추세선 등과 같은 참조라인을 추가하여 값의 분포 비교. 1. 행: 칼로리 / 열: 당류 칼로리 -Y축, 당류- X 축 현재 시각화는 전체 메뉴의 당류 합계와 칼로리 합계가 나타난다. 전체 합계가 아닌 각 메뉴별 당분과 칼로리를 표시 해주어야 한다. 2. 세부정보: 메뉴명 메뉴명을 마크선반의 세부정보로 가져다놓는다. 시각화 집계 기준이 전체 합계에서 -> 메뉴명 ..

[Tableau] 신병훈련소 실습 1일차_ 도구설명에서 시트불러오기 [내부링크]

Q.스타벅스 카테고리 기준으로 만든 시트와, 메뉴명 기준으로 만든 시트를 한번에 살펴보자. 1. 카테고리 기준 https://cheershennah.tistory.com/256 [Tableau] 신병훈련소 17기 1일차 실습 기록_ 스타벅스 카테고리별 평균 칼로리/카페인 막대차트 시 Q. 스타벅스 카테고리별 평균 칼로리/카페인 막대차트 시각화 1. 행: 카테고리 / 열: 칼로리 카테고리는 Y축, 칼로리는 X 축. 2. 집계 : 평균 하나의 카테고리 내에는 여러개의 메뉴가 있다. ex) 브루 cheershennah.tistory.com 2. 메뉴명 기준 https://cheershennah.tistory.com/257 [Tableau] 신병훈련소 17기 1일차 실습 기록_ 스타벅스 메뉴명 별 칼로리 & 카..

[Tableau] 신병훈련소 실습 1일차_ 스타벅스 메뉴명 별 칼로리 & 카페인 트리맵 시각화 [내부링크]

Q. 스타벅스 메뉴명 별 칼로리 & 카페인 트리맵 시각화 * 트리맵 차트란? 트리맵 차트는 한눈에 알아볼 수 있는 가지와 하위 가지가 있는 트리와 같은 형식으로 데이터를 묘사한다. 트리 다이어그램의 계층 구조를 시각화하는 대체 방법이며 범주별 수량도 표시한다. 트리 분기를 사각형으로 표기되며 각 하위 분기는 작은 직사각형으로 표시된다. 데이터 패턴을 식별화하는 데 유용하다. 1. 마크 유형: 사각형 트리맵은 계층 데이터를 중첩된 사각형을 집합으로 표시하므로 마크 유형을 사각형으로 설정. 2. 카페인: 마크 색상 /칼로리 : 마크 크기 / 메뉴명: 마크 레이블에 드래그&드롭 카메인은 사각형의 색상으로, 칼로리는 사각형의 크기로 표현해준다. 레이블은 메뉴명을 표시해준다. 3. 카페인 색상 편집 원하는 색상으..

[Tableau] 신병훈련소 실습 1일차_막대차트 시각화 [내부링크]

Q. 스타벅스 카테고리별 평균 칼로리/카페인 막대차트 시각화 1. 행: 카테고리 / 열: 칼로리 카테고리는 Y축, 칼로리는 X 축. 2. 집계 : 평균 하나의 카테고리 내에는 여러개의 메뉴가 있다. ex) 브루드 커피 카테고리 > 아이스 아메리카노, 오늘의 커피 .. 카테고리를 기준으로 합계로 집계시, 카테고리 내 모든 메뉴들의 카테고리와 카페인 값이 모두 더해져 카테고리 별 메뉴들의 총 합계 칼로리/ 카페인이 보여지므로 집계 측정을 평균으로 해주어야 함. 3. 내림차순 정렬 막대차트를 사용할 때 정렬되어있지 않으면 떨어져있는 막대 간 길이를 비교하는 것이 어렵다. 막대차트를 사용할때는 4. 카페인 색상 편집 가독성을 위해 색상 변경을 할 수 있다. 여기서는 카페인이 낮을수록 검정색, 높은수록 빨간색을 ..

[Tableau] 태블로란? 기본 사용법 [내부링크]

태블로란 ? 데이터를 사용해 문제를 해결하는 시각적 분석 플랫폼. 데이터를 다루는 사람들에겐 널리 알려진 데이터 시각화 도구. 다른 도구들에 비교적 높은 자유도가 특징임. 데이터만 있다면 사용자가 원하는 각종 시각화 장표를 쉽고 빠르게 만들수 있음. 태블로 기본 사용법 1. 필드는 정성적인 값과 정량적인 값에 따라 차원과 측정값으로 구분 됨. 차원 정성적 데이터( 제품명, 날짜, 지리명 등) 분석 기준이 되는 값 불연속형 데이터로 측정값을 쪼개어 보는 하나의 관점. 측정값 정량적 수치, 연속형 데이터로 집계 되는 데이터. 2. 측정값은 차원을 기준으로 집계되어 표현된다. 집계 합계, 평균, 중앙값, 카운트, 카운트(고유), 최소값, 최대값, 백분위수, 표준편차, 분산 등을 의미. 즉, 하나의 측정값을 어..

[GA-Bigquery] 내 블로그에 누가 다녀갔을까? 구글 애널리틱스/ 빅쿼리로 내 블로그의 데이터 분석 해보기 [내부링크]

블로그를 개설한지 2018년부터 현재까지 운영중이고 초라했던 개인 기록용 블로그에서 현재 일평균 약 1500 정도의 기술블로그로 성장하였다. 티스토리에서 블로그를 운영하면 통계를 분석해주는데 항상 통계로 보여지는 방문자들의 데이터의 흐름이 신기하고 궁금했다. 구글 애널리틱스 GA4와 블로그를 연동하여 데이터를 쌓고, GA4와 BigQuery와 연동을 하면 데이터를 조작할 수 있다. 평소 궁금했던 블로그 방문에 대한 데이터를 직접 분석해려고 한다. 연동하기만 하면 쌓여있는 모든 데이터들을 다 볼 수 있는지 알았는데, 그건 아니고 연동한 시점부터 데이터를 쌓기 시작하여 이후 수집 데이터들을 다룰 수 있다. 때문에 해당 포스팅에서는 12/19일-25일, 즉 1주일 간 쌓인 데이터들을 대상으로 한다. 데이터 구..

[GA4-빅쿼리] 세션 재정의 해보기 [내부링크]

구글 애널리틱스에서 제공하는 데이터를 빅쿼리에 연동해보면 사용자고유 아이디와 세션아이디를 제공해준다. 다음과 같은 여러개의 컬럼을 제공해주는데, 'user_pseudo_id'가 사용자가 이벤트를 발생시켰을때, 발생하는 인스턴스 아이디로 사용자 고유 아이디 값이고, 세션아이디는 컬럼에서 보이지 않는다. 데이터를 살펴보면 세션아이디값인 ga_session_id 는 event_params.key에 정의되어 있으며 그 값은 event_params.value.int_value에 존재하고 있다. 즉..... ARRAY 와 STRUCT 문법이 사용된 NESTED 한 구조로 존재한다. 우리에게 익숙한 컬럼으로 존재했으면 ga_session_id로 SELECT만 하면 될 일이지만 복잡한 데이터 구조로 상당한 고역이 예상..

이클립스 Building workspace 무한반복 현상 해결 [내부링크]

1. 이클립스를 종료. 2. 다음 경로의 projects 폴더를 안전한 장소로 이동. eclipse-workspace / .metadata / .plugins / org.eclipse.core.resources / .projects 3. 이클립스 재기동 후 다시 종료. 4. 2번에서 이동한 projects 폴더를 다시 원위치로 복원(덮어쓰기).

eclipse-maven연동 m2e+wtp 사용시 ContextRoot 변경되는 문제 해결 [내부링크]

이클립스과 메이븐 연동은 개발자에게 편리함을 제공한다. 하지만 .settings의 자동변화에 종종 삽질을 하게됨. 이번에 겪은 삽질은 Dynamic Web Projects와 M2E 통합으로 인해 메이븐 업데이트시, .settings/org.elipse.wst.common.component 파일의 의 값이 자동으로 변경된다는 점이다. ContextRoot 고정시키는 방법 이클립스 내에서 m2e-wtp플러그인을 사용하여 웹프로젝트를 관리할 때 다음과 같이 context root가 관리된다. 기본적으로 m2e-wtp는 maven-war-plugin환경에 정의된 값으로부터 독립된 웹 애플리케이션의 context root가 적용된다. maven-war-plugin 1.2 myWebapp 2. 설정에 값이 지정되어..

[SQL] 테이블 병합 MARGE [내부링크]

테이블 마이그레이션 작업에 많이 사용되는 테이블 머지 SQL문을 알아보자. 테이블 마이그레이션 작업이란 테이블1의 모든 데이터를 테이블 2로 옮기는 작업이라고 생각하면 된다. 1차로는 INSERT로 모든 데이터를 새 테이블이 넣어준다. 문제는 데이터의 변동이 없다면 INSERT로 덮어칠 수 있지만 데이터의 변동이 있는 경우 선별적으로 변동된 데이터만 업데이트 시켜주어야 하는 경우가 발생한다. 이런 경우에는 어떤 데이터의 변동이 있었는지 체크한 후, 데이터의 변동이 있는 컬럼만 UPDATE시켜주고, 새로운 데이터가 추가되었다면 INSERT 해 주어야 한다. IF 조건문을 통해 나누어 작업할 수도 있겠지만 이러한 작업을 한번에 해 주는 것이 MERGE 문이다. 비교-삽입-갱신 과정을 한번에 처리하는 것이다...

JNDI란? Java Naming and Directory Interface. [내부링크]

JNDI Java Naming and Directory Interface. 이름지정 및 디렉토리 서비스에서 제공하는 데이터 및 객체를 참조(lookup)하기 위한 자바 API이다. 일반적으로 자바 애플리케이션을 외부 디렉터리 서비스(DB server,LDAP server..)에 연결할 때 쓰이는데 그중에서도 데이터베이스 연결에 가장 많이 쓰인다. 데이터베이스 연결 시에는 데이터베이스 커넥션을 미리 만들어서 저장해두고, 필요할때 저장된 공간 (DB Pool)에서 가져다 쓰고 반환하는 기법이다. 커넥션 풀을 이용하면 미리 커넥션을 만들어두고 사용하기 때문에 매번 사용할때마다 드라이버를 로드하고, 커넥션 객체 생성-연결-종료 하는 과정을 반복하지 않아도 되어서 데이터베이스의 부하를 줄이고 자원을 효율적으로 관..

[빅쿼리] ARRAY / STRUCT / UNNEST. 정체가 무엇이냐?? [내부링크]

BigQuery는 SQL을 제공하기 때문에 기존의 SQL과 같이 질의할 수 있어 접근성이 쉽다. 하지만, 우리에게 익숙한 RDB의 데이터 구조와 완전히 동일하지는 않다. 자주보기 힘든 배열 ARRAY, 구조체 STRUCT, UNNEST 등의 문법을 사용하기 때문이다. 예를 들어 우리에게 익숙한 RDB의 데이터 구조가 다음과 같다면, ARRAY, STRUCT, UNNEST 문법이 사용된 데이터 구조는 다음과 같다. 딱 봐도 하나의 행에 하나의 데이터 값이 저장되는 구조의 테이블과 다른 모습이 어색하다. event_name 컬럼 까지는 하나의 데이터가 있지만 event_params.key 부터는 하나의 행에 데이터 타입이 동일한 여러값이 저장되어 있다. 이러한 형태가 배열 ARRAY 문법이다. 또하나 어색한..

BigQuery 빅쿼리란? [내부링크]

BigQuery 빅쿼리란? 빅쿼리는 구글에서 만든 클라우드용 데이터웨어하우스(DW)로, 빅데이터에 최적회된 저장 및 분석용 클라우드 서비스이다. 빅쿼리의 구조는 관계형이 아닌 NoSQL기반의 데이터 저장소이나, 일반적으로 사용하는 관계형 RDB처럼 쓸 수 있도록 SQL을 제공한다. 머신러닝, 지리정보분석, 비즈니스 인텔리전스와 같은 기능을 기본 제공하여 데이터를 분석/관리할수 있다. 여러 프로그램과 연동 가능하며, 특히 구글 애널리틱스와 연동하여 수집한 데이터를 새롭게 가공할 수 있다. 빅쿼리 특징 클라우드 서비스로 설치 및 운영이 필요 없음(NoOps) 로컬이나 서버 등에 설치해서 사용하는 서비스가 아닌 언제 어디서나 사용가능한 클라우드 서비스를 제공한다. 인터넷이 가능한 어디서나 클릭 몇번으로 사용이..

GA(Google Analytics)란? [내부링크]

GA(Google Analytics)란? GA란 Google Analytics의 약자이며 구글에서 제공하는 무료 웹로그 분석 툴이다. 구글의 통계 및 머신러닝 기술로 사이트 및 애플리케이션의 방문자들의 행동 데이터를 분석하고, 마케팅의 실적이나 웹사이트의 경험을 개선할 수 있도록 돕는 도구이다. 설문조사에 따르면, 참여자 약 50% 가 GA를 통해 10개 이상의 웹사이트를 관리한다고 한다. * 행동데이터란? 어떤 사용자가 웹사이트를 방문하는지, 어떤 경로를 통해 방문했는지, 웹사이트에서 어떤 행동을 보이는지에 대한 흔적을 분석한 데이터를 뜻한다. 설문조사에 따르면, 참여자 약 50% 가 GA를 통해 10개 이상의 웹사이트를 관리한다고 한다. GA를 왜 사용할까? 다양한 데이터 시각화 제공 GA는 쉬운 사..

[MYSQL] REGEXP란? 정규표현식 / 무료테스트사이트 [내부링크]

정규표현식이란 특정 규칙을 가진 문자열의 집합을 표현하는 형식언어이다. 문자열이 가진 규칙을 파악하여 해당 규칙을 만족하는 문자열만 추출할 수 있다. 검색, 필터링, 치환 등에 사용된다. mySQL에서는 REGEXP(Regular Expression)이라는 키워드로 정규표현식을 사용함. REGEXP SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 REGEXP '정규표현식'; 정규표현식 기본 문법(일부) ^ : 문자열의 시작 $ : 문자열의 끝 [aeiou] : aeiou 중 하나 ^[aeiou] : aeiou중 하나로 시작하는 문자 ^[aeiou].* : aeiou중 하나로 시작하는 문자열 [aeiou]$ : aeiou중 하나로 끝나는 문자 .*[aeiou]$ : aeiou중 하나로 끝나는 문자열..

Cohort 코호트 분석이란? [내부링크]

Cohort 코호트 분석이란? Cohort 의 사전적의미는 동질집단 이다. 즉, 특정 기간 동안 공통된 특성이나 경험을 갖는 사용자 집단을 나누어 분석하는 기법이다. 나누는 방식에는 프로덕트에 따라 여러가지가 될 수 있다. 예를 들어 첫 방문일, 첫 구매일 등 특정 조건에 해당되는 사용자들을 그룹화하고 시간흐름에 따른 행동 패턴을 추적한다. 시간 흐름 또한 비즈니스 특성에 맞게 주기를 정해야 한다. 앱설치 같은 경우 주기를 매일 트래킹해야 할 것이고, 넥플릭스와 같이 구독 갱신 사업모델은 월별로 트래킹 해야 한다. 타켓 분석과 유사해 보일수 있지만, 코호트 분석은 '특정기간'이 같다는 조건과 '특정 경험'을 기준으로 그룹을 분류한다는 차이점이 있다. 예) '1월'에 '회원가입'을 한 사용자 그룹, '2월..

윈도우 함수_ 순위함수 RANK, DENSE_RANK, ROW_NUMBER [내부링크]

윈도우 순위 함수에는 RANK, DENSE_RANK, ROW_NUMBER 3가지가 있다. 순위함수 문법) 1. 순위함수() OVER(ODER BY컬럼) -- 컬럼의 순위 2. 순위함수() OVER(PARTITION BY 컬럼1 ODER BY 컬럼2) -- 컬럼1의 그룹별 컬럼2의 순위 순위함수는 OVER절과 함께 쓰이며 OVER구에는 반드시 ORDER BY절이 들어가야 한다. PARTITION 이 없는 경우에는 전체 행을 대상으로 하고, PARTITION이 존재하는 경우 해당 그룹의 행을 대상으로 한다. 1. RANK 함수 RANK함수에는 반드시 OVER구절에 ODER BY 가 들어가야 한다. ODER BY절의 컬럼을 기준으로 순위를 매기기 때문. 코드로 이해해보자. 다음과 같은 Employee Tabl..

[SQL] Window Function 윈도우 함수란? [내부링크]

SQL문의 윈도우 함수란 Group By 와 비슷하게 데이터를 그룹화 하여 집계한다. 하지만 Group By 는 집계된 결과만 보여주는 반면, 윈도우 함수는 기존 데이터에 집계된 값을 추가하여 나타낸다. 함수(컬럼) OVER(PARTITION BY 컬럼 ODER BY 컬럼) 함수: MIN(), MAX(), SUM(), COUNT() 등과 같은 기존 함수 또는 LAG(),LEAD(),RANK(), ROW_NUMBER() 등의 윈도우 함수를 쓸 수 있다. 기존 함수) 윈도우 함수) OVER: 윈도우 함수에서 꼭 들어가야 하며, OVER내부에 PARTITION BY 절과 ORDER BY 절이 들어감. PARTITION BY (생략가능) 전체 집합을 기준 컬럼에 따라 나눌지 결정 ORDER BY (생략가능) 정..

Funnel Anlysis 퍼널분석 /AARRR퍼널 이란? [내부링크]

Funnel Anlysis 퍼널 분석 먼저 퍼널(Funnel)의 사전적 의미는 깔대기 이다. 퍼널 분석은 사람들이 앱과 어떻게 상호작용하는지, 사용자의 유입과 이탈의 여정을 시각화하여 얼마나 많은 사람들이 어디에서 이탈하는지 보여주는 분석과정이다. 위에서 아래로 내려갈수록 사용자가 진입하여 사이트를 보는 시간이 늘어나는데, 시간이 늘어날수록 이탈하는 사용자는 많아진다. 여기서 사용자들이 나가는 시점은 제각각인데, 이런 부분이 어디인지 집중적으로 분석한다면 왜 사용자들이 이탈하는지에 대한 단서를 찾을 수 있다. 즉, 이처럼 사용자가 이탈하는 행위, 이탈하는 비율을 이탈률이라 하고 이 이탈률이 높은 시점을 분석하는 것을 퍼널 분석이라 한다. 각각의 단계를 넘어가는 것을 전환(Conversion)이라 하고, ..

RFM Segmentation (RFM 분석) 이란? [내부링크]

RFM Segmentation RFM은 고객 세분화 모형 중 실무에서 자주 사용하는 모형으로 가치있는 고객을 추출해내어 이를 기준으로 고객을 분류하는 분석방법중 하나다. 구매 가능성이 높은 고객을 선정하기 위한 데이터분석방법으로서, 분석과정을 통해 데이터는 의미있는 정보로 전환된다. Recency - 거래의 최근성: 고객이 얼마나 최근에 구입했는가? Frequency - 거래빈도: 고객이 얼마나 빈번하게 우리 상품을 구입했나? Monetary - 거래규모: 고객이 구입했던 총 금액은 어느 정도인가? 1. Recency 최근성 > 최근성 관점에서는 2일전 구매한 B고객이 3일전 구매한 A고객보다 가치 있다. 2.Frequency 행동 빈도 > 행동빈도 관점에서 정해진 기간동안 3번 구매한 A고객이 1번 구..

[Javascript] var / let / const 차이점 ? [내부링크]

자바스크립트에서 변수를 선언할때 var, let, const 를 사용한다. 어떤 차이점이 있을까? 1. 변수선언 방식 var, let, const 는 javascript의 변수선언 방식이다. 같은 기능을 하는것 같지만 조금씩 다른 기능을 하고 있다. var 중복 선언 가능. 재할당 가능. var title = 'book'; console.log(title); // book var title = 'movie'; console.log(title); //movie title = 'music'; console.log(title);//music var 는 원조 변수선언방식으로, 위 코드와 같이 선언한 변수가 동일한 이름으로 중복 선언이 가능하다. 즉, 마지막에 할당된 값이 최종 변수에 저장된다. 변수를 유연하게 ..

크롬 개발자모드로 브라우저에서 HTTP POST방식 호출하기 (feat.XMLHttpRequest 객체란?) [내부링크]

프론트에서 백엔드로 비동기식 호출을 하는 경우, 클라이언트단에서 특정 기능의 url를 호출하면 백엔드에서 실행된다. 만약, 프론트엔드 범위까지 개발 담당이 아닌경우 테스트를 위해서 임의로 테스트 페이지를 만들곤 하는데 굳이 화면개발 없이 크롬 개발자모드의 콘솔에서 간단히 호출 및 테스트 할 수 있는 방법이 있어 공유한다. 웹에서 크롬 개발자 모드 (단축키 F12)의 console 에서 비동기 통신 객체인 XMLHttpRequest 객체를 생성하여 서버로 요청을 보내는 방법이다. 먼저 XMLHttpRequest 객체에 대해서 간단히 알아보자. XMLHttpRequest(XHR)객체란? ajax 요청을 생성하는 javaScript API로 브라우저와 서버간의 네트워크 요청을 전송한다. 서버와 상호작용하여 ..

CORS란? No 'Access-Control-Allow-Origin' header is present in the requested resource. 에러해결 [내부링크]

웹 개발시 클라이언트단의 브라우저에서 외부 서버로 ajax 요청 시 자주 발생하는 실패 메세지. Fail to load '호출URI': No 'Access-Control-Allow-Origin' header is present in the requested resource. Origin '요청URI' is therefore not allowed access. 원인은 자바스크립트 엔진 표준스펙에 동일출처 정책(SOP:same-origin-policy) 보안 규칙 때문이다. SOP(Same-origin Policy) 자바스크립트에서 XMLHttpRequest로 외부서버 접근시에는 같은 출처(Same Origin)의 페이지로만 접근이 가능도록 하여 동일한 출처(프로토콜, 호스트명, 포트) 가 모두 일치해야 데..

스프링에서 자주 사용하는 기본 @어노테이션 정리 [내부링크]

@ 어노테이션이란? 어노테이션의 사전적 의미는 주석이지만 Java에서는 그 이상의 메타 데이터 역할을 한다. 어노테이션을 선언하여 특수한 기능을 사용할 수 있다. @Component 스프링에서 관리하는 객체임을 표기하는 가장 기본적인 범용 스테레오타입 어노테이션. 스프링 빈으로 등록시키는 역할을 수행. Application Context에서 스프링 빈을 등록할 때, 빈으로 등록할 후보 클래스들을 탐지하여 등록한다. 에서는 @Component만 스캔하도록 되어있다. 당연하게 쓰던 어노테이션을 따라가서 소스를 살펴보자.... ex) @Controller @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Component public @inte..

Spring DI 스프링 의존성 주입 3가지 방법 [내부링크]

Spring DI 스프링에서 의존성 주입(DI)이란, 객체간 의존성을 개발자가 객체 내부에서 직접 호출(new연산자)하는 대신, 외부(스프링 컨테이너)에서 객체를 생성해서 넣어주는 방식이다. 외부에서 두 객체 간의 관계설정을 해주는 디자인 패턴으로, 인터페이스를 사이에 두어 클래스 레벨에서는 의존관계가 고정되지 않도록 하고, 런타임 시 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 한다. public class Controller{ private Service service; service.test(); } } 다음과 같이 Controller객체가 Service객체를 사용하고 있는 경우, Controller는 Service에 의존성이 있다고 할 수 있다. 의존한다는 것은 의존대상, 여..

스프링 Service에서 ServiceImpl를 사용하는 이유 ? [내부링크]

스프링 Service에서 ServiceImpl를 사용하는 이유? 대부분의 스프링 프로젝트에서 서비스를 구현할때 Service.java를 인터페이스로 만들고, ServiceImpl 이라는 구현체 클래스를 생성하여 사용한다. 왜 인터페이스와 구현체를 따로 두어 사용할까? ex) MemberService / MemberServiceImpl 1. OOP의 다형성, 개방-폐쇄 원칙 이론상으로는 인터페이스-구현체 패턴으로 설계하는 이유는 인터페이스와 구현체를 분리함으로써 구현체를 독립적으로 두고, 구현체 클래스를 변경하거나 확장해도 이를 사용하는 클라이언트의 코드에 영향을 주지 않도록 하기 위함. 이와 같은 추상화를 통한 구현방식은 객체지향의 특징인 다형성과, 개방-폐쇠원칙(OCP)을 지향하는 설계방식이다. 2.A..

객체지향 프로그래밍 OOP [내부링크]

객체지향 프로그래밍 OOP Object Oriented Programming 객체들의 집합으로 프로그래밍의 상호작용을 표현 데이터를 하나의 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식 설계에 많은 시간이 소요되며 처리 속도가 상대적으로 느리다. 특징 추상화 Abstraction 복잡한 시스템으로부터 핵심개념 또는 기능을 간추려내는것. 캡슐화 Encapculation 객체와 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것. 상속성 Inheritance 상위 클래스의 특성을 하위 클래스가 이어받아 재사용하거나 추가/확장하는 것. 코드의 재사용, 계층 관계 생성, 유지보수 측면에서 중요 다형성 Polomorphism 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것. 대표적으로..

[java script] map() / filter() 함수란? 배열 가공하기. [내부링크]

1. map() 배열의 요소를 순회하려면 for문과 같은 반복문이 필요한데, map() 함수를 쓰면 for문을 쓰지 않고도 배열 전체를 순회하면서 각 요소에 대해 함수를 호출한다. 각 요소는 순서대로 함수를 타고, 함수에 정의된 새로운 형태의 배열로 반환되는 것이다. js에 약한데 실무에서 굉장히 유용하게 쓰게 되어 기록으로 남긴다. map()함수 기본 문법 array.map(callBackFunction(currValue, index, array), newValue); currValue: 원본 배열의 데이터 index : 현재처리중인 인덱스 array : 기존 배열 newValue: callBackFunction에서 사용될 값 ex1) let array = ["월", "화", "수"]; let map ..

싱글톤 패턴이란? singleton pattern [내부링크]

싱글톤 패턴이란? singleton pattern 여러 디자인 패턴 종류 중 하나로, 하나의 클래스에 오직 하나의 객체 인스턴스만 가지는 패턴이다. * 디자인 패턴: 프로그램을 설계할때 발생했던 문제점들을 객체 간 상호관계 등을 통해 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 어디에서든 공유하며 접근, 사용할수 있다. 싱글톤 패턴으로 만들어진 클래스는 생성자가 여러번 호출 되더라도, 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 보낸다. 주로 공통된 객체를 여러 개 생성해서 사용하는 DBCP (Database Connection Pool)와 같은 데이터베이스 연결 모듈에 많이 사용..

자바가상머신 JVM 이란? [내부링크]

JVM Java Virtual Machine 자바가상머신은 자바 바이트코드인 .class 파일을 OS에 특화된 코드로 변환하여 실행한다. 바이트코드파일은 운영체제에서 바로 실행할 수 없고, 자바가상머신이라는 번역기가 필요하다. 자바가 JVM을 사용하는 이유는 바이트 코드 파일을 다양한 운영체제에서 수정없이 사용하기 위함이다. 이 특징이 자바를 플랫폼에 종속되지 않고 독립적으로 작동하게 하는 것이다. 단, JVM 자체가 플랫폼에 독립적이지는 않다. 때문에 JVM은 윈도우용, 리눅스용 등 각 운영체제용 JVM이 존재하고 각 운영체제의 JVM이 바이트코드파일은 해당 운영체제에서 실행가능한 기계어로 번역하여 프로그램을 실행하는 것이다. 프로그램이 시작되면 JVM은 OS로부터 프로그램을 수행하는데 필요한 메모리를..

컴파일러compiler와 인터프리터interpreter의 차이? + 자바컴파일러와 자바인터프리터의 역할 [내부링크]

컴파일 Compile 코딩을 할때 사용하는 프로그래밍 언어들은 사람이 알아볼 수 있는 인간친화적 언어이다. 컴퓨터는 0과 1로 이루어진 기계어 신호만 알아듣기 때문에 이해할 수 없다. 때문에 우리가 작성한 코드를 컴퓨터에서 실행시키려면 컴퓨터가 알아들을 수 있도록 코드를 기계어로 번역해야한다. 코딩을 마친 후 코드로 짜여진 소스들을 소프트웨어로 실행시키기 전 한방에 미리 번역하는 과정이 '컴파일'이고, 번역역할을 해주는 놈이 컴파일러 이다. 이 컴파일 작업이 요구되는 언어들을 컴파일러 언어라고 한다. 대표적으로 C, C++, 등의 언어가 있다. (Java 는 조금 특이하게 인터프리터도 병행한다. 아래서 살펴보겠다. ) 컴퓨터는 이렇게 컴퓨터의 언어로 번역된 코드를 읽기만 하면 되기 때문에 컴파일러언어는 ..

JUnit Test 자바 단위테스트란? feat. 서비스 단에서 DB연결 테스트해보기. [내부링크]

junit 자바 단위테스트란? Java에서 독립된 단위테스트 (Unit test)를 지원해주는 프레임워크. * 단위테스트란? 특정 소스코드의 모듈이 의도한 대로 작동하는지 검증하는 테스트이다. 즉, 함수 및 메소드에 대한 테스트를 하는 작업. Spring에서 단위테스트를 하는것은 스프링 커네이너에 올라와있는 Bean들을 테스트 하는 것이다. Junit을 사용하면 스프링 컨테이너를 띄워, 그 위에 올라가있는 Bean을 테스트 할 수 있다. JUnit 특징 단정 메서드(assert)로 테스트 케이스의 수행결과를 판별. ex) assertEquals(예상값, 실제값) assert()는 junit의 대표적인 기능이다. 이 메소드를 사용하여 테스트가 정상인지 아닌지 판별한다. Junit 4부터는 테스트 어노테이션..

Tomcat Dymanic Web Module 버전 오류 해결 [내부링크]

에러: Maven Java EE Configuration problem -One or more contraints have not been satisfied. -Cannot change version of project facet Dynamic Web Module to x.x *서블릿 스펙에 따라 Dymanic Web Module 버전이 다름 Project > Properties > Project Facets 에서 버전 확인 이클립스 내에서도 여전히 Cannot change version of project facet Dynamic Web Module 에러로 변경 불가하다고 뜨는 경우 파일로 접근해서 수동으로 변경 해 줄 수 있다. 프로젝트 경로 > .settings > org.eclipse.wst.co..

리눅스 운영체제란? Linux [내부링크]

운영체제란? 컴퓨터와 같은 기계장치인 하드웨어와 컴퓨터에 설치되는 모든 SW를 관리하는 실행관리자다. 사용자에게 컴퓨터를 효율적으로 사용할 수 있도록 한다 처리하고자 하는 과정의 작업순서를 정하고 중앙처리장치CPU와 주기억장치 RAM, 주변장치인 키보드,모니터, 마우스, 스피커 등.. 의 여러 하드웨어 시스템에게 일련의 작업순서를 할당한다. 프로그램 실행, 파일접근, 응용프로그램 구동, 모니터 및 메모리 저장장치 제어, 명령해석 등과 같은 임무를 수행하도록 CPU에게 지시. 윈도우 Windows 마이크로소프트사에서 제공하는 윈도우 계열 운영체제가 시장을 점유율을 거의 독점하고 있는 운영체제다. 윈도우의 가장 강력한 강점은 응용 소프트웨어의 호환성이다. 시중에서 배포되는 소프트웨어 대다수가 윈도우 운영체제..

git 저장소 주소 repository 변경하기 [내부링크]

git 저장소 주소 repository 변경하기 Git에서 remote repository를 다른 주소 URL로 변경해 보자. 예를 들어 기존의 repository에서 형상관리를 하다가 새로운 repository를 생성 한 경우,새 repository로 형상관리를 하겠다라고 한다면 기존의 주소를 새로운 저장소 주소로 바꿔주어야 한다. 기존 주소 : https://github.com/user/repo1.git 새로운 주소 : https://github.com/user/repo2.git 먼저 현재 연결된 주소를 확인. //결과 origin https://github.com/user/repo1.git (fetch) origin https://github.com/user/repo1.git (push) git r..

GitHub Pages 활성화 시켜 여러 repository 웹 호스팅하기. [내부링크]

들어가기 전에 githubpages에 간단히 알아보자. github pages란? 쉽게말해 github저장소의 내용을 웹페이지로 호스팅 해주는 서비스이다. repository에 올린 소스를 직접 웹페이지를 통해서 보여주고 무료로 웹서버를 호스팅 할 수 있다. 대표적인 사례로 기술블로그로 많이 이용된다. 깃허브 페이지의 url은 다음과 같은 형식으로 생겨먹었다. https://username.gibhub.io 와 같은 형태의 url을 본 적이 있을 것이다. 이 외 간단한 웹 프로젝트를 구현해볼 수 있으나, 저장소의 최대용량이 1G로 제한되어 있기 때문에 무거운 프로젝트는 힘들 것 같다. github pages 구축 방법 먼저, 공식 사이트에 가이드 라인을 잘 제공하고 있다. 참조 가이드 : https://..

Markdown Language 마크다운언어 란? + 예제 [내부링크]

마크다운이란? Markdown은 텍스트 기반의 마크업언어로 2004년 존그루버에 의해 만들어졌으며 쉽게 쓰고 읽을 수 있으며 HTML로 변환이 가능하다. 특수기호와 문자를 이용한 매우 간단한 구조의 문법을 사용하여 웹에서도 보다 빠르게 컨텐츠를 작성하고 보다 직관적으로 인식할 수 있다. 마크다운이 최근 각광받기 시작한 이유는 깃헙(https://github.com) 덕분이다. 깃헙의 저장소Repository에 관한 정보를 기록하는 README.md는 깃헙을 사용하는 사람이라면 누구나 가장 먼저 접하게 되는 마크다운 문서였다. 마크다운을 통해서 설치방법, 소스코드 설명, 이슈 등을 간단하게 기록하고 가독성을 높일 수 있다는 강점이 부각되면서 점점 여러 곳으로 퍼져가게 된다. 마크다운의 장단점 장점 간결하다..

jekyll 지킬이란? [내부링크]

지킬은 깃헙 설립자 중의 한명이 Ruby 언어를 통해 개발한 프레임 워크이다. 지킬 앤 하이드의 그 지킬 맞음 ..ㅋ 깃헙 자체적으로 Jekyll Contents Management System 을 내장하고 있어서 호스팅에 적합하다. (지킬 아니라도 호스팅 가능) 지킬은 개발자들이 애용하는 github에서 개발한 툴로 이미 잘 알려진 Wordpress의 강력한 경쟁자로 성장하고 있다. 지킬의 핵심 역할은 텍스트 변환 엔진 즉,HTML / Markdown 등의 마크업 언어로 글을 작성하면 이것을 미리 정의해 놓은 규칙에 따라 다양한 레이아웃으로 포장하여 정적 웹사이트를 만들어 준다. 이 가정에서 사용자는 _config.yml 또는 _posts 폴더 등의 수정 및 추가를 통해 원하는 기능을 구현할 수 있다...

[DBMS] Orange 단축키 정리 [내부링크]

자주 사용되는 Orange 단축키 ctrl + - : 주석처리(해당 커서 한 라인, 혹은 드래그 영역 주석 처리) ctrl + shift + - : 주석해제 ctrl + u : 드래그 영역 소문자 변경 ctrl + shift + u : 드래그 영역 대문자 변경 ctrl + enter : 현재 위치의 쿼리 실행 (세미콜론 구분자 까지의 ) ctrl + l : 드래그 영역 쿼리 실행 ctrl+n : DB connect , 계정접속 ctrl + t: SQL 탭추가 ctrl + r: 라인 자동 정리 *완벽하지 않음주의 ctrl + shift+ t : SQL 탭복사본 추가 art + r : 스크립트 저장 ctrl + r : 스크립트 불러오기 F5: 전체 쿼리 실행 F7: 세션 선택 F8: 실행한 쿼리 히스토리 목..

[ORACLE] NVL 함수란? 쿼리 널처리 [내부링크]

NVL함수 널처리 함수. data 값이 null 값일때 임의설정값으로 처리해주기 NVL("값","지정값") 값이 null 인 경우, 지정 값을 출력하고 그렇지 않으면 원래값을 그대로 출력한다. 기본테이블 //DEFAULT SELECT no, name, salary from table 결과) no name salary 1 홍길동 200 2 김길동 null NVL 예시 //NVL SELECT no, name, NVL(salary,0) AS salary from table 결과) no name salary 1 홍길동 200 2 김길동 0 -> salary 컬럼의 null 값이 0으로 치환되었음. null이 아닌경우 그대로 출력. NVL2함수 마찬가지로 널처리 함수이지만 앞의 NVL함수는 null이 아닌경우에는..

로지텍 스트리밍 캠 / VU0054 / 웹캠 / 언박싱 (mac silicon 유저는 사지마시오 주의 ) [내부링크]

나는 맥 m1 을 쓰는데 제 아무리 맥이라도 웹캠이 화질이 매우 구려서 화질 좋다는 로지텍 스트리밍 캠을 구매해보았다. 헐 일단 생각보다 너무 이뻐서 외관에 반했다. 사진에는 잘렸는데 주의사항!!! 연결케이블이 C type 이다. 맥의 경우 c type이라 상관없었는데 윈도우 등 USB 인 분은 젠더 별도 구매 필요. 일단 로지텍에 대한 신뢰가 있었기에 첫인상은 넘나만족 장착샷! 집게로 짚는게 아니라 노트북에 걸치도록 거치되는 형식이다. 툭 얹어 놓는 느낌?? 근데 떨어지거나 하진 않고 안정적이다. 이렇게 걸쳐놓듯이 하는건데 안정적으로 이지만 노트북이 흔들리면 카메라도 같이 흔들린다 이쁘다!!!!!!!! 부푼 기대를 안고 연결을 해봤는데.. . .. 결론부터 말하자면 맥 m1이상, 즉 cpu silion..

oranwell 아이패드 거치대 / WMB-TSD400 /태블릿 거치대/ 스마트폰 거치대 /언박싱/ 1개월 사용 후기 [내부링크]

요새 아이패드를 자주 사용하면서 아무래도 높이가 낮아서 목이 뽀개질것 같아서 거치대를 구매했다. ︎ 나의 구매 기준: 책상거치에 최적화, 높이 넉넉히 조절 가능, 튼튼할것, 깔끔한 디자인 이것처럼 비교구매와 후기들을 보고 오랜웰 WMB-TSD400거치대 를 구매함 일단 포장이 안전하게 잘 되어와서 좋았음. 보기보다 엄청 묵직했다!!! 휴대용으로 쓴다면 좀 무거울 듯. 분리되어 있는걸 연결해줘야한다. 연결할 나사와 드라이버가 같이온다. 드라이버 넣어주는 곳은 쎈스있는곳 !!! 조립법 엄청 쉽다. 걍 손으로 끝까지 돌려주고 도라이버로 꽉꽉 조여주기 기본 높이는 약 32cm 로 쪼꼬맣지만 이렇게 높이 조절로 약 17cm가 더 늘어난다!! 그럼 총 약 50 cm. 생각보다 더 높 ;;;;; 책상에서 쓰는 나로..

2022 청년희망적금 [내부링크]

"2022 청년희망적금" 오는 2월 21일 출시 예정이라고 한다. 요즘시기에 절대 나올수 없는 금리의 상품이니 대상자는 무적권 가입할 것!!! ︎ 청년희망적금이 뭔가요? 청년 자산형성을 위한 적금 매달 50만원 내에서 자유롭게 납입 가능하다. 만기는 2년. 이 적금의 특징은 총 이자 = 시중이자 + 저축장려금까지 플러스 된다는 점인데, ︎ 저축장려금은 뭔가요? 1년차에는 납입액의 2% / 2년차에는 납입액의 4% 를 저축 장려금이라는 이름으로 제공되는 혜택이다. 만약 최대금액인 50만원씩 납입한 경우, 총 이자 = 시중 이자 5% (625,000)+ 저축장려금(360,000) = 985,000원 즉, 원래는 이자가 625,000 인데 저축장려금인 360,000까지 포함해서 총 이자가 985,000원이..

웹스퀘어 에서의 Script 코딩 [내부링크]

WebSquare Script 코딩 주요 객체 살펴보기 1. 브라우저 Browser에서 제공하는 객체. document, window 등 ex) window.open('http://'); 2. 사용자 정의 개발자가 script블록 또는 js파일에 정의한 변수, 함수, 객체. ex) var userName = "WebSquare"; function getUserName( ){ return userName; } var info = { name : "WebSquare", city : "Seoul" }; var common = { isNumber : function(tmpVal){ return Number(tmpVal); } }; 3. WebSquare WebSquare에서 제공하는 객체. 전역 공간에 정의되기..

웹스퀘어 - 데이터 컬렉션/서브미션/워크플로우 란? [내부링크]

WebSquare의 Data Model 영역 1. Data Collection 데이터 컬렉션 데이터 객체 정의 영역 서버통신 위한 request, response 데이터와 화면에서 사용할 데이터 정의 데이터 객체 타입: - DataMap - DataList - LinkedDataList - AliasDataMap - AliasDataList 가 있음 화면) 소스 ) dataList . . 화면 예시) 소스 ) dataMap . . 2. Submission 서브미션 서버 통신을 위한 인터페이스. 통신 비동기/동기 방식 선택 : mode속성의 asynchronous/ synchronous 통신 실행 전/후에 실행할 함수 이벤트를 정의 request 데이터는 reference 속성에 정의된 데이터 객체의 정보..

웹스퀘어 Web Square 란? (프론트 소스를 알아서 짜준다고?) [내부링크]

웹스퀘어 Web Square 란? 웹 표준을 준수한 UI프레임워크로 UI컴포넌트와 Util API, 통합 개발 도구 제공하는 솔루션이라고 한다. 쉽게 말해 프론트 화면 개발 툴이다. 프론트개발을 그켬하는 백엔드 개발자인 나에게는 신세계일 따름... 마치 대딩 때 처음 접했던 자바 스윙 업그레이드 버젼 같기도 하고..; 디자인 탭에서 화면을 미리 볼 수 있는데 PPT에서 개체 추가 해주듯이 만들고자 하는 요소들을 추가하고, 속성에서 ID 지정 등 데이터를 입력한 뒤, Source 탭에 들어가보면 방금 마우스로 끄적거린 작업들이 HTML/JS 소스로 완성되어있다. WOW .... 화면 노가다를 해야하는 수고는 확실히 덜어주기는 하지만 디자인 등이 정형화 되어있고 모든 문법이 websquare에 종속되어 있어..

[SQL] WITH 절이란? [내부링크]

WITH 절이란? 임시테이블 또는 가상 테이블의 개념. 반복되는 서브쿼리 블록을 하나의 WITH절 블록으로 만들어서 사용할 수 있다. 임시테이블을 만든다는 관점에서 VIEW와 비슷하지만 VIEW는 CREATE로 생성하여 DROP하기 전 까지 없어지지 않고 모든 테이블에서 사용하능 하지만 WITH절의 경우 한번 실행할 쿼리문 내 정의하여 해당 쿼리안에서만 실행된다. WITH 절 사용법 --WITH절 생성 WITH emp_with AS ( SELECT deptno, SUM(sal) AS sal FROM emp GROUP BY deptno ) --WITH절 사용 SELECT a.deptno, b.name, c.sal FROM emp_with a , dept b WHERE a.deptno = b.deptno 위..

티스토리 애드센스 관리 다시 조회하기 에러 1초 해결 [내부링크]

갑자기 잘 되던 티스토리 애드센스 관리가 작동하지 않는 현상 발생. 검색해보니 해당 현상이 발생한 분은 크롬브라우저 유저일 것이다. 범인은 광고차단 플러그인 애드블락 플러그였다. 해결방법은 간단하다. 상단의 활성화된 ABP 아이콘을 클릭해서 차단 활성화를 해지 해주면 된다. 해지 된 상태에서는 ABP아이콘이 빨간색에서 회색으로 표시됨. 비활성화 설정 후 새로고침 하면 정상작동 할 것이다. 또 다른 해결책으로는 걍 다른 브라우저를 사용하면 된다. 사파리, 인터넷 익스플로러등.. 1초해결 ㅇㅈ?

[Error] javax.naming.NameNotFoundException 에러 [내부링크]

EJB javax.naming.NameNotFoundException 에러 원인: 클래스 네임을 찾을 수 없다는 에러. 해결법: clean > rebuild > deploy 로컬 소스를 서버에 deploy 시 EJB가 새로 추가되거나, 또는 그렇지 않아도 잘만 참조하던 클래스를 찾지 못하는 경우가 있다. 실제로 클래스명에 에러가 있거나 추가된 클래스를 빠뜨린것이 아니라면 보통은 로컬에서 소스를 clean 해주고 재컴파일 후, deploy를 통해 해결.

Git Hub Pages 란? [내부링크]

Git이란? SW 개발 시 여러명의 사용자들 간 개발 작업을 조율하기 위한 분산 버전 관리 시스템. Git hub란? 깃을 좀 더 편리하게 이용하도록 만든 깃 허버 웹 호스팅 서비스. 오픈 소스 소프트웨어의 중심지(hub)역할을 하면서 오픈소스 프로젝트가 널리 퍼지는 데 크게 기여하고 있는 서비스이다. Git hub pages란? 깃허브에서 제공하는 정적 사이트 호스팅 서비스로 일반적인 html콘텐츠를 지원하는 것 외에도 다양하고 인기있는 정적 사이트 생성기인 Jekyll을 지원한다. Github 가입 Git hub repository 생성 로컬 저장소에 깃허브 저장소 복제하기.이제 해당 프로젝트 폴더에 index.html파일을 추가하여 별도의 서버 없이 포트폴리오 사이트 등 간단한 사이트를 만들 수 있..

[SSH]SCP란? 원격지로 파일 전송하기 [내부링크]

SCP : secure copy SSH 프로토콜 기반의 파일전송(복사) 수단이다. - 원격지에 파일 또는 디렉터리를 보내거나 가져올때 사용하는 파일전송 프로토콜 - 네트워크 연결 환경에서 ssh와 동일한 22번 포트와 identy file을 사용해서 파일 송수신 하기 때문에 보안적으로 안정된 프로토콜. 1. 로컬의 단일 파일을 원격지로 전송. local > remote (원격지) #scp [옵션] [파일명][원격지 id] @ [원격지 ip]:[저장경로] ex) 예제코드 scp testfile [email protected]:/app/tmp/testdir -> 현위치의 testfile을 원격지 123의 /app/tmp/testdir 경로로 이동(복사) (* 하위 파일 가지는 디렉터리인 경우 옵션 -r..

[DB2] WITH UR 이란? [내부링크]

WITH UR이란 ? DB2를 사용해보신 분이라면 쿼리문에 WITH UR이 붙어있는 구문을 본 적이 있을 것이다. UR이란, Isolation level 중 하나로 Uncommited Read 의 약어이다. 기본적으로 내가 조회하고자 하는 table의 다른 트랜잭션이 진행 중일 때는 동시 조회가 불가능하다. 다른 트랜잭션이 끝날 때 까지 대기하다가 commit 또는 rollback 처리 후에 조회가 가능하다. **그러나 WITH UR 옵션을 붙이면 다른 트랜잭션이 진행 중이라 하더라도 대기하지 않고 실시간으로 변경중인 데이터를 가지고 와서 조회할 수 있다.** 단, commit이 되지 않은 데이터를 가지고 오는 경우, 신뢰성을 보장 되지 않는다. 보통 단순 조회 SELECT시 사용한다. SELECT 외 ..

[금융IT] 보안 지식 [내부링크]

개인정보 데이터 그 자체로, 또는 다른 데이터와 결합하여 개인을 식별할 수 있는 데이터 또는 정보. ex) 개인마케팅 프로필, 은행 계좌번호, 소매고객 전화번호, 행원급여, 카드지출내역 .. * 고객명 - 단순 성명만으로는 개인정보 아님. 민감한 개인정보 인종 또는 민족, 정치적 견해, 종교 또는 철학, 노조가입 여부, 유전자 정보, 신체 또는 정신겅강, 성적 취향, 위법 행위 또는 위범 혐의를 나타내는 정보입니다. 민감한 개인정보를 처리할 때 따라야하는 추가적인 규칙이 있다. ex) 노동조합가입, 종교적신념 .. 개인정보 vs 은행기밀정보 vs 사이버보안 개인정보: 개인과 관련된 정보만을 의미. 은행 기밀정보: 고객과 관련된 개인정보를 포함한 모든정보를 포함. 사이버 보안: 사이버 환경에서 네트워크를 ..

[금융IT] 업무 기본지식 [내부링크]

1. 계정계 (core banking) *통장 = 계정,계좌 공통업무, 수신(저축예금)업무, 신탁업무, 보험업무, 카드업무, 여신(대출)업무,외환업무, 대행업무 … *원장 = 근원이 되는 장부 많은 은행들이 초기에 ibm mailframe (COBAL기반) 사용. 2000년 중반에 unix로 이전하였고 차세대 업데이트를 통해 대부분 C로 이전함. java도입이 2013년에 최초로 될 정도로 보수적임. 2. 정보계 고객정보, 영업정보, 기업전략정보등.. 고객의 거래활동 및 성과를 분석/측정 주요 시스템으로 DW를 기반으로 하는 수익관리, 고객관계관리, 성과관리, 위험관리 시스템 등 기본적으로 정보연계, 통합조회, 통계분석 등의 업무를 많이 하기 때문에 관계형 데이터베이스가 필수임. 3.대외계 은행외부기관과..

Spring boot 스프링 부트란? [내부링크]

Spring boot 란? Spring framework 기반 프로젝트를 복잡한 설정없이 쉽꼬 빠르게 만들어주는 라이브러리. 개발자가 일일히 모든 설정을 할 필요없이 자주 사용되는 기본 설정을 알아서 해준다. 스프링 부트는 실행만 하면 스프링기반의 사용화가 가능한 애플리케이션을 쉽게 만들기 위해 단독 실행 가능하도록 해주는 스프링 프로젝트이다. 스프링 부트는 스프링을 쉽게 사용할 수 있도록 필요한 여러가지 복잡한 설정을 대부분 미리 세팅 해놓았을 뿐만 아니라 WAS도 별도의 설절없이 바로 웹개발에 들어갈 수 있도록 만들어 놓은 놈이다. Why Spring boot? 왜 사용하나? Spring framework를 사용하기 위한 필수 설정파일 (web.xml, rootContext.xml, ServletCo..

디파이 코인이란 ? Defi coin [내부링크]

"코인(암호화폐)은 실체도 없고 쓸모도 없다." 2009년 첫 암호화폐 비트코인이 등장한 이래 지금까지 제기되는 코인 비관론자 주장이다. 하지만 눈에 보이지 않는다고 해서 실체가 없는건 아니다. 단순히 '코인==화폐'라고 생각한다면 그들의 말처럼 쓸모가 없을지도 모른다. 하지만 코인은 화폐가 아닌 '시스템'에 가깝다. 인터넷이나 인공지능, 빅데이터와 같은 혁신기술이 눈에 보이지 않는다고 해서 실체가 없다고 주장하는 이는 없다. 코인은 이미 실존하는 여러사업과 시스템에서 활발히 쓰이고 있다. 코인이 갖는 '탈중앙'특성 덕분이다. 중앙기관 개입으로 비효율이 발생하는 모든 산업에서 코인은 유의미한 성과를 거둘 수 있고, 또 거두고 있다. 쉽게 말해 부동산 중개소가 없는 부동산거래, 광고나 수수료가 없는 콘텐츠..

[java build] ANT란? (feat. MAVEN과 차이점? ) [내부링크]

Ant란? 주식개미아니고요.. 자바 기반의 빌드툴로 리눅스의 make와 흡사한 기능 제공한다. Ant는 자바 기반으로 플랫폼에 독립적으로 실행. - 운영체제에 구애받지 않고 프로젝트 진행가능. 복잡한 쉘 명령어 대신 xml기반의 기능 설정파일을 사용하기 때문에 작업 설정이 복잡하지 않다. 미리 정의된 Task를 사용하여 쉽고 빠르게 배치 작업을 설정할 수 있다. 새로운 Task의 추가를 통해 배치작업의 확장이 가능하다. *Task는 Ant를 통해서 처리하고자 하는 작업을 나타내는것으로 파일복사 태스크, 소스코드 컴파일 태스크, Javadoc API생성 태스크 등 다양한 태스크가 미리 정의되어 있다. Ant사용법 Ant의 빌드 파일은 xml 문서의 구조이며 Ant가 작업을 수행할 프로젝트에 대한 정보를 담..

[개발용어] test용어_ SIT란? UAT란? 차이점? [내부링크]

SIT 란? System Integration Testing. 시스템 통합 테스트 여러 하위 시스템으로 구성된 전체 시스템에 대한 전체 테스트. SIT의 주요 목적 모든 SW 모듈 종속성이 올바르게 동작하고 전체 시스템의 개발 모듈간에 데이터 무결성이 유지되도록 하는 것. SIT는 초기단계에서 결함을 감지하여 추후 수정에 드는 시간과 비용을 절약할 수 있다. 또한 모듈의 수용가능성에 대한 초기 피드백을 받는 데 도움이 된다. 여러 시스템간의 상호작용을 전체적으로 테스트하고 SIT의 결과물은 UAT ( User Acceptance Testing)으로 전달된다. SIT 세분화 SIT는 세가지 수준의 세분화로 수행한다. 1. 시스템 내 테스트 통합 시스템 구축을 위한 모듈을 통합하는 것. 2. 시스템 간 테스..

뷰 Vuejs란? [내부링크]

Vuejs란? 대화형 웹 프론트엔드를 쉽게 구축할 수 있게 하는 Javascript 프레임 워크. UI를 빠르게 개발하기 위해서 만들어진 자바스크립트 프레임워크. MVVC (Model-View-ViewModel) 패턴을 따르며, 어플리케이션 로직과 UI 의 분리를 위해 설계되었다. Angular.js나 React.js보다 많이 알려지지 않았지만 급속도로 확산하고 있다. 뷰 View : 사용자에게 보이는 화면 돔 Dom: HTML 요소(태그, 클래스, 속성 ..) 의 정보를 담고 있는 데이터 트리 돔 리스너 Dom Listener: 돔의 변경 내역에 대해 즉각적으로 반응하여 특정 로직을 수행하는 장치 모델 Model: 데이터를 담는 용기. 보통은 서버에서 가져온 데이터를 자바스크립트 객체형태로 저장. 데이..

프리다이빙 표준안전 수칙. [내부링크]

1. 항상 트레이닝을 받은 버디와 함께 다이빙을 하고 버디수칙을 따른다. 2. 스쿠버 다이빙을 한 날은 같은 날에 개방수역 스리다이빙에 참여하지 않는다. 3. 하강함과 동시에 내 귀와 마스크의 압력 평형을 실시하고, 불편함을 느끼기전에 미리, 자주 부드럽게 압력평형을 실시한다. 4. 만약 압력평형이 되지 않는다면 수면으로 올라간다. 5. 압력 평형을 무리하게 하거나 너무 길게 하지 않는다. 6. 호흡을 크게 들이마신 후 하강한다. 7. 좋은 건강 상태로 프리다이빙을 한다. 감기이거나 코가 막혔을때 절대로 프리다이빙을 하지 않는다. 8. 내가 스쿠버 다이버라 할지라도 수중에서 프리다이빙을 하는 동안, 절대로 스쿠버에서 호흡을 해서는 안된다. 다만, 스쿠버 다이버와 내가 필요하여 스쿠버를 이용해 상승하는 경..

Free diving 프리다이빙의 매력 [내부링크]

Free diving 프리다이빙이란? 수상과 수중에서 호흡기구의 도움 없이 본인의 호흡만으로 즐기는 모든것을 프리다이빙이라 칭한다. 한번의 호흡으로 더 깊이 가고자 하는 것을 의미한다. 프리다이밍은 내면적으로 초점을 맞춘 스포츠의 신체적, 정신적 수행을 강조한다. 많은 프리다이버들에게는 이것이 이 스포츠의 주된 매력이 되어 왔다. "우리는 산을 정복하는 것이 아니라, 우리 자신을 정복하는 것이다" 에드문드 힐러리경의 말은 프리다이빙을 완벽하게 묘사한다. 프리다이버들은 스노클러들과 스킨다이버, 스쿠버 다이버들이 사용하는 장비와 유사장비를 사용하지만, 이 스포츠의 특징에 맞게 고안된 장비를 사용하고, 프리다이버들은 다른 방식으로 장비를 사용한다. 프리다이빙은 전형적으로 스킨 다이빙과 스노클링에서 경험하는 수..

macbook Air M1 /baseus usb-c 허브/ unboxing / 4개월 사용후기 [내부링크]

Apple M1 칩(8코어 CPU, 7코어 GPU, 16코어 Neural Engine) 16GB 통합 메모리 / 256GB SSD 저장 장치 True Tone이 적용된 Retina 디스플레이 백라이트 Magic Keyboard - 한국어 Touch ID / Force Touch 트랙패드 Thunderbolt /USB 4 포트 2개 교육할인으로 129 -> 116 만원 + 무료 에어팟 2세대 (약 20만원 상당) -> 약 30만원 이득 *그치만 용량 업데이트 몇번 하고나니까 180원대로 훅 늘어난 것이 함정..ㅠ.ㅠ 비싼자식.. 그래도 이왕 하는김에 최대한 좋은 옵션을 선택하는 게 좋다. 나중에 돼서 모자라면 늘린다고 또 다 돈이다.. 탈탈탈 (돈털리는 소리) 또 공홈구매시 약 30만원 상당의 에어팟 프로..

아마존 프라임 한달 무료이용, 자동결제 해지 [내부링크]

아마존에서는 프라임 (Prime) 유료 회원제도를 운영하고 있는데, 아마존 프라임 연회비는 1년에 119달러이고, 월회비는 매월 12.99달러 이다. 미국 CNN 등에 따르면 아마존 프라임 회원 숫자가 1억명이 넘는다고 한다. 아마존 프라임 회원에 가입하면 처음 30일간은 무료체험이 가능하다. 아마존 프라임 혜택 -미국 등 현지 국가내에서는 2일내 무료 특급배송 -무제한 아마존 뮤직 스트리밍 서비스 -무제한 전자책 읽기 -무료 사진저장 공간 -일부 상품 당일 무료배송 매년 7월에 아마존 프라임데이가 열린다. 이때는 아마존 프라임 회원들만 상품을 싸게 구입할 수 있으니 아마존 프라임 30일 무료체험 가입을 해서 혜택을 받을 수 있다. 무료체험 후 그냥 두면 자동으로 결제가 되니 무료체험 가입 후 바로 해지..

[javaScript] input text 태그 엔터 시 새로고침 현상 막기 [내부링크]

현상 input text 박스에서 enter 키에 별도의 onkeypress 기능을 넣지 않아도 새로고침 현상이 나타남. 또는 onkeypress 기능 실행 이후, 새로고침 현상이 나타남. 원인 form 태그 내부에 있는 input(type=text) 태그가 단 하나 존재하는 경우, 엔터 > submit 시킨다. 해결방법 1. form 태그의 onsubmit 속성값 이용 2. input 박스 추가 input text box가 단 하나 존재하는 경우에 submit 시키는 것이므로, 의미없는 input(type=text) 태그를 추가하여 이를 방지할 수 있다.

[java] Lombok 사용 및 설치방법 (intelli J 기준) [내부링크]

Lombok 적용 및 설치하기. 롬복은 @Getter, @Setter등의 어노테이션을 사용하는데, 이러한 API를 사용하기 위해서 롬복 라이브러리 (.jar) 파일을 추가 해 주어야 한다. .jar파일을 직접 내려밭아 class path상에 추가해주어도 되지만 메이븐 프로젝트의 경우 pom.xml 에 아래와 같이 의존성을 추가한 후, 메이븐 업데이트를 해주면 된다. pom.xml ) org.projectlombok lombok 1.18.20 compile *직접 lombok.jar를 내려받아 프로젝트에 추가하려면 https://projectlombok.org/download에서 다운로드 할 수 있다. 프로젝트에 롬복 라이브러리 의존성을 추가했다면 이제 @Getter나 @Setter등의 API를 사용할수 ..

[java] Lombok 롬복이란? - 코드 다이어트 [내부링크]

Lombok 롬복 이란? Lombok 이란 Java 라이브러리로 반복되는 getter, setter, toString .. 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 이다. 근데 왜 Chilli 모양일까... Java에서 보통 model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버변수가 있고 이에 대응되는 getter, setter 와 toString() 메서드, 때에따라 멤버변수에 따른 여러개의 생성자를 만들어주게 되는데 거의 대부분 이클립스나 인텔리제이같은 IDE에서 자동생성 기능이 있지만 이 역시도 번거로운 작업이 아닐 수 없다. 뿐만 아니라 코드 자체가 반복 소스코드로 인해 복잡해지게 된다. Lombok은 여러가지 @어노테이션을 제공하고 이를 기반으로 반복 소..

개발자 평균연봉 1억 시대?!?? 현실 개발자들의 찐반응. [내부링크]

개발자 평균연봉 1억 시대?!?? 현실 개발자들의 찐반응. "어느나라 이야기인고 ?? " 다들 좋아하는 돈 $$$ 이야기를 해보겠다. 요즘 기사를 보면 개발자들의 연봉 이야기가 아주 핫하다. 벌써 이 이야기가 나온 지 한참은 더 지난 것 같은데 아직까지도 뉴스 볼 때 항상 빠지지 않고 이런 기사가 올라온다. 난리 난리 부르스 기사 헤드라인들. 기사 내용 헤드라인: 이과 갔어야 하는 건데.. 평균 연봉 1억!! 잇따르는 IT 업계.. 크으..... 연봉 1억??? 이야 듣기 좋다.... 근데 도대체 어느 나라 이야기인고??? 정작 개발자들은 별 말 없는데 개발자가 아닌 사람들이 더 난리가 났다. 기사 내용 발췌 네이버 카카오 엔씨소프트도 지난해 평균 연봉 1억 원대에 새롭게 합류했다 네이버와 카카오의 지난..

개발자 몸값 올려주는 필수 자격증. 다른건 몰라도 이건 꼭 따세요! [내부링크]

개발자 필수 자격증. 다른건 몰라도 이건 꼭 따세요! 먼저 개발관련 자격증에 대한 필자의 생각을 말해보자면, 자격증은 부차적인 것이고 일단은 실력이 가장 먼저라고 생각한다. 그러나, 그럼에도 불구하고 꼭 따야 되는 필수 자격증이 딱 하나 있다. 바로 '정보처리기사' 자격증이다. 자격증이라는게 자격증이 있다고 해서 그 분야의 전문가가 된다거나 하지는 않는다. 단기 기억력이 좋아서 합격을 할 수도 있고 1점 차이로 운 좋게 합/불 이 갈리기에 자격증이 크게 중요하다고 생각하진 않아요 그치만 정처기는 왜 필수라고 하느냐. 우리나라에서 개발자는 초급 중급 고급개발자로 등급이 나누어지는데 등급을 계산할 때 KOSA에서 제시하는 기준이 있다. 이 기준은 예전에 폐지를 했다고 하는데 아직도 프로젝트 내부 자체적으로 ..

[java] Try-with-resource 문이란? 자동 자원반납. [내부링크]

자바를 이용해 외부 자원에 접근하는 경우 주의점은 외부자원을 사용한 뒤 반드시 반납을 해주어야 한다는 점이다. 파일로 예를들면 파일 출력을 위해서 하드디스크에 저장되어 있는 파일의 내용을 메모리로 가져와야 하는데 파일의 내용을 모두 메모리에 올리는것이 부담인 경우가 많음. 때문에 많은 프로그래밍 언어들이 파일에 대해서 입출력 스트림을 연결한다. 즉, File 인스턴스를 생성하는 순간 파일의 모든 내용이 메모리에 올라오는 것이 아니라 스트림을 연결하여 언제든지 원하는 부분의 원하는 만큼 내용을 읽어 들일수 있도록 하는 것이다. 이 때 연결한 Stream을 자원이라 하고 이것은 시스템에서 제공 해주는 것.(운영체제가 제공) 자원반납과 finally 1. 자원반납 문제 param = new Object(); ..

[Spring] @RequestBody / @ResponseBody 어노테이션 이란? [내부링크]

스프링에서 비동기 처리를 하는 경우 @RequestBody , @ResponseBody를 사용한다. 비동기 처리를 위해 이 어노테이션들은 어떻게 작동할까? 클라이언트와 서버의 비동기 통신 클라이언트에서 서버로 통신하는 메시지를 요청(request) 메시지라고 하며, 서버에서 클라이언트로 통신하는 메시지를 응답(response) 메시지라고 한다. 웹에서 화면전환(새로고침) 없이 이루어지는 동작들은 대부분 비동기 통신으로 이루어진다. 비동기통신을 하기위해서는 클라이언트에서 서버로 요청 메세지를 보낼 때, 본문에 데이터를 담아서 보내야 하고, 서버에서 클라이언트로 응답을 보낼때에도 본문에 데이터를 담아서 보내야 한다. 이 본문이 바로 body 이다. 즉, 요청본문 requestBody, 응답본문 respons..

IPv4 IPv6 란? IPv4 IPv6 차이점? [내부링크]

IPv4 IPv6 란? IPv4 IPv6 차이점? IPv4 현재 네트워크 계층의 프로토콜은 IPv4 Internet Protocal version4 를 사용한다. (현재 대부분 사용되고 있는 아이피) 현재 아이피주소는 버전 4로 4영역으로 나누어진 최대 12자리의 번호로 이루어져 있다. ex) 127.0.0.1 192.12.100.2 . . 숫자로 구성된 인터넷 공인 주소이고 점으로 구분한다. 각 영역의 숫자는 0 ~ 255 까지의 숫자로 표현할 수 있고, 한 영역의 256 (2^8) 가지의 경우의 수를 표현할 수 있다. 비트로 표현하면 각 영역은 8비트로 이루어지며 총 4영역이므로 8 *4 = 32 비트 체계이다. 32비트로 이루어진 IPv4 는 최대 약 40억개(2^32 = 4,294,967,296 ..

[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기. [내부링크]

쉘 스크립트 (Shell Script) shell을 사용해서 프로그래밍을 할 수 있다. 주로 리눅스 등 서버작업의 프로그래밍 시 사용되며 생각보다 자주 사용된다. 쉘 스크립트는 파일안에 스크립트 작성 후, 실행 시 해당 스크립트가 실행되는 방식으로 이루어진다. 파일의 가장 위 첫라인은 #!/bin/bash 로 시작된다. * 이때 #는 주석을 의미하는 것이 아니다. 쉘스크립트 파일은 실행권한을 가지고 있어야 실행시킬 수 있다. 간단한 쉘 스크립트를 만들어서 실행 해보자. $ vi forever.sh vi [쉘 파일명]을 입력하여 쉘 파일 생성/편집 모드로 들어간다. 필자는 파일명은 forever.sh 로 만들어 보겠다. * shell script의 파일 형식은 관습적으로 "sh" 확장자를 사용한다. 이는 ..

로드 밸런싱이란? Load balancing [내부링크]

로드 밸런싱 Load balancing 로드밸런싱(부하 분산) 은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것을 의미한다. 서버에 가해지는 부하(로드) 를 분산(밸런싱) 해주는 기술이다. 사업의 규모가 확장되고 클라이언트의 수가 증가하게 되면 기존 서버로 정상적인 서비스가 불가하게 되는 경우가 발생하는데, 이러한 증가 트래픽에 대처할 수 있는 방법은 1. Scale up: 서버자체의 성능을 높이는 것. 2. Scale out: 여러대의 서버를 두는 것. 이 있다. Scale out 방식은 여러대의 서버로 트래픽을 균등하게 분산하는 로드 밸런싱이 반드시 필요하다. 주요 기능 NAT(Network Address Translation) 사설 IP 주소..

[갓성비 끝판왕] 샤오미 미지아 캡슐 커피 머신 5세대 3달사용 후기. [내부링크]

만족도 장점:- 캡슐호환 가능(가장 강려크한 강점): 일리, 네소프레소, 스벅 커피까지 삽가능. - 저렴한 가격. 7만원대. 타경쟁사 최소 10만원대부터 시작 (일리, 네소) - 디자인이 매우 깔끔. 콤팩트한 크기. 단점:해외배송이라 배송이 늦다 (약 2주) - 대신 저렴하니까 ok 물통이 작아 물이 금방 닳는다. - 대신 컴팩트하니까 ok공짜캡슐 20알은 맛이 없다. -공짜니까 ok (에쏘로 뽑아서 라떼로 먹으면 먹을만하다) 해외제품이라 110v콘센트 인데 - 돼지코를 같이 보내주기때문에 ok 일단 약 3개월 사용한 전체적인 후기. 샤오미 해외배송이라, 약 2주 기다려 받은 샤오미 미지아 캡슐커피 머신 5세대.코시국으로 카페마저 못가게 하는 바람에 지르게 되었는데디자인도 이쁘고 가격도 착한데..

ping / telnet / tracert 란? 서버접속 가능여부 체크하기 [내부링크]

cmd창에서 특정 서버 접속가능 여부 체크방법 1. ping 현재 접속 네트워크(출발지 서버)에서 목적지 서버 접근가능 여부 확인 사용법: ping [목적지 서버IP] ex) 응답이 없으면(ping이 되지 않으면) 방화벽이 오픈되지 않은 것이다. 2. Telnet 목적지 서버의 특정 서비스가 살아 있는지 여부 확인. ping은 연결에 대한 부분만 체크한다. 사용법: telnet [목적지 서버IP] [서비스PORT] ex) $ telnet 8.8.8.8 80 Trying 8.8.8.8... 계속 대기 중이면 방화벽 오픈이 안 되었을 가능성이 큼. $ telnet 8.8.8.8 80 Trying 8.8.8.8... telnet: Unable to connect to remote host: Connection..

[DBMS] MySQL dump / import. 디비 덤프 및 임포트 하기 [내부링크]

MySQL dump / import. 디비 덤프 및 임포트 하기 1. Dump - 전체 스키마 dump $> mysqldump -u[사용자아이디] -p[패스워드] 데이터베이스명 > 경로 및 저장될 파일명.sql // ex) mysqldump -uroot -p1234 testdb > /root/backup/testdb.sql - 특정 테이블 dump $> mysqldump -u[사용자아이디] -p[패스워드] 데이터베이스명 테이블명 > 경로 및 저장될 파일명.sql // ex) mysqldump -uroot -p1234 testdb testtb > /root/backup/testdb_testtb.sql 2. Import - 전체 스키마 Import *이때 testdb라는 데이터베이스 스키마는 미리 생성해놓아..

[linux] top 명령어. CPU 사용률 확인 [내부링크]

리눅스 top 명령어 -유닉스 계열의 시스템에서 프로세스 목록을 CPU 사용률이 높은 것부터 보여준다. -top 명령어는 시스템의 프로세스와 메모리 사용상태를 5초의 간격으로 업데이트 하여 화면에 출력한다. -어떤 프로세스가 CPU를 많이 차지하고 있는지 체크할때 실시간으로 볼 수 있다. 도대체 모라카는 것인지 . . . 차분히 한 줄 씩 분석해 보자. 서버 정보 top - 11:46:32 > 현재 서버의 시간 11시 46분 32초 up > 가동 중 35일째 가동 중 22:12 > 22시간 22분째 4 users > 4명의 사용자가 접속 중 load average : 0.06 , 0.15, 0.14 > CPU 부하율. 좌측부터 1분, 5분, 15분 평균을 측정. 프로세스 정보 Tasks: 151 tota..

[java] 자바 쓰레드 풀 ThreadPoolExecutor 란 ? [내부링크]

쓰레드를 무한으로 늘리게 되면 어떤 문제가 발생하나? - 성능 저하 - 쓰레드도 하나의 자원이므로 계속적으로 소모되면 자원고갈로 인해 메모리풀로 인해 서버가 다운될 수 있다. - 서버 입장에서 가장 중요한 것은 서버가 다운되지 않고 안정적으로 운영되는 것이다. 서버를 어떻게 안정적으로 운영할까? 쓰레드를 미리 만들어 놓고 재사용하는 방식으로 사용한다 == 쓰레드 풀. 왜 쓰레드 풀을 사용할까? 서버가 모든 요청에 대해 Thread를 매번 생성하게되면 성능상 문제가 발생할 수 있다. ThreadPool을 적용해 일정 수의 작업을 동시 처리하도록 한다. ThreadPoolExecutor 자바에서는 ThreadPoolExecutor라는 클래스를 지원해주는데 다음과 같은 생성자들이 존재한다. //ThreadPo..

[java] Thread Pool 쓰레드 풀이란 ? [내부링크]

프로세스 중 병렬 작업처리가 많아지면 스레드 개수가 증가되고 그에따른 스레드생성과 스케줄링으로 인해 CPU가 바빠져 메모리 사용량이 늘어난다. 따라서 시스템성능이 저하되고, 갑작스러운 병렬작업의 폭증에 따른 스레드 폭증을 막으려면 스레드 풀 Thread Pool을 사용해야 한다. Thread Pool 스레드 풀 스레드 풀은 작업처리에 사용되는 스레드를 제한된 개수만큼 정해놓고 작업큐 (Queue)에 들어오는 작업들을 하나씩 스레드가 맡아 처리한다. 그렇게 하면 작업처리 요청이 폭증되어도 스레드의 전체개수가 늘어나지 않으므로(제한해서 하나씩 처리하기 때문) 시스템 성능이 급격히 저하되지 않는다. 자바는 스레드풀을 생성하고 사용할 수 있도록 java.util.concurrent.Executors 클래스와 j..

[linux] yum daum 저장소 설정(yum install 에러 해결: Could not resolve host: None; Unknown error) [내부링크]

리눅스 환경에서 작업시 가장 멘붕오는 상황은 yum이 막혀있을때다........ ha ..... * YUM (Yellodog Updater Modified)이란 ? 리눅스의 패키지 설치 프로그램. 인터넷을 통해서 필요한 파일을 저장소에서 자동을 모두 다운로드 해서 설치하는 방식. 단, yum은 외부 레파지토리 서버랑 통신해야하기 때문에 네트워크 설치 후 사용 가능하다. yum 사용이 불가한 경우 에러코드: Loaded plugins: amazon-id, rhui-lb, search-disabled-repos Could not retrieve mirrorlist https://None/pulp/mirror/rhui-client-config/rhel/ server/7/x86_64/os error was 14..

스토리지란? DAS란? / NAS란? / SAN 이란? 차이점? [내부링크]

스토리지(Storage)란? 컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품이다. 컴퓨터의 하드디스크와 동일한 역할을 수행하는 부품이며, 스토리지를 직접 서버에 연결 할 수 있음. 대용량의 데이터를 저장하기 위해 별도의 스토리지용 네트워크를 구성할 수 있음. DAS / NAS / SAN 란? 다스 / 나스 / 산스 란 스토리지의 종류이고, 연결방식의 차이이다. 각 스토리지는 어떻게 연결되는지, 어떤방식의 차이인지 알아보자. DAS 와 NAS 는 하드디스크를 여러개 장착가능한 데이터 스토리지이며, DAS는 유선으로 외장하드처럼, NAS 는 와이파이나 랜으로 무선의 클라우드처럼 사용된다. DAS (like외장하드) Direct Attachted Storage PC나 서버에 다이렉트로 꽂아서(usb처..

MIME type이란? [내부링크]

MIME type이란? MIME : Multipurpose Internet Mail Extensions 이미지나 동영상 파일등은 바이너리 데이터(이진데이터 0과1)에 속한다. 초기 이메일 시스템에서는 아스키 코드로만 주고 받을 수 있었기 때문에, 본문의 텍스트 뿐만 아니라 첨부파일도 전송하기위해 바이너리 데이터인 첨부파일을 아스키코드로 인코딩 하는 방법을 찾아야 했다. Multipurpose Internet Mail Extension. 직역해보자면 다목적 인터넷 메일 확장. 즉, 바이너리 데이터인 첨부파일들을 아스키코드로 인코딩하여 본문에 덧붙이겠다(Extension)는 뜻이다. 전송 시 인코딩된 바이너리 데이터(사진, 동영상 등)가 어떤 타입인지 명해주어야 수신 측에서 그 타입대로 해석한다. 현재는 이..

직장인 연말정산. + 홈택스 공제신고서 수정법(월세 세액편) [내부링크]

참고포스팅 월세 세액공제란?: https://cheershennah.tistory.com/165 직장인 연말정산. 월세 세액 소득 공제 챙기세요!! 월세세액공제란? 직장러분들 연말정산 타이밍이 다가왔습니다. 월세 반전세 등 세를 내고 살고 있는 직장인이라면 꼭 챙겨먹어야 할 것! '월세 세액공제' 입니다. 민간 주택에 월세로 거주하면 직접 계약서와 영 cheershennah.tistory.com + 홈택스 공제신고 수정법 입니다. 공제정보를 직접확인하고 틀린부분이 있을때는 직접 수정하셔서 신청하실수 있습니다. 1. 국세청 홈택스 연말정산 간소화 서비스 접속 www.hometax.go.kr/ui/pp/yrs_index.html?isCdn=Y 국세청 홈택스 Copyright National Tax Serv..

직장인 연말정산. 월세 세액 공제 챙기세요!! 월세 세액공제란? [내부링크]

직장러분들 연말정산 타이밍이 다가왔습니다. 월세 반전세 등 세를 내고 살고 있는 직장인이라면 꼭 챙겨먹어야 할 것! '월세 세액공제' 입니다. 민간 주택에 월세로 거주하면 직접 계약서와 영수증을 제출해야 합니다. LH,SH,GH 등 공공임대 주택공사에 납입한 월세액은 직접 제출하지 않아도 연말정산 간소화 서비스에 자동으로 입력되지만 민간 주택인 경우, 자동입력 되지 않기 때문에 챙기셔야 해요! 저도 막 월세 세액공제 신청을 완료했는데요, 매년 해도 매년 헷갈리는 이것... 까먹기 전에 기록해보겠습니다 :) 월세 세액 공제란? 세액공제는 납세자에게 부과된 세액 중 일정 부분을 공제해주는 것이다. 쉽게말해, 월세로 1년간 낸 돈에 대한 세금을 깎아주는 것이다. 나도 받을 수 있을까?? 월세 세액공제 조건. ..

이석원 작가의 글을 오래 좋아 해 왔다. [내부링크]

어쩌면 가장 위안이 되는 말은 잘할거야 잘될거야 보다는 못해도 돼. 좀 못하면 어때. 였다. 이석원작가님의 글을 꽤 오랜시간 좋아 해 왔다. 그의 무거움과 가벼움 그 사이의 감성을 사랑한다. 누구의 말처럼 좋아하는 작가와 동시대에 살아간다는 것은 행운이자 행복한 일이다. ( 내가 맨날 편하게 들어가려고 남기는 블로그 링크. ) blog.naver.com/dearholmes 글을 위한 글 : 네이버 블로그 나이탐험가 blog.naver.com

당신은 꼰대 입니까? 나는 아닐 줄 알았지.. [내부링크]

늙은이, 기성세대를 뜻하는 '꼰대'라는 단어는 어느덧 우리 시대의 조류를 반영하는 상징이 됐다. 본래 아버지나 교사 등 나이 많은 남자를 가리켜 학생이나 청소년들이 쓰던 은어였으나, 근래에는 자기의 구태의연한 사고방식을 타인에게 강요하는 이른바 꼰대질을 하는 직장 상사나 나이 많은 사람을 가리키는 말로 사람을 의미하는 말로 변형된 속어이다. (위키백과 참조) 당신은 . . 꼰대입니까 ? MZ세대의 직장인들이라면 공감하겠지만 주변에서 꼰대 찾아보기란 아주 쉽다. 대놓고 꼰대, 은근한 꼰대, 젊은 꼰대, 말이 안 통하는 꼰대, 말은 통하는 꼰대.. 까지 아주 다양한 유형의 꼰대님(?)들이 존재하고 있다. 신입이자 팀 내에선 그나마 어린 편에 속했던 나는 (아직까지는) 절대로 꼰대라고는 불릴 수 없는 자리에 ..

리눅스 퍼미션이란? Permission (chown/chmod/umask) [내부링크]

퍼미션 Permission 이란?? 리눅스는 여러사용자가 접근가능한 멀티유저 운영체제이다. 퍼미션(권한)기능을 사용하여 특정파일이나 디렉터리에 대하여 읽기/쓰기/삭제 등의 권한을 설정하여 파일접근 권한을 제어하고 파일을 보호하기 위해 사용한다. 퍼미션의 종류 퍼미션 해석 original 디렉터리를 해석해 보겠다. (맨앞 타입을 제외하고 3자리씩 끊어서 해석) d[타입] rwx[소유자권한] r-x[그룹 소유자 권한] r-x[일반사용자권한] > original 파일은 디렉토리이다. > 소유자 root는 읽기/쓰기/실행이 가능 > 그룹소유자 root는 읽기/실행 만 가능 > 일반사용자 (root 외) 는 읽기/실행 만 가능 > 8진수를 이용하면 755 퍼미션에 해당됨. 퍼미션 변경 각 권한은 그에 해당하는 숫..

intelliJ 인텔리제이 SVN ignore files 설정 [내부링크]

intelliJ 인텔리제이 SVN 커밋 할때, ignore files 설정 1. 최상위 프로젝트 선택상태에서 SVN > Subversion > Set Property... *특정 파일 선택상태인 경우 error 2. + 클릭 > svn:ignore 선택 > 무시할 파일명 등록. 외 다음과 같은 파일들은 제외시켜주어도 좋다. ### user template # IntelliJ project files target build *~ *.log .classpath .project *.ipr *.iws *.iml .settings .git .svn *.class *.bak

JetBrain - IntelliJ 인텔리제이 학생계정 무료 라이센스 사용법 (발급 및 연장) [내부링크]

이클립스를 사용하다가 젯브레인의 인텔리제이를 사용해 본 이들을 알겠지만 쌉 신세계를 경험할 수 있다. 뮤료와 유료의 차이를 여실히 느낄 수 가 있는데, 대학생 메일계정이 있으면 졸업년도까지 매년. 무료로 라이센스를 준다!!!!!! 갓 젯 브레인. 무조건 써보는게 개이득! !!!! 단, 매년 홈페이지에 들어가서 인증을 하고 재발급을 받아야함. (문제는 한번 사용해보면 헤어나올 수 없음. 무료 혜택끝나면 결국 결제하게 될 듯^*^) 아무튼 좋은건 나눠야 하닌껜. IntelliJ 인텔리제이 학생계정 무료 라이센스 발급하기 1. 인텔리제이 학생 라이센스 인증 링크 접속한다. https://www.jetbrains.com/community/education/#students Free Educational Lice..

Oracle TO_CHAR / MySQL DATE_FORMAT [내부링크]

Oracle의 TO_CHAR는 MySQL의 DATE_FORMAT과 대응된다. [Oracle] TO_CHAR select TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') from dual ////결과: 2021-01-11 01:10:20 [MySQL] DATE_FORMAT select DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s') //결과: 2021-01-11 01:10:20

크롬 브라우저 보안성 향상 업데이트 이슈(Mixed content) [내부링크]

Chrome 은 보안성 향상 및 https로 전환을 유도하기 위해 혼합 콘텐츠 차단에 대한 일정을 발표하였다. 크롬 단계별 보안차단 업데이트 내용 Mixed content(혼합 콘텐츠)란 ? 최초 HTML이 안전한 HTTPS 연결을 통해 로드될 때 혼합 콘텐츠가 발생하지만 다른 리소스(예: 이미지, 동영상, 스타일시트, 스크립트)는 안전하지 않은 HTTP 연결을 통해 로드됩니다. 이는 HTTP 콘텐츠와 HTTPS 콘텐츠가 함께 로드되어 동일한 페이지를 표시하므로 혼합 콘텐츠라고 하는데, 최초의 요청은 HTTPS 연결을 통해 보안 처리 됩니다. 최신 브라우저는 이 유형의 콘텐츠에 대한 경고를 표시하여 해당 페이지에 보안되지 않은 리소스가 포함되어 있음을 사용자에게 알려줍니다. Mixed Content (혼..

아파치 http -> https 리다이렉트 설정하기. Rewrite 엔진. [내부링크]

아파치 HTTP -> HTTPS 리다이렉트 설정하기. (feat. Rewrite Engine) 아파치 웹서버에 SSL 인증서를 적용하면 https로 접속하게 되는데 적용 후에도 사용자들은 http로 접속하기 때문에 리다이렉트 설정을 이용해서 http로 접속했을 시 자동으로 https 로 넘겨주는 설정을 많은 곳에서 하고 있다. 여러 방법 중 아파치 Rewrite 엔진을 사용해서 리다이렉트 시켜보자. 1. Rewrite엔진을 사용하기 위해서 http.conf 에서 사용 설정부터 해준다. vi http.conf #LoadModule LoadModule rewrite_module modules/mod_rewrite.so

코로나 집콕시대, IT개발자는 다 재택 할 거 같죠? [내부링크]

부제: 천만의 말씀, 만만의 콩떡인 부분입니다 ....천만의 천만의 말씀, 만만의 콩떡인 부분입니다.말씀, 만만의 콩떡인 부분입니다. 코로나 19 사태가 불러온 엄청난 반향. 21세기에 상상도 못 한, 마치 영화 속에서나 일어날 법한 일이 실제로 우리가 사는 세상에 일어나고 있다. 다른 건 몰라도 커피숍에서 커피 한잔 하던 일상이 이렇게나 간절해질 줄이야 누가 예상이나 했을까? 매일 아침마다 확인하는 뉴스 속의 두려운 숫자는 야속하게도 줄어들 기미가 보이지 않는다. 비대면 시대. 언텍트 세상. 안 그래도 각박한 세상 속에서 이제는 서로의 표정조차 볼 수 없어져 버렸다. 다들 얼굴을 반이상 가려야만 하고, 대면이 필요한 모든 일정이 줄줄이 취소되는 상황들이 이제는 이상하지도 않다. 아니, 오히려 당연해져 ..

JSON이란? / JSONP 란? 차이점 비교. [내부링크]

JSON이란? Java Script Object Notation 키와 값(key-value) 한쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다. http통신 시 데이터를 주고받을 때 흔히 쓰이는 데이터 포맷 (josn, xml... ) 중 하나이다. 비동기식 통신(ajax)을 위해, 넓게는 xml을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다. JSON 데이터 형식 //JSON var json={"key1":"value1" , "key2":"value2"} JSONP란? JSON with Padding 클라이언트 단이 ..

[IT취업] SI? SM? Solution? 웹개발 분야 차이점? 장단점? 알아보자. [내부링크]

※먼저 필자는 현재 Solution 업계에 몸 담고 있으며, 타 업계에 대한 이야기는 주변의 경험담을 바탕으로 한 정보임을 알립니다. 선행글 참조 포스팅: cheershennah.tistory.com/153 [IT취업] SI? SM? Solution? 이 뭔가요? 나는 어디로 가야 할까? ※먼저 필자는 현재 Solution 업계에 몸 담고 있으며, 타 업계에 대한 이야기는 주변의 경험담을 바탕으로 한 정보임을 알립니다. 예비 신입 개발자의 최대 고민. 나는 어느 분야로 가야 할까? IT 웹 cheershennah.tistory.com SI와 Solution의 차이점? 앞 글의 예시에서 알 수 있듯이 둘의 가장 큰 차이점은 자사 솔루션을 가지고 있느냐 없느냐의 차이이다. SI는 아무것도 없는 무(無)의 상..

[IT취업] SI? SM? Solution? 이 뭔가요? 나는 어디로 가야 할까? [내부링크]

예비 신입 개발자의 최대 고민. 나는 어느 분야로 가야 할까? ※먼저 필자는 현재 Solution 업계에 몸 담고 있으며, 타 업계에 대한 이야기는 주변의 경험담을 바탕으로 한 정보임을 알립니다. IT 웹개발 분야는 크게 SI / SM / Solution 업계로 나누어진다. SI가 뭐냐? SI - System Integration, 시스템을 통합/구축하는 일이다. 대기업이나 공기업 등 갑이 되는 측에서 필요한 웹/프로그램 개발 프로젝트를 추진한다. 직접 개발하는 일은 거의 없다. 외부 하청 개발업체들을 입찰시키거나 개발인력 공급업체를 통해 개발 프리랜서를 고용하는 방식으로 프로젝트가 시작된다. 설계부터 시작해서 새로운 시스템을 구축하거나, 이미 만들어진 프로그램을 전반적으로 리뉴얼 또는 업그레이드시키는 ..

메이븐이란? Maven 파헤치기. pom,repository,lifecycle ... [내부링크]

메이븐이란 Maven ? 프로젝트의 전체적인 라이프사이클을 관리하는 관리도구이다. 프로젝트 객체모델(Project Object Model: POM) 이라는 개념을 바탕으로 프로젝트의 의존성관리, 라이브러리관리, 프로젝트 라이프사이클 관리 기능등을 제공하는 프로젝트 관리도구이다. 플러그인을 기반으로 소스코드로부터 배포 가능한 산출물을 만들어내는 빌드 기능을 제공한다. 빌드란? build 소스코드 파일을 컴퓨터에서 실행 할 수 있는 독립 SW가공물로 변환하는 과정, 결과물 이다. 즉, 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등 (.xml, .jpg, .jar, .properties ..)을 JVM이나 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다...

보통의 개발자의 리얼 라이프. [내부링크]

※먼저 이 글은 현직 개발 1년 6개월 차가 느끼는 지극히 개인적인 생각임을 알립니다. The Programmers. 프로그래밍을 통해서 무언가를 만들어내는 사람들. 개발자, 프로그래머, 디벨로퍼, 소프트웨어 엔지니어.. 그들을 부르는 언어는 다양하다. 그들의 이미지를 한번 떠올려보자면, 까만 배경에 알아볼 수 없는 영어들로 빼곡히 채워진 화면을 들여다보며 우다다다다 키보드를 갈겨(?)대면 유저들이 사용하는 프로그램, 웹사이트, 어플리케이션 등이 뚝딱뚝딱 만들어지는. 뭐 그런 . . you know? 이제는 우리의 생활의 일부가 되어버린 구글, 페이스북, 카카오 등 내로라하는 IT기업들이 떠오르고 그것들을 만들어내는 자들은 왠지 똑똑하고, 창의적이고, 능력자 일 것만 같다. 나도 개발자!! (라 쓰고 생..

비전공자에서 개발자로 전향. 가능할까? [내부링크]

국비교육과정을 통해 비전공자에서 개발자로 전향. 가능할까? 결론부터 말하자면 국비교육과정이 개발 신입으로써 구직을 하는데에 분명히 플러스 요소가 된다! 그러나 국비교육 과정 하나로 개발자로서의 실력을 갖추기에는 턱없이 부족하고, 이 사실을 회사에서는 너무나도 잘 알고 있다. 그럼에도 불구하고 플러스가 되는 이유는 이 이력이 당신의 개발하고자 하는 의지를 증명해줄 것이고, 최소한 서류 광탈은 면할 수 있도록 기회를 주는 것이다. 이 정도만 해도 전향자 입장에서는 매리트가 있지 않을까? 이 글을 읽고 있는 사람이라면 국비지원 교육에 관심을 가지고 있는 사람이라는 가정하에, 지금부터 경험자의 입장에서 국비교육과정의 현실, 과정에 도움이 될 만한 팁들을 써 보도록 하겠다. IT국비지원 교육이란? 국비교육은 평균..

개발을 좋아하지는 않습니다만, 개발자입니다. [내부링크]

개발을 좋아하는 개발자는 과연 몇이나 될까? 주변에만 봐도 개발이 좋아서 한다는 개발자는 가뭄에 콩 나듯 찾아보기가 어렵다. 나는 컴퓨터 공학 전공자이기는 하지만 개발이 지지리도 싫었다. 그래도 어쩌겠나, 평범한 대한민국 청년으로서 취업을 해야 하고 먹고살아야 했기에 개발 공부를 하고 개발 분야로 취업준비를 했다. 운이 따라 주었는지 취업난 시기에 비교적 빠른 시기에 취뽀를 하게 되었으나, 인생이란 얄궂은 놈은 절대로 나의 계획대로 흘러가는 것이 아니었다. 실제로 일하게 된 부서는 개발직이 아닌 전기분야로 발령이 나게 되었고, 그 안에서의 포지션은 개발 기획 쪽이긴 했지만 기대와는 완전히 엇나간 업무로 첫 사회생활을 시작하게 되었다. 겉으로 볼 때 취업을 빨리 한 점, 공사 계열이라서 업무환경이 편했던 ..

[JAVA] Try-Catch문이란? 예외처리하기/예외던지기 [내부링크]

* 선행되면 좋을 참고 포스팅 cheershennah.tistory.com/144 에러/예외처리란? Error/Exception Handling 에러란? Error 프로그램 실행중 어떤원인에 의해 오작동하거나 비정상 종료된 경우. 이를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 컴파일에러 Compile Error, 와 런타임 cheershennah.tistory.com Try-Catch문이란? 1)예외처리하기 Try-catch문은 예외를 처리하기 위한 구문이다. try-catch문의 구조 try { //예외발생할 가능성이 있는 문장 }catch(Exception1 e1) { //Exception1이 발생했을 경우, 이를 처리하지 위한 문장적는다. //보통 이곳에 예외메세지를 출력..

[JAVA]에러/예외처리란? Error/Exception Handling [내부링크]

에러란? Error 프로그램 실행중 어떤원인에 의해 오작동하거나 비정상 종료된 경우. 이를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 컴파일에러 Compile Error, 와 런타임 에러 Runtime Error 로 나눌수 있다. 외에도 논리적 에러 Logical Error가 있다. 컴파일에러 Compile Error 말그대로 컴파일 시 (실행 전) 발생하는 에러. 런타임 에러 Runtime Error 프로그램 실행도중 발생하는 에러. 논리적 에러 Logical Error 컴파일도 잘 되고, 실행도 잘 되지만 의도한 것과 다르게 동작하는 에러. ex) 창고의 재고가 음수가 된다던가, 게임에서 캐릭터가 총알을 맞아도 죽지 않는 경우가 이에 해당됨. 소스를 컴파일하면 컴파일러가 소스..

Linux환경에서 Java InstallCert를 사용하여 외부 SSL/TLS인증서를 Import 하기. [내부링크]

Linux환경에서 Java InstallCert를 사용하여 외부 SSL/TLS 인증서를 Import 하기. Java를 사용하여 HTTPS로 remote 사이트에 연결 또는 인증서 없이 HttpsURLConnection을 사용하면 SSLHandshakeException 이 발생한다. PKIX path building failed javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requ..

아파치Apache - 톰캣 Tomcat 연동하는 이유? AJP란? [내부링크]

참고포스팅: 아파치란 ? 톰캣이란 ? 아파치와 톰캣의 차이점? cheershennah.tistory.com/54 아파치란? 톰캣이란 ? (aka. 아파치 != 톰캣) 웹서버 vs 와스 아파치(웹서버)와 톰캣(와스)의 차이점. What is the deference between Aphache and Tomcat ?? (aka. 아파치 != 톰캣) 그동안 아파치 톰캣이 곧 아파치인줄 알았는데 이 둘은 엄연히 다른것이라는 사실을 깨.. cheershennah.tistory.com 왜 아파치와 톰캣을 연동할까? 와스에도 웹서버기능이 있는데 왜?? Web Server와 WAS를 같이 사용할까? 웹서버 없이 WAS만 사용한다고 가정해보자. 웹페이지에는 정적 data뿐만 아니라 동적 data도 함께 존재한다. 톰캣..

크롬 메모리 부족 다운 현상 out of memory 해결법!!! 윈도우10 가상메모리 설정 [내부링크]

크롬 메모리 부족 다운 현상 out of memory 해결법!!! (feat. 윈도우10 가상메모리 설정) + 2주 사용 결과 쌉해결!!!! 했습니다 ! 다들 저넘이랑 굿바이 하세요오 ~~~ WTF? who the f are you ?!?!!? 일을 하면서 언제부턴가.. 크롬을 사용하던 도중 저놈의 out of memory 오류코드가 뜨면서 브라우저가 다운되는 현상때문에 딥빡이 친적이 한두번이 아니었다. 이해가 안가는건 PC 성능을 실시간으로 띄워도 딱히 CPU나 메모리가 부족하지 않고 심지어 넉넉한 상황에서도 크롬은 자꾸만 아웃오브 메모리를 외쳐대었다. 하.... 개발자하면 다 컴퓨터박사인지 아는데 소프트웨어 개발자인 나는 하드웨어에는 잼병이어서 도대체 이 현상의 고질적인 문제가 뭔지 당최 알 수가 없..

NFS 란? Network File System. NFS 구축해보기 [내부링크]

NFS Network File System. 네트워크 파일 시스템. - 네트워크 상에서 파일시스템을 공유하도록 설계된 파일 시스템. - 다른서버의 파티션을 마치 내 로컬영역인 것처럼 네트워크를 이용하여 사용할 수 있음. -한 개의 서버에 NFS로 여러대의 웹서버로 연결할수 있어 여러클라이언트에서 한 서버의 정보를 공유할 수 있다. NFS 구축하기 example NFS 서버(192.168.123.123) 구축 순서 1. NFS서버 패키지 설치 [root@web ~]# yum install portmap nfs-utils* libgssapi 2. NFS exports 설정 - 마운트를 허가할 디렉토리 및 호스트 목록 설정 #NFS 서버의 특정 IP호스트 접속 허용 설정 [root@web /]# vi /etc..

프록시 서버 란? Proxy Server [내부링크]

프록시 Proxy 의 사전적 의미는 대리인이다. 즉, 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해준다. 컴퓨터 네트워크에서 다른 서버상의 자원을 찾는 클라이언트의 요청을 받아 중계하는 서버를 말한다. 쉽게 말해 중계서버라고 생각하면 된다. 서버와 클라이언트 사이의 중계자 역할로 대리통신을 수행하는 것을 가리켜 '프록시', 그 중계기능을 하는 서버를 '프록시 서버'라고 부른다. 주로 보안상의 문제로 직접 통신을 송수신할수 없는 상황에서 프록시를 이용하여 중계통신을 하는데 사용한다. 프록시 서버 종류. 프록시 서버는 서버위치에 따라 크기 두가지로 나뉜다. 1. 포워드 프록시 Forward Proxy 예를 들어 그림과 같이 클아이언트가 example.com에 ..

Tomcat 파일생성 권한 - UMASK 설정 [내부링크]

Tomcat에서는 기본 보안설정이 정해져 있다. 폴더 : 777 rwx 파일 : 666 rwx tomcat 에서 구동되는 Web application에서 파일을 생성했는데 permission이 기본 설정인 -rw- r-- --- 으로 생성되어 해당 파일을 읽을 수가 없는 현상 발생. 이미지 파일업로드라던지 기타 tomcat 어플리케이션을 통해 업로드된 파일에 대한 접근권한을 주기위해서는 권한을 변경해주어야함. catalina.sh 파일에서 UMASK설정을 수정하면 된다. vi catalina.sh # Set UMASK unless it has been overridden if [ -z "$UMASK" ]; then UMASK="0027" fi umask $UMASK 위구문의 UMASK="0027" 을 "..

쿠키Cookie와 세션Session 이란? 차이점. [내부링크]

쿠키와 세션 사용하는 이유 HTTP프로토콜의 특징이자 약점을 보완하기 위해 사용한다. 먼저 http프로토콜의 특징이자 약점을 살펴보자. 1. Connectionless. Protocol 비연결지향 클라이언트가 서버에 요청했을때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식. 2. Stateless Protocol (상태정보 유지안함) 클라이언트의 상태정보를 가지지 않는 서버처리방식. 클라이언트와 첫번째 통신에서 데이터를 주고받았다 해도, 두번째 통신에서 이전데이터를 유지하지 않는다. BUT, 실제로는 데이터유지가 필요한 경우가 많다. 정보가 유지되지 않으면 매번 페이지 이동시 마다 로그인을 해야하거나 장바구니에서 상품을 선택했는데 구매페이지에서 상품의 정보가 사라지거나 하는 경우가 발생할 것이다..

SMTP 기본 명령어 [내부링크]

SMTP basic commands HELO (hello) 클라이언트는 SMTP 서버에 helo명령을 전송하여 SMTP를 식별하고 대화를 시작한다. 일반적으로 SMTP클라의 도메인이나 IP주소를 명령과 함께 전송한다. ex) "HELO test.co.kr" MAIL FROM 보낸이 메일주소 지정. 새 메일 트랜잭션이 시작되고 있는다는 것을 SMTP서버에 알리고 서버가 모든상태 테이블과 버퍼 등을 재설정하도록 한다. RCPT TO (recipient to) 받는이 메일주소 지정. 주어진 전자메일 메세지에 대해 여러번 반복하여 메세지 전달 가능. DATA 메세지 본문내용의 전송 시작. DATA명령이 클라에서 서버로 전송된 후 서버는 354 응답 코드로 응답하고 그 후 메세지 내용을 서버로 전송한다. DATA..

나스란 ? NAS storage [내부링크]

NAS Network-Attached Storage 네트워크 연결 스토리지. - USB나 CD처럼 컴퓨터에 직접 연결하는것이 아니라, 네트워크 즉 인터넷을 통해 데이터를 주고받는 저장장치. - 클라우드가 가진 기능을 모두 가지고 있으며, 쉽게말해 클라우드를 개인서버에 두고 개인용으로 사용하는 것과 같다. - 일반적으로 소형 CPU에 용량이 큰 하드디스크를 연결해서 사용한다. 용도 - 데이터공유, 백업 (클라우드 대비용) - NAS의 원래 목적은 파일서버의 목적인 데이터 공유였다. 하지만 지금은 기능이 계속늘어나 영상스트리밍, 트랜스코딩 스트리밍, 토렌트, 데이터백업, 챗봇, 음악스트리밍, 가상머신, 이메일 서버, 웹페이지 호스팅 등 용도가 다양해지고 있다. 장점 - 대용량 지원 클라우드는 용량에 따라..

Rsync 알싱크 란? [내부링크]

Rsync Remote Synchronization. 원격 동기화 원격으로 파일과 디렉토리( /data 등) 을 복사하고 동기화하기 위해 사용하는 툴. 네트워크 프로토콜. 서버서버간 사용자가 원하는 특정 디렌토리 및 파일을 동기화해 준다. 장점 원격 시스템으로부터 파일을 효율적으로 복사 및 동기화할 수 있다. link, device, 파일의 소유자와 그룹권한 등 파일의 부가정보까지 복사가 가능하다 빠르다. Rsync는 remote-update 프로토콜을 이용해서 차이가 있는 파일만 복사한다. 처음에는 모든파일 및 디렉토리를 복사 후, 이후부터는 출발지와 목적지 간의 다른부분 만을 복사하기 때문에 빠르고 효율적으로 작동한다. 데이터를 압축해서 송수신하기 때문에 적은 대역폭을 사용한다. 파일크기 또는 시..

스프링 시큐리티란? Spring Security [내부링크]

스프링 시큐리티 Spring Security web.xml에 Spring-security 설정. contextConfigLocation /WEB-INF/config/spring/applicationContext.xml filter-name: 반드시 springSecurityFilterChain 으로 준다. 스프링시큐리티 내부에서 해당이름으로 클래스를 찾기때문. 해당필터가 적용될 URL패턴은 모든패턴을 의미하는 /* 로 준다. * 주의 패턴을 예를들어 사용하는 웹페이지 확장자 .do등 이라고 해서 *.do를 주면안됨. Spring security에서는 내부적으로 작업위해 사용되는 url들이 있는데 이 url들이 뒤에 확장자가 붙지 않는다. ex) 로그인 인증관련 작업 url은 j_spring_sercu..

도메인 기반 이메일 인증 SPF / DKIM / DMARC [내부링크]

SPF, Sender Policy Framework 메일서버등록제메일 발송서버 정보(IP)를 사전에 DNS에 등록하여 수신자로 하여금 이메일에 표시된 발신자 정보(IP)가 실제 메일서버의 정보와 일치하는지를 확인할 수 있도록 인증합니다. 수신시 발신자 위조 여부 확인을 위한 SPF 기능이 가동되므로 사칭메일의 유입을 차단한다. SPF를 이용한 이메일 인증절차발신자 : 메일 발송서버 정보(IP)와 정책을 나타내는 SPF 레코드를 해당 DNS에 등록수신자 : 이메일 수신시 발송자의 DNS에 등록된 ‘SPF 레코드’를 조회하여 해당 이메일에 표시된 발송IP와 대조하여 사칭여부 판단 및 수신여부를 결정 DKIM Domain Keys Identified Mail 도메인 키 인증 메일메일 헤더에 디지털 서명을 ..

오라클 에러 ORA-01950: 테이블스페이스 권한이 없습니다. [내부링크]

오라클 에러 ORA-01950: 테이블스페이스 [some user]의 권한이 없습니다.에러 시 , 객체에 대한 권한은 있으나 테이블 스페이스에 할당량을 부여하는 권한까지 주어져야 CRUD가 가능하다.SYS계정으로 접속해서 권한을 부여해주어야함. alter user [USERNAME] default tablespace users quota unlimited on users;commit; 본인이 사용하고자 하는 특정유저 네임입력 해준후다시 해당 계정으로 접속하면 실행될것이다. 보통 ALTER 문은 자동 COMMIT이 되지만 혹시 모르니 커밋까지 해주자 ! !

REST 란? Restful API 란? [내부링크]

REST 란 ? REpresentational Satate Transfer 자원을 표현으로 구분하여 해당 자원의 정보를 주고받는 모든것을 의미한다. 즉, 자원(resource)의 표현(representation)에 의한 정보전달. - 자원 : 해당 소프트웨어가 관리하는 모든 것 ex) 문서, 그림, 데이터, 해당 소프트웨어 자체 등.. - 자원의 표현: 자원을 표현하는 지정 방식, 또는 이름 ex) 예를 들어 DB의 학생정보가 자원일 경우, 'students'를 자원의 표현으로 지정한다. 정보전달 데이터가 요청되는 시점에 자원의 정보를 전달한다. JSON 또는 XML을 통해 데이터를 주고받는 것이 일반적이다. WWW( world wide web) 과 같은 분산 하이퍼미디어 시스템을 위한 SW개발 아키텍처..

[ORACLE]계층형 쿼리 Hierarchical Query [내부링크]

계층형 쿼리 Hierarchical Query 평등한 관계가 아닌 계급적이고 수직적인 구조. 노드 각 품목이 하나의 노드가 되며 실제 테이블에서는 하나의 로우에 대응 부모 트리주고에서 상위노드. 자식 트리구조에서 하위노드 리프 자식노드가 없는 최하위 노드 레벨 트리구조에서 각각의 계층. 루트= 레벨1 계층형 쿼리작성 [DDL] CREATE TABLE BOM ( ITEM_ID INTEGER NOT NULL, -- 품목식별자 PARENT_ID INTEGER, -- 상위품목 식별자 ITEM_NAME VARCHAR2(20) NOT NULL, -- 품목이름 ITEM_QTY INTEGER, -- 품목 개수 PRIMARY KEY (ITEM_ID) ); 1. 일반 조인 사용한 계층형 쿼리. SELECT b1.item_..

[SQLD] 옵티마이저optimazer / 인덱스index / 조인join [내부링크]

1. 옵티마이저와 실행계획 (1) 의미 - 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다. 즉, SQL실행시 실행계획을 수립하는 것이다. - 사용자 요구사항을 만족하는 결과를 추출할 수 있는 다양한 실행 방법들 중에서 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할이다. - 옵티마이저가 선택한 실행 방법의 적절성 여부는 질의의 수행 속도에 가장 큰 영향을 미치게 된다. - 옵티마이저는 실제로 SQL문을 처리해보지 않은 상태에서 최적의 실행 방법을 결정해야 하는 어려움이 있다. (2) 옵티마이저 종류 ① 규칙기반 옵티마이저 (RBO) - 규칙 : 보편 타당성에 근거한 것들 - 우선순위순위엑세스기법설명1Single row by rowidROW ID를 통해 테이블에 하나의 행..

[Network] [MailServer] DNS/ MX레코드/ A레코드 란? [내부링크]

DNS (Domain Name Server) 란 ? 인터넷은 서버를 유일하게 구분할수 있는 IP주소를 기본체계로 이용한다.이 IP주소는 192.168.123.123 등의 형식으로 숫자로 이루어진 조합이라 이를 DNS를 이용해 인간이 기억하기 편한 언어체계로 변환작업이 필요한데 이 역할을 DNS가 하는 것이다. MX (Mail Exchange)레코드 / A(Address)레코드 : 특정 도메인에 대한 메일을 수신하는 메일서버 지정 레코드 MX레코드는 메일 수신 측의 메일 서버를 표시하는 레코드이다. 이 정보를 바탕으로 메일이 어느메일 서버에 도착해야할지 결정됨. *주의 : DNS설정으로, 다른 메일 서버의 MX레코드가 혼재하면, 메일이 기대하는 메일 서버에 전달되지 않을수도 있다. 어떤 도메인에 mx레코드..

[Network] NAT / PAT 란? [내부링크]

NAT(Network Address Translation) NAT는 사설 네트워크에 속한 여러 개의 호스트가하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위해 사용한다. 즉, 외부망과 내부망을 나눠주는 기능을 한다 . ex) 공유기 NAT 특징- 내부에서 외부로 통신 가능- 외부에서 내부로 통신 불가 NAT 장점- 하나의 공인IP로 여러 사설 IP를 사용가능. 절약. - 사내망 IP주소를 외부로 알리지 않음으로서 외부로 부터의 침입/공격 차단 사설 IP대역 1. A CLASS ( 0.0.0.0 ~ 127.255.255.255 )-사설 IP 대역 : 10.0.0.0 ~ 10.255.255.2552. B CLASS ( 128.0.0.0 ~ 191.255.255.255 )-사설 IP 대역 : 172.16..

[Linux] su / su - / sudo 명령어와 차이점 [내부링크]

su / su - / sudo 명령어와 차이점 일반 user 가 root 권한 사용하기 위해서는su (switch user) 혹은 sudo (super user do) 명령어를 사용한다. su 명령어 현재계정에서 로그아웃하지 않고 다른계정으로 전환하는 명령어.ex)su rootsu - root su 명령어 옵션 -c : 쉘을 실행하지 않고, 주어진 명령만을 수행. -s : 지정된 쉘로 로그인 - , -l : 지정사용자의 환경변수를 적용하여 로그인 su 명령어 실행시 pw를 물어본다.여기서 - 의 유무차이가 있다. su root 계정의 환경변수 가져오지 않고 root 계정으로 전환. 즉, 현계정의 환경변수를 그대로 사용하게 된다. su - root계정의 환경변수를 가져와서 root 계정으로 전환한다. 로그..

[NETWORK]TLS (Transport Layer Security) = SSL (Secure Sockets Layer)이란? [내부링크]

SSL (Secure Sockets Layer)인터넷 통해 클라이언트와 서버가 통신할때 통신내용을 안전하게 보호하는 방법. SSL이 제공하는 기능 1. 서버인증 server Authentication2. 클라이언트 인증 client Authentication3. 데이터 암호화 Data Encryption 인증 Authentication통신의 상대방이 검증된 값이 맞는지 확인하는 절차. 암호화 데이터가 누출되더라도 외부에서 내용을 해독할 수 없도록 암호화하는 것 SSL사용하는 URL은 https라는 스킴 shceme을 사용하여 구분한다.ex) https://www.helloworld.com TLS (Transport Layer Security) 최근버전의 SSL은 TLS로 이름이 변경되었다. 공개키 Pub..

[jquery] DOM selector 접근 [내부링크]

기본 selector* : 모든요소 element : 지정된 요소 이름을 가진 모든 요소 #id: 지정된 id 특성값을 가진 모든 요소들 .class: 지정된 class특성값을 가진 모든 요소들selector1, selector2 : 하나이상의 셀렉터와 일치하는 모든 요소들 (셀렉터 조합시 .add() 메서드를 사용하면 효율적) 계층 탐색 selector조상과 후손 요소 : ancestor(공백)descendant : 다른요소 하위요소들 탐색 selector ex) li a 부모와 자식 요소 : parent > child : 다른 요소의 직접적인 자식 요소들 탐색 selector (특정부모 요소의 모든 자식요소 탐색하려면 자식요소자리에 * 사용) 이웃 요소 : previous + next : 이전 요소의..

[Network]SPF란? Sender Policy Framework [내부링크]

SPF : Sender Policy Framework DNS (Domain Name Service)레코드의 한 유형으로 , 스팸 발송자가 전자 메일주소를 스푸핑하거나 도용하여 수천개 전자메일을 불법으로 보낼수 있는 전자메일시스템의 허점을 방지하기 위해 만들어짐. SPF는 메일서버 정보 사전에 DNS에 공개등록함으로써 수신자로 하여금 이메일에 표시된 발송자 정보가 실제 메일서버의 정보와 일치하는지 확인할 수 있도록 하는 메일검증 기술이다메일서버 등록제 라고도 불림. 메일전송시 기본적으로 사용하는 smtp (simple mail transfer protocol) 은 너무간단하여 실제 발송자 인증할수 있는 기능이 없기 때문에 이를 보완. SPF 작동방식DNS 기반의 스팸필터랑 기술로 메일 발송한 도메인에 대해..

[network]네트워크 텔넷(telnet) 명령어 - 포트(Port) 확인 [내부링크]

네트워크 텔넷(telnet) 명령어 - 포트(Port) 확인 1. 명령프롬프트 (cmd) 명령어 telnet [IP 또는 도메인] [포트] 성공 ex) 연결에 성공하면 위에처럼 [Telnet naver.com] 표시됨. http 기본 포트인 80 포트가 열려있는 것을 알 수 있다. 실패 ex) 해당 포트에 연결하지 못한다는 것을 알 수 있습니다. 2. 텔넷(telnet) 사용이 안되는 경우 텔넷 클라이언트 활성화 시켜주어야함. 1. [제어판] -> [프로그램 및 기능 or 프로그램 추가/제거] -> [Windows 기능 켜기/끄기] 2. [텔넷 클라이언트] 체크 -> [확인] 3. 텔넷 종료 ctrl + 대괄호 ] // 실행 빠져나오기 telnet> quit //텔넷 연결 종료

[spring] 어노테이션이란? @modelAttribute [내부링크]

@ModelAttribute = command object 이미지와 같이 @ModelAttribute는 클라이언트의 파라미터를 완벽하게 이해하고 있는 자바빈 객체 요구. 이 객체에 @ModelAttribute라는 어노테이션을 붙이면 자동으로 바인딩 해주고 중간과정은 모두 자동으로 생략해준다. @Controller public class HomeController { @RequestMapping (value"/", method = RequestMethod.GET){ . . . . } } 위 예시보면 바인딩 과정이 코드에 전혀 나타나있지 않고 전달인자에 @ModelAttribute를 넣는 것만으로 모두 생각이 가능해졌다. 만약 이 코드를 서블릿으로 대체해 보자면 아래와 같다 public class HomeC..

[java spring] 스프링프레임워크 <form:form> 태그 사용법 [내부링크]

스프링 프레임워크 태그 사용법 스프링프레임워크 form 태그라이브러리를 사용하기 위해서는 먼저 다음 taglib 설정을 페이지 상단에 추가합니다. 1. 옵션 없이 사용했을 경우 기본값 호출 URL이 /offbyone/boardForm.do 라고 가정하고, 옵션 없이 사용한 경우 form 태그: 결과 HTML: - id 속성은 "command" 가 기본값입니다.- action 속성은 자기 페이지의 URL 입니다.- method는 POST가 기본입니다 2. commandName과 modelAttribute 옵션 commandName 과 modelAttribute 옵션은 폼에 있는 요소들의 값을 채우기 위해서 사용될 객체를 request 로부터 찾을때 사용할 이름을 지정합니다. 두 옵션은 동일한 기능을 합니다..

[스프링]자바에서 설정파일(xml , properties.. ) 읽어들이기. [내부링크]

Apache Commons Configuration :애플리케이션 운영 환경 설정에 사용하는 기술- Apache commons 프로젝트 중 한 컴포넌트인 Configuration. Commons Configuration은 일반화된 설정 인터페이스를 제공함으로써 자바 애플리케이션이 다양한 소스에서 설정을 읽을 수 있도록 해준다. 자바에서 설정 파일 읽어들이는 방법 * 순서 : 1. [web.xml]선언된 listener클래스 ContextLoaderListener 의해 RootWebApplicationContext영역을 구성 applicationContext.xml org.springframework.web.util.Log4jConfigListener org.springframework.web.contex..

톰캣 tomcat 구조 파악하기. [내부링크]

톰캣 구조 파악하기. web 서버http 프로토콜 기반으로 web client (browser) 로부터의 요청을 서비스하는 기능을 담당하는 프로그램. ex) apache ..역할: html, image, xml 등에 대한 처리 담당 web Application 서버여러 web client의 요구를 web서버가 감당할수없는 기능을 구조적으로 web서버와 분리하기 위해 만들어진것으로 web application server(WAS) 라고 한다. ex) tomcat, weblogic, jeus, jboss.. 웹서버와 와스 차이점Web server와 WAS는 사용 목적이 다르다.web 서버: html, 이미지 요청등 정적데이터 요청을 처리하는데 빠르다.WAS : servlet , jsp 등 비즈니스 로직을 수..

Tiles 타일즈란 ? [내부링크]

타일즈란? Tiles 반복적으로 사용되는 header, footer와 같은 정보를 한곳에 모아둔 프레임워크. 화면 기본 구성 레이아웃 템플릿 정의하고 상속을 통하여 대부분 구조를 재사용할 수 있는 기능 및 설정파일을 통한 통합 관리를 통하여 확장성 있고 일관되게 페이지 구성을 관리한다. 관련 용어) Template는 페이지의 구조를 기술하고 Attribute는 구조내에서 실제 내용에 해당하며, definition은 Template(구조)에 Attribute(내용)을 연결하여 랜더링가능한 페이지를 기술한다. Template : 페이지 레이아웃을 의미하며, jsp 파일로 페이지의 기본 골격을 구성하고 각 페이지의 실제 구성 내용은 definition에서 설정되는 Attribute(실제 내용) 태그를 사용하여..

[java spring] ModelAndView 모델앤뷰 / ViewResolver뷰리졸버 란 ? [내부링크]

ModelAndView컨트롤러 처리 결과 후 응답할 view와 view에 전달할 값을 저장 및 전달하는 클래스 1 주요 생성자생성자역할ModelAndView(String viewName)응답할 viewModelAndView(String viewName, Map values)응답할 view와 view로 전달할 값들을 저장한 Map 객체ModelAndView(Stirng viewName, String name, Object value)응답할 view이름, view로 넘길 객체의 name 과 value2 주요 메소드메소드역할setViewName(String view)응답할 view이름 설정addObject(String name, Object value)view에 전달할 값을 설정addAllObject(Map ..

[network][mailserver]SMTP /POP3 / IMAP 란? [내부링크]

SMTP /POP3 / IMAP 란? 우리가 편지를 쓸때 우체통에 넣으면 보낸이의 동네 우체국에 모았다가, 다시 받는이가 사는 동네의 우체국으로 옮겨진 다음, 받는이에게 전해진다. 마찬가지로 이메일을 서로 주고받을때에도 이 우체국 역할을 해주는 곳이 필요하다. SMTP/POP3서버가 바로 우체국 역할을 하는 것이다. 편지를 보내는 것과 마찬가지로 이메일을 보내면 우선 보내는 사람이 사는 동네 우체국인 SMTP 서버에 저장한다. SMTP는 우리가 E메일을 송수신 할때 쓰는 전송규약이다.다음으로 SMTP서버에서 다시 받을사람의 POP3 서버로 보낸다. POP3는 SMTP서버에서 보낸 이메일을 읽어오는 프로토콜로, 즉, 받는이 동네의 우체국 역할을 한다. 이 POP3서버에서 수취인에게 배달된다. SMTP (S..

소스 말 때 형상관리 주용어 [내부링크]

주요 용어해 설 형상항목 (Configuration Item)형상항목이란 형상관리의 대상이 되는 것으로서 전체 시스템의 구성 요소를 계층적으로 분할한 각 레벨의 항목을 가리킨다. 예를 들면, 하드웨어 경우 시스템-서브시스템-조립체(assembly)-부품 (part) 등이, 소프트웨어 경우, 시스템-서브시스템-프로그램 또는 문서 등을 가리킨다. 기준선 또는 기준문서 (Baseline)기준선이란 대상 시스템에 대한 기술적인 통제를 하게 되는 시점 (milestone) 또는 그 시점의 기준문서를 가리킨다. 기준선에서는 다음 단계를 진행할 것인지의 여부에 대한 의사결정 ('go/no-go decision making)을 하게 되며, 다음 단계를 진행하기로 결정한 경우 그 시점까지의 산출물은 다음 단계에 대한 기..

[linux]Shell / shell script 란 ? [내부링크]

SHELL 이란?쉘(Shell)은 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다. 쉘은 Unix나 Linux에만 있는건 아니고 Windows운영체제나 다른 os에서도 Shell은 필수요소이다. 운영체제는 로그인한 사용자가 없다면 하나의 쉘도 실행되지 않은 상태이다.사용자가 로그인을 시도하면 운영체제는 id/pw 받아들이는 로그인 프로그램을 실행하고 입력한 ip/pw를 검증한 뒤 정상적인 사용자라면 쉘을 실행하여 사용자 세션을 넘겨준다. 역할: 사용자가 입력한 명령을 해석하여 실행해줌.쉘 내부 명령어: 스스로 실행하고 결과를 화면에 표시쉘 외부 명령어: PATH 환경변수에 지정된 경로에서 입력받은 명령과 같은 파일을 찾아 exec() 시스템콜을 호출하여 실행한 뒤 키보드와..

[Linux] rpm / yum 이란? [내부링크]

RPM , YUM 이란 ? RPM,YUM 은 리눅스의 패키지 패키지 설치 프로그램이다. 1. RPM (Redhat Package Manager) windows의 .exe 와 비슷하게 프로그램을 설치 한 후 바로 실행한다. 확정명은 *.rpm 이며 이를 패키지 라고 한다. RPM 은 패키지 인스톨을 하기 위해선 그 패키지의 필요요소를 전부 따로 다운 해야한다. 원래 RPM은 Redhat이라는 회사가 만든 리눅스에서만 쓸수 있는 패키지 인스톨이다. 패키지가 있는 CD를 넣고 RPM으로 돌리는 방식으로 사용하며 의존성이 강하다. 자주 쓰이는 RPM 사용법 설치 : rpm -Uvh [패키지 파일(*.rpm)] 삭제 : rpm -e [패키지이름] 이미 설치된 패키지 질의 : rpm -qa [패키지이름] 아직 ..

[Spring Boot] 스프링 부트 MVC 기본 환경설정 [내부링크]

스프링 부트 MVC 기본 환경설정 Project 소스구성 메인클래스: DemoApplication.java 프로퍼티파일: application.properties 환경설정파일: pom.xml >스프링 부트 기반으로 프로젝트 생성시 기존의 전통적인 웹어플리케이션 방식에서 필수로 관리 되어야 하는 톰캣설정 및 web.xml파일 등은 스프링 부트의 내부모듈에 의해서 구동시 자동설정 한다. 어플리케이션 실행 *프로젝트 생성시 application.properties 파일이 자동생성되며 빈 파일로 생성된다. 사용자가원하는 DB 드라이버 라이브러리설치와 jdbc설정 필요. *당장 결정이 안된경우 메인클래스에 Auto Configuration 작업중 DataSource설정 부분을 제외 시킬 수 있다. @EnableA..

[network]SSH란? (Secure Shell Protocol) [내부링크]

SSH란? Secure Shell Protocol 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과같은 Public network통해 서로 통신할 때 보안적으로 안전하게 통신하기 위해 사용하는 프로토콜. 사용 예) 1. 데이터 전송 ex) Gitghub - 소스코드를 원격 저장소인 깃헙에 푸쉬할때 ssh활용해 파일 전송. 2. 원격제어 ex) AWS 와같은 클라우드 서비스. - AWS인스턴스 서버에 ssh통해 접속하여 해당 머신에 명령. 그렇다면 FTP 나 Telnet 등 다른 컴퓨터와 통신위해 사용되는 프로토콜과 차이점? 가장큰 이유는 보안이다. 예를들어 예로든 두 프로토콜을 통해 로그인 정보 등 민감한 정보를 주고받는다면 정보를 직접 네트워크를 통해 넘기기 때문에 누구나 해당정보를 열람할수 있어..

[Linux]많이 사용하는 Linux 명령어 [내부링크]

Wild Card 사용법 (중요) - 사전숙지 필요 : Wild 카드는 여러 개의 파일 이름을 특정 규칙으로 선택할 때 사용되는 것으로 * 와 ? 두 가지가 있다* 는 길이에 상관없이 아무 글자가 와도 상관없다는 의미 (없어도 됨) - 주로 많이 사용? 는 1글자가 아무글자가 와도 상관없다는 의미example*.gm : 확장자가 gm 으로 끝나는 모든 파일이 대상이 됨 (1.gm, aaaa.gm 등등)?.gm : 확장자가 gm 으로 끝나는 1글자 길이의 파일이름이 대상이 됨 (1.gm, a.gm 등등)aaaa*.gm : aaaa로 시작하는 확장자가 gm 인 모든 파일 (aaaa.gm, aaaa1111.gm 등등)*aaaa*.gm : 파일 이름중간에 aaaa 가 포함된 확장자가 gm 인 모든 파일 (11a..

[JSP]내장객체 - request /response/ session 객체 [내부링크]

JSP 내장객체란? JSP 페이지 내에서 제공하는 특수한 레퍼런스 타입의 변수 JSP 페이지에서 사용할 수 있는 특수레퍼런스 타입 변수가 아무런 객체 선언/생성 없이 사용할 수 있는 이유는 JSP페이지가 서블릿으로 변환될 때, JSP컨테이너가 자동적으로 제공하기 때문이다. JSP 페이지 내장 객체 내장 객체리턴 타입(Return Type) 설명 request javax.servlet.http.HttpServletRequest 웹 브라우저의 요청 정보를 저장하고 있는 객체 response javax.servlet.http.HttpServletResponse 웹 브라우저의 요청에 대한 응답 정보를 저장하고 있는 객체 out javax.servlet.jsp.jsp.jspWriter JSP 페이지에 출력할 내용..

[DB][oracle] 함수 Function [내부링크]

함수 Function 란 (in Oracle) RETURN문 이용해 원하는 값 반환위해 만드는 것.오라클 함수는 프로시저랑 비슷하지만 IN 파라미터 이용가능. *프로시저와 함수의 차이 - 프로시저: 1.PL/SQL문으로 실행 2.RETURN 이 없음. - 함수1. 식의 일부로 사용2. RETURN 이 반드시 있다. 함수생성 EX) CREATE OR REPLACE FUNCTION test(함수이름) RETURN varchar (리턴값의 데이터타입) IS test VARCHAR2(100);BEGINtest := '함수 테스트';RETURN test; END; 실행쿼리 -> SELECT test() FROM DUAL; 결과 -> 함수 테스트 ** 오라클에서 대입연산자는 =가 아니라 := 이다.

[DB] 뷰 VIEW table [내부링크]

뷰 VIEW 가상테이블이다. 즉, 실제 존재하진 않지만 실제 테이블과 똑같이 사용할 수 있다.주로 보안문제로 사용한다. 보여주고자 하는 정보만 빼서 보여주는 것이다. SELECT / INSERT / DELETE / UPDATE 가능하나, 권한이나 조건에 따라 다름복잡한 쿼리문을 (조인/서브 쿼리 등) 미리 뷰로 만들어 사용하면 간단하게 검색 가능 - 이때는 INSERT/ UPDATE/ DELETE 안됨 ) 데이터의 액세스를 제한 - 보안위해 사용. 생성CREATE VIEW 뷰이름AS 뷰 내용 CREATE VIEW 뷰이름(컬럼명, 컬럼명 ... )AS 뷰 내용 수정CREATE OR REPLACE VIEW 뷰이름AS 뷰 내용 삭제 DROP VIEW 뷰이름 EX) 1. 보안적 측면의 뷰 -- 뷰를 생성한다(e..

[DB][oracle] 프로시저 Procedure [내부링크]

프로시저란 Procedure (in oracle) 기능(작업단위)를 미리 만들어놓고 호출하여 사용하는것. 빠른 쿼리 실행재사용성 프로시저 생성방법 1. 인수없는 경우 CREATE PROCEDURE 프로시저 이름IS[변수이름 데이터타입; -- 프로시저 내에서 사용할 변수선언변수이름 데이터타입;변수이름 데이터타입;..]BEGIN 기능구현;END; 2.인수있는경우 CREATE PROCEDURE 프로시저 이름(변수이름 IN 데이터타입, 변수이름 IN 데이터타입, ... )IS[변수이름 데이터타입;변수이름 데이터타입;변수이름 데이터타입;..]BEGIN 기능구현;END; 프로시저 호출방법 EXEC 프로시져 이름; --인수없는 경우.EXEC 프로시져 이름(값,값...) --인수있는경우 ex) 메세지 출력 프로시저 C..

[jquery] 콜백함수 란? Call-back function [내부링크]

콜백함수란? 파라미터로 함수를 전달하는 함수이다. 전달받은 함수를 함수의 내부에서 실행시킨다. 예) jQuery에서 사용하는 콜백함수. $("#btn_1").click( function() {alert("Btn 1 clicked");} ); 예제와 같이 click 함수의 인자로 함수 자체( function( ~~~ ){} )를 전달하고 있다. 이 함수는 click 함수가 실행되면 동작한다. 위와 같은 형태가 가장 전형적인 자바스크립트 콜백 함수이다. 또다른 전형적인 예제를 보자. var friends = ["Hena", "Rex", "Ryan", "Paula" ] ;friends.forEach(function (eachName, index) {console.log (index + 1 + ". " + ea..

스크립트 script 란? [내부링크]

스크립트란 ? 컴퓨터가 목표한 바를 달성하기 위해 실행해야하는 명령의 집합이다. 실행될 때마다 전체 명령의 일부를 실행하며, 실행되는 명령은 메번 다를 수 있다. 컴퓨터가 작업을 실행하는 방법을 사람의 그것과는 사뭇 다르다.따라서 명령들은 컴퓨터가 작업을 프로그래밍적으로 해결할 수 있도록 구성되어야 한다. 스크립트를 작성하려면 목표를 세부적인 단계로 나눈 후 각 단계를 완료하기 위한 작업들을 정의해야 한다. 이때 흐름도를 작성하는 것이 큰 도움이 된다. 객체와 속성. 객체(물체) Object 컴퓨터 프로그래밍에서 실제 세계에 존재하는 각각의 물리적인 물체들은 객체Object로 표현된다.예를들어 호텔이 있고 그 앞에 자동차 2대가 서있다고 치자. 호텔과 자동차라는 두가지 서로 다른 종류(Type)의 객체가..

siteMesh 사이트메쉬란? [내부링크]

sitemesh 란? 웹페이지를 구성하는 레이아웃을 효율적으로 만들수 있게 도와주는 프레임워크.보통 웹페이지들은 top, left menu, contents, (right menu), footer로 구성되는데 메뉴이동시 그 폼을 유지한채 중간의 컨텐츠만 변경되는 경우가 대부분인데 모든 페이지를 중복으로 구성하는 것은 비효율적이고 관리도 어렵기 때문에공통된 부분들을 한곳에 집중 해서 처리하고 변경되는 부분만 변경될 수 있도록 해주는 프레임워크이다. SiteMesh를 이용하여 웹 페이지의 레이아웃을 처리하는 방법을 살펴본다. SiteMesh의 동작 방식과 설치 웹 어플리케이션을 구성하고 있는 웹 페이지들은 대부분은 페이지 레이아웃이 동일하게 구성되어 있다. 예를 들어, 미디어 다음의 스포츠 게시판을 보면, ..

Java static 이란? 개념/사용법 [내부링크]

Java static 개념/ 사용법 1.클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다. - 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 2. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다. - static이 붙은 멤버변수(클래스변수)는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기 때문이다. 3. static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다. - static이 붙은 메서드는 인스턴스 생성 없이 호출가능한 반면, 인스턴스 변수는 인스턴스를 생성해야만 존재하..

XML 이란? DTD 와 스키마 [내부링크]

XML eXtensible Markup Language 확장가능한 마크업 언어.XML는 어떠한 데이터를 설명하기 위해 이름을 임의로 지은 태그로 데이터를 감싼다. 즉 태그로 데이터 설명을 하는것이다. 이 부분에서 데이터의 표시(Markup)가 되고,더 필요한 데이터가 생길시 태그추가나, 태그안의 내용을 추가할수 있다는 특징이 있다.(Extensible) 즉, 마크업언어를 정의하는 언어라고 할 수 있다.인터넷을 통한 거대 네트워크 연결이라는 패러다임이 생기면서 문제점이 발생한다. 다른기종 간 응용 시스템 통합 , 서로 다른 포맷의 데이터 통합, 상황에 따른 웹 페이지 레이아웃, 상호 연결가능 한 파일 등 웹을 수용하고 활용하는데 발생하는 문제들을 해결하기 위해 xml이 등장한다. XML 특징기존 웹의 인터..

MAVEN 메이븐이란? [내부링크]

메이븐 MAVEN 라이브러리 관리 + 프로젝트 빌드 툴. (eclipse에 기본탑재되어 있음) 프로젝트 진행하게 되면 수많은 라이브러리들을 활용해서 개발을 하게 된다. 이때 사용되는 라이브러리들의 수가 수십, 수백개가 넘어가는 일이 발생해 이 많은 라이브러리들을 관리하는 것이 힘들어지는 문제가 생겼다. Maven은 이러한 문제를 해결해 주는 1.라이브러리 관리 도구이다. 내가 사용하는 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리까지 관리하여 네트워크를 통해서 자동으로 다운 받아주고 설치 경로도 지정해 준다. 즉, 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 메이븐이 네트워크를 통해서 라이브러리들을 자동으로 다운받아준다. 그러므로 우리는 라이브러리 파일을 ..

log4J란? log4j설정법. [내부링크]

Log4J란? Log For JAVA 자바 기반 로깅 유틸리티. 디버그용 도구로 주로 사용된다. 개발자가 로그문의 출력을 다양한 대상으로 할 수 있도록 도와주는 도구. 애플리케이션에 문제발생시, 로깅 활성화하면 문제의 위치를 정확히 파악할 수 있다. 개발자라면 로그를 남기고 확인해서 자신이 개발한 프로그램이 정상적으로 작동을 하는지, 오류가 나면 어디서 오류가 발생했는지 좀더 쉽고 빠르게 찾기 위해 사용한다. 또한 성능 및 속도에 영향을 미치지 않고 편리하게 사용할 수 있다. Log4j 특징 속도에 최적화 되어있다. 이름있는 로그 계층에 기반한다. thread-safe 하다. 즉, 멀티스레드 환경에서도 안전하다. properties 파일과 xml형식으로 실행 중 수정 적용 가능하다. 처음부터 자바의 예외..

Junit이란? 어노테이션 [내부링크]

범용적으로 사용되는 단위 테스트 framework 이다. Java언어의 단위(기능)테스트를 위해 사용한다.즉, 테스트 시 기대값과 결과값을 비교한다. 일치하면 테스트성공. 프로그래밍에서 유닛테스트라는 소스코드의 특정 모듈이 의도한 대로 정확히 작동하는지 검증하는 절차이다.즉, 모든 함수에 대한 테스트케이스(test case)를 작성하는 절차.이를 통해서 언제라도 코드변경으로 인해 문제 발생시, 단시간 내에 파악하고 바로 잡을 수 있다. Junit은 단독으로 돌아간다. web처럼 WAS필요없이 run시키면 돌아간다.와스없이 단독으로 돌아가기때문에 스프링에 설정파일을 직접 설정해주어 실행한다. 실제로는 사용자에게 입력받아야 하는데 와스가 없기때문에 임의의 값을 주고, 기능의 값을 테스트 한다. 즉, 웹환경 ..

마이바티스 란? mybatis 설정방법 및 순서. [내부링크]

myBatis 마이바티스란? 객체 지향언어인 자바의 관계형 데이터베이스 프로그래밍을 쉽게 도와주는 프레임워크.자바에서는 관계형 데이터베이스 프로그래밍을 하기위해 JDBC를 제공한다. ※ JDBC(Java Database Connectivity) 자바 프로그램이 데이터베이스와 연결되어 데이터를 주고 받을 수 있게 해주는 인터페이스이다.(DriverClass, Connection, PreparedStatement, ResultSet etc...) JDBC는 다양한 API를 제공하지만, 각각 기능을 사용하기위해서는 관련 객체를 생성하고 해제해야하는 단점이 존재. 마이바티스는 이 JDBC를 보다 편하게 사용하기 위해 개발되었다. SQL문을 별도의 파일로 분리해서 관리하도록 해준다. 스프링의 하청이라고 할수 있음..

[Spring]Application Context 설정. [내부링크]

Spring Framework 설정. 1. Root Application Context 설정 [web.xml]Servlet Container인 Tomcat(WAS)이 start되면 가장먼저, web.xml을 읽어들인다.[web.xml] = Root org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:/root-context*.xml[web.xml]에 선언된 listener클래스인 ContextLoaderListener 의해 RootWebApplicationContext영역을 구성하게 되는데 그 설정파일은 root-context*.xml이다. [root-context.xml]두파일을 import 하고있다..

Spring- Singleton pattern 싱글톤 패턴이란? [내부링크]

싱글턴 패턴 Singleton pattern이란? 클래스가 오직 하나의 인스턴스만 생성한다는것을 보장하는 패턴.보통 데이터베이스나 웹 서비스 같은 여러 서드파티에서 해당 인스턴스에 접근가능한 유일한 지점을 만드는데 사용. 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. Spring도 스프링 빈에서 한번 객체를 생성 해놓은 뒤, 필요시 스프링이 생성해놓은 객체를 호출해서 쓰기때문에 싱글턴 패턴을 따른다고 할 수 있다. ex)싱글톤 패턴을 적용한 DAO클래스.public class UserDao{ private static U..

런타임(Runtime) vs 컴파일(Compile) [내부링크]

Run time어떤 프로그램이 실행되는 동안의 time. Runtime Error어떤 프로그램이 실행되는 동안 발생되는 에러.문법상으로는 에러가 없지만 실행 시켰을때 에러가 나는경우.ex) NullpointerError Compile프로그래밍언어를 기계어(컴퓨터가 이해할 수 있는 비트단위의)로 변경하는 과정 Compile Error주로 문법상의 에러가 많음.ex) ; 을 빠트리거나 선언법이 틀렸다거나 하는 이유로 빨간줄 쳐지는게 컴파일에러 *프로그램이 컴파일 에러없이 완료되더라도, 해당 프로그램 실행시 에러가 없다고 보장할 수 없음. 즉, 컴파일 에러가 발생하지 않더라도 런타임 에러가 발생할 수 있음.

J2EE란? 자바2 엔터프라이즈 에디션 [내부링크]

J2EE (Java 2 Enterprise Edition) J2EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합. J2EE를 만든 것은 Sun Microsystems이고 SUN에서 J2EE 스펙을 시범적으로 구현해두기는 하지만, IBM, BEA, Oracle, HP, Iona등 여러 벤더들도 그 스펙을 구현할 수 있으며 J2EE 호환성을 검증하는 기구의 검증을 통과하기만 하면 J2EE 호환 제품으로 시장에 출시할 수 있다. 그리고 이런 벤더들은 J2EE 스펙을 개선하는 과정에도 활발히 참여하기 때문에, J2EE는 사실상 SUN의 독점적인 기술이라기 보다는 Java진영으로 불리는 여러 개발자들이 같이 만들어가고 공유하는 기술이라고 볼 수 있다. *엔터프라이즈 시스템: ..

[JAVA Spring] 첨부파일 구현하기. MulripartResolver. [내부링크]

첨부파일 업로드 처리. 인코딩 타입이 Multipart인 경우 파라미터나 파일을 구하려면 전송데이터를 알맞게 처리해 주어야 한다.스프링은 Multipart 지원기능을 제공하는데, 이 기능을 이용하면 추가적 처리 없이 Multipart형식의 파라미터와 파일정보를 쉽게 구할 수 있음. 1. MulripartResolver 설정.먼저 스프링 설정파일에 MultipartResolver를 등록해주어야한다. pom.xml commons-fileupload commons-fileupload 1.2.1 commons-io commons-io 1.4 spring-servlet.xml 멀티파트 리졸버는 멀티파트 형식의 데이터가 전송괸 경우, 해당 데이터를 스프링에서 사용할 수 있도록 변환해준다. 스프링이 기본으로 제공하는..

컬렉션 프레임워크(collection framework)란? - List vs Map [내부링크]

컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미. 즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것. 컬렌션 프레임워크는 자바 인터페이스를 사용하여 구현된다. 컬렉션 프레임워크 주요 인터페이스List 인터페이스Map 인터페이스주요 인터페이스의 간략한 특징인터페이스설명구현 클래스List순서가 있는 데이터의 집합으로, 데이터의 중복을 허용함.Vector, ArrayList, LinkedList, Stack, QueueMap키와 값의 한 쌍으로 이루어지는 데이터의 집합으로, 순서가 없음.이때 키는 중복을 허용하지 않지만, 값은 중복될 수 있음.HashMap,..

제네릭 Generic 이란? [내부링크]

제네릭 Generic데이터 타입 Type 을 일반화 generalize 한다 : 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법. 즉, 컴파일 시 미리 타입 검사 type Check를 수행. why?클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다.반환값에 대한 타입변환 및 타입검사에 들어가는 노력과 시간을 줄일 수 있다. 이전에는 여러타입을 사용하는 대부분의 클래스나 메소드에서 인수나 반환값으로 주로 Object를 사용여 반환된 Object객체를 다시 원하는 타입으로 변환시 오류발생 가능성이 있다.하지만 jdk1.5부터 도입된 제네릭을 사용하면 컴파일시 미리 타입이 정해지므로, 타입검사나 변환 같은 번거로운 작업을 생략할 수 있다. 제네릭의 선언 및 생..

HTTP 메서드. GET vs POST 방식 [내부링크]

GET vs POST 두방식 모두 서버에 요청을 하는 메서드: 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식 클라이언트가 서버에 요청시, 필요 데이터가 있는 경우 그 정보 즉 데이터를 서버에 요청하여 요청받은 작업 수행시 사용한다. GET type : 클라이언트의 데이터를 URL뒤에 붙여서 보낸다. e.g.) localhost:8080/jsp-test/bmi/output.jsp?name=홍길동&birth=19910315&... localhost- URL/IP :8080 - WAS port number /jsp-test - context root /bmi/output.jsp - web page경로 ? - 웹페이지와 파라미터 구분. name - 파라..

제이쿼리란? 에이젝스란? 제이큐그리드란? JQuery / Ajax / Jqgrid [내부링크]

제이쿼리(jQuery) 제이쿼리는 오픈 소스 기반의 자바스크립트 라이브러리이다. 우리가 웹에서 여러가지 효과를 나타낼때 자바스크립트를 활용해 아주 어렵고 복잡하게 기능 구현 하는것을 제이쿼리는 아주 간단하게 구현하게 도와준다.대표적으로 HTML문서탐색과 조작, 이벤트 처리, 에니메이션, Ajax등 자바스크립트에서 빈번하게 쓰이는 동작과 작업들을 바로 가져다 쓸 수 있게 해주고, 훨씬 간단하게 만들어준다.즉, 필요한 기능을 쉽게 가져다 쓸 수 있도록 해주는 자바스크립트로 구성된 프로그램 집합으로 볼 수 있다.폼의 유효성 검사, 드롭다운 메뉴 등 바로 응용하여 사용가능한 수천개의 다양한 플러그인을 지원한다. 수많은 자바스크립트 라이브러리 중 제이쿼리가 특히 많이 사용되는 이유? 1. 제이쿼리는 주요 웹 브라..

이클립스 프로젝트 깃허브에 업로드하기. [내부링크]

Eclipse 프로젝트 Github Repository에 업로드하기. 업로드할 새 Repository생성 , HTTPs url복사. Window > show view > Git Repositories > 우클> ~~~URL 깃허브 레파지토리 url 붙여넣기 , 깃헙 아이디/비번 입력 Brunch: master 파일경로 설정 해당 레파지토리 선택 finish 해당 프로젝트가 [master]로 공유된것을 확인할수있음 우클> Team> Add to Index Add index후, 다시 우클> Team>Commit 새로운 창이 뜨고, 업로드 파일 확인 및 커맨드 추가 후 > Push and Commit 완료. 되었으면 깃허브 레파지토리에 가서 확인해보자. 프로젝트의 모든 파일들이 업로드 된것을 확인할 수 있다 ..

형상관리 SVN이란?? SubVersioN [내부링크]

SVN SubVersioN. 형상관리 서브버전은 자유 SW 버전 관리 시스템이다.SVN을 사용하여 소스파일과 문서 이력을 기록할 수 있다. 시간에 걸쳐 파일과 디렉토리를 관리한다.파일들은 저장소 (Repository)에 저장되고, 저장소는 보통의 파일 서버와 비슷하지만, 이제껏 만들어진 파일과 디렉토리의 모든 변경을 기록하고 기억하고 있다. 왜 사용할까?파일과 디렉토리의 집합에 대한 변경을 추적하고 기록하기 위함개발 이력 관리를 위해 사용 팀 프로젝트시 변경전 이력을 모두 남아있어 프로젝트 공유에 용이 주요 기능 중단으로 인한 저장소내의 불일치나 손상을 피할 수 있다.이름을 바꾸거나, 복사하거나, 파일을 지워도 계정기록을 유지한다.시스템이 디렉토리, 파일이름 바꾸기, 파일 메타데이터에 대해서도 판본 호수..

맥mac / 윈도우window Tomcat Kill 톰캣 죽이기. [내부링크]

이클립스를 통해 Tomcat 을 실행시키는데, 이클립스가 강제 종료되면 Tomcat 프로세스가 실행된 채로 남게 된다.다시 이클립스를 통해 Tomcat 을 실행시키면 이미 8080 포트에 프로세스가 있어서 실행이 안되는데명령어로 kill 시키도록 한다. MAC123sudo lsof -i :8080 kill -9 [PID number] 톰캣 PID 값을 [PID number] 넣는다 WINDOW 123netstat -ao taskkill /f /pid [PID number]톰캣이 사용중인 포트번호의 [PID number] 넣는다

[JAVA]Spring properties 설정하기 [내부링크]

Spring properties 설정하기 * .properties란?? 응용 프로그램의 구성 가능한 파라미터들을 저장하기 위해 자바 관련 기술을 주로 사용하는 파일들을 위한 파일 확장자이다. 1. PropertyPlcaeHolderconfigurer 로 설정파일 읽어오기 RootApplicationContext 영역에 아래와 같이 bean을 등록해주면 된다. RootApplicationContext 영역에 bean을 설정했기에 같은 영역에 선언된 빈에서는 아래 코드를 사용해서 값을 가져올 수 있다.@Value("${project.file.upload.location}")private String saveLocation; 하지만 servlet.xml 영역에서는 해당 bean에 접근 할 수 없다. 2. pr..

[Java]자주 사용하는 String class의 생성자와 메서드 및 사용법. [내부링크]

자주 사용하는 String class의 생성자와 메서드 및 사용법 char charAt(int index) : 지정된 위치에 있는 문자를 알려준다. String s = "hello,world";char c = s.charAt(1);=> c = 'e' String concat(String str) :문자열을 뒤에 덧붙인다. String s = "hello";String s2 = s.concat(",world");=> s2 = 'hello,world' boolean contains(CharSequence s): 지정된 문자열이 포함되었는지 검사한다. String s = "abcdefg";boolean b = s.contains("bc"); => b = true; ️boolean equals(Object o..

스프링 흐름 파악하기. Spring Flow -소스코드 예제 [내부링크]

SpringExample Key point: 객체생성 대한 책임을 개발자에서 ---> 스프링 프레임워크에게 분리.1. pom.xml Check. - dependency 의존성 확인. pom.xml junit junit 3.8.1 test org.springframework spring 2.5.6 mysql mysql-connector-java 8.0.12 스프링을 추가해주면 스프링 프레임워크의 라이브러리를 사용할 준비가 된것. (사용할수있는게아니라 준.비.가 된것. 사용하기 위해서는 당연히 더 많은 것들이 필요하다.) 2. 메인메서드 Check. (본 예제의 메인메서드: App.java) App.javapublic class App { public static void main( String[] args..

스프링이란? Spring / IoC 역제어 / DI 의존성 주입 [내부링크]

스프링 Spring Framework 자바 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 (by 로드 존슨)Framework: 뼈대/ 골조 : 어떠한 작업을 위한 뼈대/골조. 애플리케이션 프레임워크 일반적으로 라이브러리나 프레임워크는 특정 업무나 기술에 특화된 목표 가지고 만들어진다. 그래서 프레임워크란 애플리케이션 특정 부분에서 주로 동작하는 한가지 기술에 집중된다.하지만 스프링은 이와다르게 '애플리케이션 프레임워크' 이다.애플리케이션 프레임워크는 특정 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적 프레임워크를 말함. 즉, 애플리케이션 개발의 전반적인 과정을 빠르고 편리, 효율적이도록 돕는 프레임 워크이다. 흔히들 스프링하면 알고있는 개념인 MVC / JDBC / ORM ..

인터페이스 Interface vs 추상클래스 abstract class [내부링크]

인터페이스 Interface 추상화 정도가 높은 일종의 추상클래스. 추상클래스처럼 추상 메서드를 갖지만 추상클래스보다 추상화정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 추상클래스는 추상메소드 뿐만아니라 생성자, 필드 , 일반 메서드도 포함할 수 있지만 반면 인터페이스는 오직 추상메서드와 상수만을 멤버로 가질수 있음. *추상클래스 : 부분 구현된 '미완성 설계도' *인터페이스: 구현된 것은 아무것도 없고 밑그림만 그려진 '기본 설계도' (like 작업지시서) why? 인터페이스를 사용하는가? client입장에서 자신이 사용하는 구체적인 클래스를 몰라도, 인터페이스를 사용하면 인터페이스 즉, 기본 설계도에서 정의된 메서드를 사용하는 객체 라는것이 보장되..

MVC pattern 이란? model2 / model1 [내부링크]

MCV pattern 이란? M : Model V : View C : Controller 기존 데이터 흐름 jsp servlet dao * servlet역할1)jsp(input) 에서 넘오온 데이터(parameter) 분리2) DB통신: dao호출3) dao 호출 결과 따른 후처리.4) 페이지지정: jsp(output) 지정하여 돌려보냄 DAO (Database Access Object) 1) DB와 직접적 통신 conn = mConn.getDBConnection(); 하여 서블릿에서 데이터 처리 (후처리) 이때 데이터의 전/후처리를 서블릿이 하게되면 서블릿이 비대해지는 문제점이 대두된다. 이를 해결하기 위해 servlet에서 바로 dao 가 아니라 그 사이에 service 라는 것을 사용한다. 2) S..

아파치란? 톰캣이란 ? (aka. 아파치 != 톰캣) 웹서버 vs 와스 [내부링크]

아파치(apache)란?세계에서 가장 많이 쓰는 웹 서버중 하나이며, 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이다.Apache는 Apache재단에서 만든 HTTP서버로 워낙 다양한 추가기능에, 구축이 쉽다는 이유 때문에 많이 쓰고 있다. 대부분의 중소기업들은 무료이기 때문에 많이 쓰인다. 톰캣이란(Tomcat)?톰캣은 아파치 소프트웨어 재단의 웹 어플리케이션 서버(와스)로서, 자바 서블릿을 실행키고 JSP코드가 포함되어 있는 웹 페이지를 만들어준다. 자바 서블랫과 JSP 규격의 '참조용 구현'으로 평가되고 있는 톰캣은, 개발자들의 개방적 협력 작업의 산물로 바이너리 버전과 소스코드 버전 둘 모두를 아파치 웹 사이트에서 얻을 수 있다. 즉, 톰캣은 웹 서버에서 넘어온 동적인 페이지를 읽어들여 ..

JSTL (Java Standard Tag Library) / EL (Expression Language) [내부링크]

JSTL Java Standard Tag Library 자바 표준 태그 라이브러리. JSP에서 사용하기 위한 표준 태그 라이브러리를 지칭.JSP Script Tag를 대체하기 위해 사용되고 EL 보다는 더 넓은 기능을 제공.JSTL 종류에는 core, fmt(formmating), fn(function) 등이 있다. taglib 지시문을 이용하여 선언하고 접두어를 이용하여 사용한다. ${hello} 변수의 출력 기능을 한다. JSP의 표현식()을 대체하는 기능이다. core : 프로그램의 흐름을 제어하고 페이지 이동에 관련된 기능을 제공. JavaJSTLfor c:forEachif c:ifif-else if-else c:choose c:otherwiseswitch-case e.g) 만약 스크립트 릿에서 ..

Servlet 서블릿 [내부링크]

Servlet 자바기반으로 만드는 웹어플리케이션 프로그래밍.클라이언트 요청 처리하고 그 결과를 다시 클라이언트에게 전송하는 클래스 구현 규칙을 지킨 프로그램.web.xml에 Servlet클래스와 URL을 등록하여 사용.1 Servlet : 1 Java . 즉 서블릿은 java class와 1:1 매핑됨. Servlet요청하기 위한 JAVA클래스 존재. input.jsp -------------------> Servlet -------------------> output.jsp 입력 처리/계산 출력 서블릿관리: 와스 = ex)아파치톰캣 서블릿 환경:자바. 서블릿이 자바가 아니라 서블릿을 실행시켜주는(환경을 구성해주는) 파일이 '자바'인것.. Servlet ContainerServlet을 관리해주는 용기(c..

JSP란 ? Java Server Pages [내부링크]

JSP - Java Server Pages HTML 내에 java code 삽입하여, 웹서버에서 동적으로 웹 브라우저 관리하는 언어.즉, 웹사이트를 쉽게 구출할 수 있도록 해주는 스크립트 언어이다.자바 소스 코드로 작성된 코드는 웹 브라우저가 아닌 웹서버 단에서 실행이 된다.개발자가 소스코드 수정시 디자인작업 신경쓸 필요없이 자바 소스 부분만 수정하면 되기때문에 개발 효율 상승.서블릿 기능을 가지고 있고 디자인과 개발이 분리되어 있다.즉, JSP는 Servlet의 업그레이드 버전이라 생각하면 되고 JSP또한 WAS 에 의하여 JSP페이지를 서블릿 클래스로 변환하여 사용되어진다. html코드 속에 들어가는 자바소스코드로 or 형태로 사용. JSP = HTML + Java code ** 반대로 javaScr..

HTML 이란 [내부링크]

HTMLHyper Text Mark up Language.mark up: 정해진 양식이 있다. **프로그래밍 언어가 아니다. 마크업 언어이다. Tag: < >< /> html문서 : 웹페이지 태그 Tag는 시작과 끝이 있다.태그 tag = 엘리먼트 elemente.g): html element.html: 상위 elementbody: 하위 element각각의 태그는 상위 하위 즉 부모 자식 태그가 있고관계에 따라 상위가 될수도, 하위가 될수도 있음. 속성 attribute 시작 태그에 속성 부여 ex) width, height ..등값 value: 속성의 값. html이 중요한이유: 정보를 탄탄히 함. 태그가 정보를 가지고있다. 접근성 accessibility . 모든 운영체제에서 동작. 웹 페이지 소스코..

프로시저 예제. [내부링크]

1. sp_add_district_cd CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_add_distc_cd`()BEGINDECLARE _done INT DEFAULT FALSE;DECLARE prvnCd INT;DECLARE distcNm VARCHAR(100); DECLARE _distc_cursor_ CURSOR FOR SELECT p.prvn_cd, o.distc_nameFROM org_data o LEFT OUTER JOIN province p ON p.prvn_name = o.prvn_name LEFT OUTER JOIN district d ON d.distc_name = o.distc_name AND d.prvn_cd =p.prvn_cd WHERE d...

JDBC Java DataBase Connectivity [내부링크]

JDBC Java DataBase ConnectivityJava에서 DBdㅔ 접근하여 DML을 사용가능하게 하는 것. 즉, 자바가 데이터베이스를 사용할 수 있도록 연결해주는 JAVA API이다. JDBC 커넥션은 명령문 SQL query를 만들고 실행하는 것을 지원한다. JDBC API 소스코드 package com.jdbc.util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class MySqlConnection { //DB 커넥션 양식 DB별로 정해져있음. private final String DB_DRIVER = "com.mysql.jdbc.Driver"; // Mysql ..

[JAVA] Collections Framework 자바 컬렉션 프레임 워크란? [내부링크]

Java Collections Framework 자바 컬렉션 프레임 워크란? - Collections : 다수의 데이터 그룹 - Framework : 표준화된 프로그래밍 방식. 즉, 다수의 데이터 그룹을 위한 표준화 프로그래밍 방식이다. 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공하기 때문에 프로그래머의 짐을 상당히 덜고, 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화 되어있기 때문에 사용법도 편리하고 재사용성이 높은 코드를 작성할 수 있다. 컬렉션 인터페이스의 핵심 인터페이스. 1. List 순서가 있는 데이터의 집합. 데이터 중복 허용 ex) 대기자 명단 ArrayList , LinkedList, Stak, Vector .. 2. Set 순서를 유지하지 않는 데이터의 ..

[DB]프로시저를 이용한 데이터 입력 및 검증 [내부링크]

데이터 입출력 구현 프로시저를 이용한 데이터입력 및 검증 실습 연습문제 / 쿼리 1. 누락된 관광지의 정보(attrc_cd)를 테이블 attraction 에 입력.CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_add_missed_attrc_cd`() BEGIN --// 변수선언(begin 아래 일괄선언.) DECLARE _done INT DEFAULT FALSE; DECLARE _prvnCd INT; DECLARE _distcCd INT; DECLARE _attrcName VARCHAR(100); -- // 데이터베이스에서 가지고 와야할 정보가 필요한 경우. 커서-패치를 이용해 데이터베이스에서 필요한 정보를 가지고 온다! 여기서는 기존 관광지 데이터를 참조하여 ar..

데이터 검증하기 - 값 보정방법 및 쿼리 [내부링크]

데이터 검증하기 - 값 보정방법 및 쿼리 9 1 0 3 1 5 - 9 2 3 4 4 5 6[1 2 3 4 5 6 7 8 9 10 11 12 13 14] 1. 자르기 SUBSTR(문자열,자를첫번째자리수,자를자리길이):보정할 자릿수 잘라내어 추출. 2. 잘라낸 자리수 목적에 맞게 보정3. 보정후 잘라낸 문자 다시 이어 붙이기. CONCAT( , , ,): 보정할 자릿수 이전까지 문자 + 보정 완료+ 보정할 자릿수 이후문자 성별보정 8번째 자리 추출 SUBSTR(): [1-4] 임의 값으로. FLOOR(RAND()*4) +1단, 1,2번째 자리가 18년 이상: 3,4 / 이하 1,2 ..IF(조건,참,거짓): 조건: 문자열이 18이상이면 3,4 / 이외에는 1,2 월값보정3,4번째 자리 보정: [1-12] 임..

SQL - CURSOR 커서 [내부링크]

CURSOR 커서 일반적으로 모니터에서 해당 위치를 알려주고 입력대기중을 알리는 깜빡이는 것을 나타냄.같은 맥락으로 SQL에서의 커서는 메모리상에서 SQL이 실행되는 위치를 가리킨다. 커서를 통해, 메모리에 존재하는 SQL문 실행결과를 바로 접근하여 패치(Fetch)할 수 있다. (메모리 영역은 SQL문 실행 및 처리 결과를 저장하는 곳.) 이때 커서는 현재 처리하고 있는 row를 가리킨다.실행결과를 1개의 row씩 차례로 처리하며, 마지막 처리가 끝나면 커서를 닫는다.처리할 데이터가 방대할때, 수많은 row를 처리하기 위해 명시적 커서를 선언 및 제어한다. Explicit Cursor 명시적 커서 프로그래머에 의해 직접 선언되고 이름을 지정할 수 있다.Query결과를 첫 행부터 차례대로 처리하고, 수동..

[SQL]데이터 검증 - 중복 데이터 제거. [내부링크]

SQL 데이터 검증. 중복 데이터 제거 중복된 데이터를 찾고/ 그 데이터의 기본키를 찾아 /기본키를 조건으로 해당 데이터 삭제. 1. 중복 데이터 찾기.찾고자하는 데이터 칼럼을 그룹별로 나누어 조회하면 같은것끼리 묶여 그룹지어진다. 이때, 데이터 수를 COUNT()할때, 중복이 아니면 1개가, 중복인 경우 1개 이상이 된다. 그룹에 대한 조건인 HAVING 을 사용하여 COUNT한 값이 1이상인 데이터만 조회하면 중복인 데이터들만 조회할 수 있다. 예) customer 테이블에서 중복된 id를 구한다고 가정. (PK: cus_no) SELECT id, COUNT(id) FROM customer GROUP BY idHAVING COUNT(id) > 1; // 그룹에 대한 조건.HAVING 2. 중복 데이터..

Database - 정규화란? Normalization [내부링크]

정규화 Normalization RDBMS 설계에서 중복을 최소화하게 구조화 하는 작업을 지칭.목적: 중복의 최소화. 이상현상 Anomaly (called 어노말리)삽입이상, 삭제이상, 갱신이상.삽입/갱신/삭제 작업수행 시 구조적인 오류가 나는 것. 이러한 이상현상을 오류제거를 위해 정규화를 하는 것. 1정규화(1NF = 1 Normal Form)하나의 속성이 단일값(=원자값 =Atomic value)이고, 중복되는 항목이 없어야 한다. 각 행 row의 각 칼럼은 무조건 1개의 고유한 값을 가진다.각 데이터가 전체 행으로 봤을때 칼럼 당 1개의 값을 가지고 중복이 없으면 1정규화를 충족한다고 볼 수 있음. 2정규화 2NF1NF의 속성을 만족하면서, 테이블에 존재하는 모든 함수 종속 관계가 완전함수 종속이..

sql 활용 연습문제. [내부링크]

sql 활용 연습문제 및 쿼리. 1. 각 [도/광역시]별 [시/군/구]의 개수를 조회하라.--기준: 도/광역시별(province) 조건:- 컬럼: 도/광역시, 시군구 개수 SELECT prvn_name, COUNT(distc_cd) FROM province p JOIN district d ON p.prvn_cd = d.prvn_cd GROUP BY p.prvn_cd; 2. 각 [도/광역시]의 [시/군/구]별 관광지 개수를 조회.--기준:도광역시. 시군구 조건:- 컬럼: 도광 이름, 시군구 이름, 관광지개수 SELECT p.prvn_cd,p.prvn_name,d.distc_cd,d.distc_name, COUNT(a.attrc_cd) FROM attraction a JOIN district d ON a.p..

[DB]Transaction 트랜잭션이란? [내부링크]

Transaction 트랜잭션이란? 데이터베이스의 상태 변화시키기 위해 수행되는 작업의 단위.(데이터 베이스의 상태변화란? SELECT, INSERT, DELETE, UPDATE등의 질의어(SQL)이용하여 디비에 접근하는 것.)이때, 작업의 단위는 질의어 한문장이 아니다! 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다. ◼︎Transaction 특징원자성 (Atomicity) 트랜젝션이 데이터베이스에 모두 반영되던가 , 그렇지 않으면 전혀 반영되지 않아야 한다. 트랜잭션은 사람이 설계한 논리적 작업단위로, 처리는 기준설정 해놓은 작업단위 별로 이루어져야 한다. 일관성 (Consistency) 트랜잭션의 작업처리 결과가 항상 일관성이 있어야 한다. 트랜잭션 진행동안 데..

MYSQL 내장함수 Built in functions [내부링크]

내장 함수 Built in functions 집계(통계)함수 **무조건 GROUP BY 와 함께 씀. COUNT(컬럼명) NULL값이 아닌 레코드의 수 SUM(필드명) 해당 필드의 합계 AVG(필드명) 각각의 그룹안에서 필드의 평균값 MAX(필드명) 해당 필드의 최대값 MIN(필드명) 해당 필드의 최소값 날짜 관련 함수 NOW() = SYSDATE() = CURRENT_TIMESTAMP() : 현재의 날짜와 시간 출력. 사용된 쿼리에 따라 출력형식이 달라진다. ex) SELECT NOW() → 2018-02-06 10:50:21ex) SELECT NOW() + 0 → 20180206105021 DATE_FORMAT(날짜컬럼,'형식')ex) DATE_FORMAT(join_date, '%Y-%m-%d') →..

SQL - View 뷰란? Trigger 트리거란? [내부링크]

View 뷰SELECT 한 결과를 가상 테이블에 저장한 것. 실제 테이블이 아니기 때문에 view의 행row와 컬럼column에는 값이 존재하지 않는다. xx테이블의 yy칼럼과 zz칼럼을 AA란 조건으로 모아놓은 것 데이터를 추출하기 위한 또다른 정보 집합체. 사용자가 원하는 칼럼만, 원하는 조건으로 데이터를 모아둘 수 있기 때문에 편리함. 가상이지만, 테이블이기때문에 테이블 목록에 표시된다.e.g. Trigger 트리거테이블에 대해 어떠한 처리 (입력, 수정, 삭제 등..) 을 할때 미리 설정해 둔 작업을 자동으로 실행하게 하는 것.입력 수정 삭제 등이 실행되기 전/후로 나뉘어 작업을 실행할 수 있음. 예를 들어 고객담당 부서에서 고객들에게 전체sms 전송 서비스를 제공한다고 할때, 고객담당부서는 개발..

[java]자바에서 인덱스란? Index [내부링크]

INDEX의 의미RDBMS에서 검색속도를 높이기 사용하는 하나의 기술.INDEX = 색인해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 함.INDEX는 TREE구조로 색인화. RDBMS 에서 사용하는 INDEX는 Balance Search Tree 를 사용. 기본키는 인덱스를 가짐. 외래키는 안가짐. 외래키를 따라가면 기본키가 나오는데 그 기본키가 인덱스를 가지는 것이다. INDEX의 원리 INDEX를 해당 컬럼에 주게 되면 초기 TABLE생성시 만들어진 MYD(MySQL Data),MYI(MySQL Index),FRM(Format) 3개의 파일중에서 MYI에 해당 컬럼을..

SQL - Procedure 프로시저란? [내부링크]

Procedure 프로시저 란? 여러개의 SQL을 하나의 SQL처럼 정리하여 사용하고자 하는 것.실행결과를 반환하지 않는다. 즉, return 이 없다. 서버에서 실행되기 때문에 속도가 빠름. 서버에 저장됨 (=stored procedure)SQL에서 사용할 수 없다. ex) select 프로시저() (X) call 프로시저() (O) Function은 주로 간단한 값 계산. Procedure는 복잡한 계산의 결과를 얻기 위해 계산 과정을 쪼개놓은것.예를 들어 어떤 테이블의 데이터를 가지고 여러 테이블의 데이터를 새로 만들거나, 없는 데이터를 찾아서 자동적으로 넣어주는 경우 또는 월별 통계를 내는 경우 등등의 경우 사용된다. Function으로도 기능 구현은 가능하지만, 펑션은 하나의 결과값만을 리턴 하..

SQL - Function 함수란? [내부링크]

Function 함수(기능)(like methods of java.. ) 주로 간단한 연산, 수치 변환 등 위해 사용 프로시저와 유사하나 결과 값 반환. 즉, return 이 반드시 있다. 결과값 하나를 돌려줌, 서버가 아닌 클라이언트(사용자의 컴퓨터)에서 실행 (프로시저보다 느림.) DECLARE 변수명 타입;SELECT '기능' INTO 변수명;RETURN 변수명; e.g)BMI 지수를 계산하는 함수를 생성.식: (체중/(신장*신장)) * 10000 함수명: get_bmi_indicator ->>CREATE FUNCTION `get_bmi_indicator` (weight INT,tall INT) RETURNS INTEGER BEGIN DECLARE _return INT; SELECT (weight/..

SQL -JOIN 조인이란? (INNER / OUTER) [내부링크]

SQL -JOIN 한 데이터 베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것. 2개의 테이블에서 각각의 공통 값을 이용함으로써 필드를 조합하는 수단이 된다. SQL - JOIN 의 표현. 1. 명시적 표현.: SELECT * FROM employeeINNER JOIN department ON employee.departmentID = department.departmentID 2. 암시적 표현: SELECT * FROM employee , departmentWHERE employee.departmentID = departmentID; INNER JOIN (=JOIN) **일반적으로 사용하는 JOIN 은 INNER JOIN 임. 키 값이 있는 테이블의 칼럼 값 비교 후, 조건에 맞는 값..

SQL 통계 - 행열 뒤집기 연습문제 난이도 [내부링크]

Q: 각 도의 시군구를 방문한 내국인 방문객 합계를 구하고 년도별 방문객 최대도시, 최저도시를 조회하라. hint:- 각년도별 도시 방문객 합계 구한뒤 순위 : table Q- 각 년도별 도시 방문객 합계 구한뒤 순위 구하고 꼴지등수만 골라내기!!!!!!!! : table W. - 두 테이블 묵시적 조인. 1)각 도(province) 의 시군구 (district) 방문한 내국방문객 합계 sum(native_cnt) SELECT p.prvn_name,d.distc_name,SUBSTR(f.basis_date,1,4) AS year, SUM(f.native_cnt) as sumFROM province pJOIN district d ON p.prvn_cd = d.prvn_cd JOIN attraction at..

SQL 통계_ 행열 뒤집기. ( 시계열 표현 ) [내부링크]

** 실습 ) 다음의 결과를 년도를 가로로 구분하고 해당년도에 맞게 데이터가 들어가도록 행열을 뒤집어보자.SELECT attrc_name, 2010, 2011, 2011 ... 2017FROM ( 10번 쿼리 ) * 년도 기준으로 뒤집어짐.attrac_name, IF(year=2010, figure, 0) as 2010, IF(year=2011, figure, 0) as 2011, ............. IF(year=2017, figure,0) as 2017 1) .IF 조건문과 일치할경우에만 넣고자 하는 값을 입력. SELECT attrc_name,IF(year=2010, figure, 0) as '2010',IF(year=2011, figure, 0) as '2011',IF(year=2012, f..

SQL 통계_ 서브쿼리 Sub Query_ Rank 순위매기기 [내부링크]

Rank 순위 매기기 예제 쿼리 및 주석. SELECT * FROM ( SELECT c.prvn_name, c.distc_name, c.attrc_name, figure, (CASE @name WHEN distc_name THEN @rownum:=@rownum+1 ELSE @rownum:=1 END) as rank,//table b 에서 만든 name과 rownum값으로 rank 값 생성한다.기준이 되는 이름이 앞의 값과 같다면 +1 씩, 그렇지 않으면 1 대입(순위 초기화) @name:=distc_name as distc_nameFROM ( SELECT p.prvn_name, d.distc_name, a.attrc_name, ROUND(SUM(f.native_cnt)) as figureFROM prov..

SQL 통계_ 서브쿼리 Sub Query [내부링크]

서브쿼리 Sub Query SQL문장의 하부절(메인 쿼리의 SELECT 하부의 FROM절이나 WHERE절)에 쿼리문을 사용하는 것. 즉, 쿼리안에 쿼리가 포함된 상태. 1. FROM절 sub Query.e.gSELECT p.*,c.* FROM Products p, (SELECT category,type FROM Promotion WHERE Active=1)c WHERE p.Category=c.category SELECT a.prvn_name, a.distc_name, a.attrc_name,figure FROM ( SELECT p.prvn_name, d.distc_name, a.attrc_name, ROUND(SUM(f.native_cnt)) as figure FROM province p JOIN dis..

SQL을 이용한 통계 [내부링크]

SQL을 이용한 통계 : 기준(group by)있어야 함. : 고객별 월별 년도별 .. ex) 2010년 월별 방문자 수 평균.정렬: order by [컬럼명][정렬방법] LIMIT:개수 제한, LIMIT 5 -> 5개만 조회. SELECT [컬럼들]FROM[테이블명 별칭] JOIN[테이블명 별칭] ON 연결키 = 연결키 WHERE [조건1]AND[조건2]GROUP BY[기준컬럼] ORDER BY[컬럼명][정렬방법]LIMIT [개수]COUNT() 개수SUM() 합계AVG() 평균MIN() MAX()STD() 표준편차 SELECT SUBSTR('20180615' , 5, 6) AS month; SELECT SUBSTR('20180615' , 1, 4) AS YEAR; SELECT NOW(); -- DATE..

SQL - DML이란? (쿼리 연습) [내부링크]

SQL (Structured Query Language) DML 데이터 조작 언어 Data Manipulate Language.: 구조(definition)안에 쓰여진 데이터를 조작 하는 언어. SELECT / INSERT / UPDATE / DELETE검색(질의) 등록 갱신 삭제 문법SELECT [컬럼명1], [컬럼명2]FROM [테이블명]; SELECT *(모든 데이터)FROM country; 조건 검색: WHERE SELECT [컬럼명1], [컬럼명2]FROM [테이블명]WHERE [컬럼명1] = [값]; SELECT 선택.FROM ~테이블로부터WHERE ~한 조건으로 some example) -- 대륙이 아시아인 국가의 모든 정보를 조회하라. SELECT * : 모든정보 FROM cou..

SQL - DDL 이란? / DCL 이란? [내부링크]

SQL (Structured Query Language) DDL 데이터 정의 언어 Data Definition Language.: 데이터를 수집하기 위한 구조 를 정의하는 언어. CREATE 생성. / DROP 삭제 / ALTER 변경. DBMS 에서 데이터베이스의 구조를 정의하기 위해 사용되는 SQL의 문법.스키마, 데이터베이스, 테이블, 뷰, 인덱스 등을 생성/ 변경/ 삭제 하는데 사용됨. CREATE 생성 CREATE DATABASE [database name]; CREATE TABLE [table name](컬럼명 1 데이터타입 제약조건, 컬럼명 2 데이터타입 제약조건, 컬럼명 3 데이터타입 제약조건, PRIMARY KEY(PK컬럼명) // 중복 허용or비허용 관여.); DROP 삭제 DROP D..

자바 연습) 피라미드 만들기 소스코드. [내부링크]

JAVA - 피라미드 만들기. 문제) 주어진 문자열을 이용해 피라미드를 건설하고자 합니다.아래 메서드의 구현부를 완성하면 됩니다. public static String watchPyramidFromTheSide(String characters): 이 메서드는 피라미드를 옆에서 보았을때 모습을 출력하면 됩니다. The first method ("FromTheSide") shows the pyramid as you would see from the side.public static String watchPyramidFromAbove(String characters): 이 메서드는 피라미드를 위에서 내려보았을때의 모습을 출력하면 됩니다. public static int countVisibleCharacters..

관계형 데이터 베이스 Relational Database [내부링크]

관계형 데이터 베이스 Relational Database테이블 (Table) 로 이루어져 있으며, 이 테이블은 키 (Key)와 값 (Value)의 관계를 나타냄.데이터의 종속성을 관계 (Relationship) 로 표현하는 것. 테이블은 이름을 가지고 있으며 행 (row) 과 열(column) ,값(value)을 가진다.관계형 디비는 이와 같은 형태로 구성된 테이블이 또다른 테이블들과 관계를 맺고 모여있는 집합체. 관계형 데이터베이스 특징1. 데이터의 분류,정렬, 탐색 속도 빠름2. 데이터의 무결성 보장.3. 기존의 스키마를 수정하기는 어려움. 데이터베이스 용어. 열 Column (컬럼)각 열은 유일한 이름을 가지고 자신만의 타입을 가짐. = 필드(field) = 속성(attribute) 행 Row 관계..

Data. DBMS [내부링크]

데이터 Data현실세계의 모든것이 데이터가 될 수 있다. e.g) 그림 사람에대한정보 영상 글 계정 ...컴퓨터에 저장하기 위해서는 모든 데이터들이 문자, 숫자로 표현된다. (bit - byte) 데이터베이스 관리 시스템 DBMS(database management system) 종류Oracle , mysql, mssql, maria-db... 유료 oracle :대용량 , os 제한 없음 , GUI제공 (선택적) :필요 스펙 높음mssql : 대용량, window 기반, GUI제공 -관리편함. 무료.mysql :대용량 , os 제한없음 , GUI제공 (선택적) :필요 스펙 높지 않음. DBMS 선정 시 고려사항.-DBMS 가용성 및 안정성-DBMS 구축 비용-DBMS의 지속적인 기술지원-다양한 개발..

자바 연습) 유용한 연습문제 소스코드. [내부링크]

public class Overall { /* 문제 1. 문자열 뒤집기. 입력되는 문자열을 뒤집어 출력하라. */ public String printInversion(String str) { String result = ""; for(int i=str.length()-1; i>=0; i--) {//반복문 뒤에서부터 0까지 char tempCh = str.charAt(i); // charAt으로 문자열 읽기. result = result + tempCh; //읽어들이며 result에 차례로 저장. } return result; } /* 문제 2. 문자열 개수 세기. 입력 문자열에서 알파벳, 숫자, 공백의 개수를 구하시오. */ public int[] countSth(String str) { int alph..

자바 기본형 한눈에 정리. [내부링크]

기본형 타입 가장 기본이 되는 데이터 타입. 종류 : 논리형/ 문자형/ 정수형 / 실수형 1. 논리형boolean (1byte) : ture 와 false중 한가지 값을 가짐.e.g. boolean is = true;boolean is = false; 2. 문자형char (2byte) : 문자는 홑따옴표를 사용하여 한글자만 표현 가능.이때 문자로는 글자, 숫자, 특수문자, 공백 등 모든 문자 표현이 가능하다.홑따옴표를 사용하지 않으면 아스키코드(숫자)를 반환한다.e.g. char ch = 'A';char ch = 'z';char ch = '9';char ch = ' ';char ch = '0'; -> 0 출력 하지만 사실ch의 값은 0의 아스키코드이다.char ch = 0 ; -> 48출력 ( 즉, 0의..

[JAVA]캡슐화란? encapsulation. 추상클래스란? Abstract class [내부링크]

캡슐화 encapsulation.중요한 데이터를 보존, 보호하는 것.일반적으로 연관있는 변수와 함수를 클래스로 묶는 작업이나 캡슐화는 은닉성이 있어서 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하게 하는 것. e.g) 우리집 클래스.거실 public엄빠방 : 상위클래스 public 내방: 서랍 private //접근 불가 내돈 private //접근 불가 +public void 용돈받기 ( int 돈) { //private내돈에 접근할수있는 우회로. (내돈) = 내돈 + 돈; } public int 내용돈 얼마(){ return (내 돈); } 쓰레기통 public //누구나 접근 가능. 추상클래스 Abstract class 미완성 설계도. 즉, 미완성 (추상) 메서드가 포함되어 ..

클래스 간의 관계.상속 inheritance/ 포함 [내부링크]

상속 inheritance (확장) , 포함the relationship between class.e.g자동차 - 엔진 :포함 필통 - 펜:포함 사람-휴대폰 : 포함 지갑 - 지폐: 포함 사람 - 포유류 : 확장 *자바의 단점: 다중 상속 불가. 계층상속만 가능. e.g) 각 클래스 human, parent, child parent는 human포함.child는 parent와 human 모두 포함.child 객체 생성하게 되면 child와 상속(확장)관계에 있는 객체의 생성자부터 호출.child에 있는 기능(메서드)호출시 child부터 찾고 없으면 상속관계있는 객체를 탐색.탐색했는데도 없으면 에러. 고객 , 계좌 : 고객이 계좌를 가진다.은행, 고객, 계좌: 은행이 고객을 가진다.명제 1. 은행은 고객의 ..

자바 로또 메이커 소스코드 [내부링크]

로또 메이커 만들기!!! int [] lotto= lm.make(); // lotto값 [6, 13, 25, 29, 31, 45]lm.printPaper(lotto); 실행 시 출력 값:01 02 03 04 05 ** 0708 09 10 11 12 ** 1415 16 17 18 19 20 2122 23 24 ** 26 27 28** 30 ** 32 33 34 3536 37 38 39 40 41 42 43 44 ** 완성 소스코드.package chapter_06; public class LottoMaker2 { int[] deck = new int[45]; int[] lotto = new int[6]; void initialization() { // 1-45까지 숫자만드는 메서드 for (int i=0; i

오버로딩 overloading VS 오버라이딩 overriding [내부링크]

오버로딩 overloading (different parameters)메서드의 이름이 같지만 매개변수가 다른 메서드.한 클래스 내에 이미 사용하려는 이름과 같은 이름의 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의하는 것 오버로딩의 조건 -메서드 이름이 같아야 한다.-매개변수의 개수 or 매개변수의 타입이 달라야 한다. 오버로딩의 예시.1.다른 매체를 입력받아 같은 방식의 출금을 한다. -> 카드를 입력받아 출금을 한다. : 카드출금() 통장을 입력받아 출금을 한다. : 통장출금() 메신저를 통해서 출금을 한다. : 메신저출금() = 출금(카드), 출금(통장), 출금(메신저) 2. 출력시 자주사용하는 Arrays.toString ,println 등등도 오버로딩..

객체지향 Object-oriented / 힙스택/ 메서드 [내부링크]

객체지향 Object-oriented현실세계를 프로그래밍화 하기위해 나온 개념.실제세계는 사물(객체)로 이뤄서 있으며 발생하는 모든 사건들은 사물간의 상호작용이다.e.g)사람이 휴대폰 사용시 두 사물(사람, 휴대폰)간의 상호작용. 객체지향언어: 기존프로그래밍 언어에 새로운 규칙 추가한 발전된 형태의것. 주요특징1.코드 재사용성 높다2.코드 관리 용이3.신뢰성이 높은 프로그래밍 가능. 클래스 Class: 객체를 정의해 놓은 것. 즉 클래스 = 객체라고 생각할수 있음.객체: 생성 하는것. 생성 위해서는 클래스 필요 e.g. 티비설계도(클래스)는 단지 제품(객체)만드는데만 사용됨.클래스- 설계도 ,메뉴얼, 붕어빵 틀... / 객체- 제품, 붕어빵 ..설계도 통해 티비 만들어져야 사용가능. 프로그래밍에서는 먼저..

[JAVA] 다이아몬드 별찍기. 소스코드 [내부링크]

JAVA 다이아몬드 별찍기. 소스코드 및 주석 )public class Star { public static void main (String[] args) { //방법1: 공백따로 , 나머지 삼각형을 또한번 나누어서 이중 for문 사용(총 6파트로 나누어 생각) //상단 System.out.println("방법 1------------"); for(int i=1; i

[JAVA] 변수란? Variable [내부링크]

변수란?변하는 수 : 어떠한 값을 저장하는 공간. 변수 타입1.기본형 primitive type 논리형 boolean 문자형 char 정수형 byte/short/int/long 실수형 float/double계산을 위한 실제 값 저장. 즉 값을 직접 가지는 것. (like 저금통) 2.참조형 reference type 객체의 주소를 저장. 기본형 8개 타입을 제외한 나머지 타입. (like 통장) * 기본형의 종류와 크기.논리형 boolean-1byte문자형 char-2byte (무조건 한글자) 홑따옴표. 'A' '1' '/n' *문자열: 문자형의 모임. 쌍따옴표"ABC" "123" "true" 정수형 byte-1byte / short-2byte / int-4byte / long-8byte실수형 float..

[Spring] STS설치 및 Tomcat 설치 [내부링크]

1. sts 설치: Mac os STS 3.9.4 Based on Eclipse 4.7.3a 2. Apache Tomcat 설치 $ cd Desktop/tomcat $ cd apache-tomcat-8.0.51 $ cd apache-tomcat-8.0.51 $ cd bin/ $ ls -al *.sh -rw-r--r-- 1 hyesuelee staff 23321 Apr 10 00:23 catalina.sh -rw-r--r-- 1 hyesuelee staff 1922 Apr 10 00:23 configtest.sh -rw-r--r-- 1 hyesuelee staff 8509 Apr 10 00:23 daemon.sh -rw-r--r-- 1 hyesuelee staff 1965 Apr 10 00:23 diges..

자바란? JAVA programming language [내부링크]

What is the JAVA programming language? JAVA는 Sun microsystems 에서 개발한 객체지향 프로그래밍 언어이다. 가장 중요한 특징은 운영체제 Operating Systems 에 독립적이다. 자바로 만들어진 프로그램은 운영체제 종류에 관계없이 실행가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행가능하다.이러한 장점으로 자바는 다양한 기종 컴퓨터와 운영체제가 공존하는 인터넷환경에 적합한 언어로써 인터넷의 발전과 함께 많은 사용자층을 확보하고 있다. 또한 객체지향개념과 기존의 다른 프로그래밍 언어, 특히 C++ 장점을 채택하는 동시에 잘 사용되지 않는 부분은 과감히 제외시킴으로써 비교적 배우기 쉽고 이해하기 쉬운 간결한 표현이 가능하도록 했다. 방..

[JAVA]Spring framework 스프링 프레임워크란 ? [내부링크]

Spring framework 스프링 프레임 워크란? 자바플랫폼을 위한 오픈소스애플리케이션 프레임워크.동적인 웹 사이트 개발 위해 서비스 제공. 자바(EE)를 사용하고 웹 개발 위한 프레임워크. 대한민국 웹 표준 기술. 스프링은 많은 개발자가 제안했던 아이디어를 구체화된 프레임워크로 만들어내고,만들어진 프레임워크를 오픈소스 생태계를 통해 효과적으로 검증하고 발전시킨 결과물이다. 자바 엔터프라이즈 표준 기술이 되었다. 간단한 컴포넌트 이용하여 복잡한 애플리케이션 개발 가능하고 라이브러리 패키지를 xml 파일에 집어넣어 관리할수 있다. 필요 패키지가 있을 시 패키지 이름과 다운받을곳을 추가하기만 하면 메이븐이 알아서 다운받아 준다. MVC model이란 ? model 정보처리 e.g. DB정보 입력, 출력,..

[Python]Django Template Languages 장고 템플릿 언어 [내부링크]

Django 템플릿 언어템플릿의 변수는 템플릿이 평가될때 값으로 대치되며 태그는 템플릿의 로직을 제어한다. {% extends "base_generic.html" %} {% block title %}{{ section.title }}{% endblock %} {% block content %} {{ section.title }} {% for story in story_list %} {{ story.headline|upper }} {{ story.tease|truncatewords:"100" }} {% endfor %} {% endblock %} 변수 {{ variable }} 템플릿 엔진이 변수를 만나면 결과로 치환. {{ 변수이름.속성 }} e.g {{section.title}} 필터 : 변수의 표시에..

[Python]Django Static 파일. [내부링크]

Static 파일.Web 에서는 일반적으로 java script, css, image..등의 파일들을 사용하는데 이러한 파일들을 Django에서는 Static파일이라 부름. 이러한 static파일들의 체계적 관리를 위해 장고 프로젝트 디렉토리 (settings.py의 BASE_DIR) 이하에 static서브폴더를 만들어 그곳에 static파일들(css, image...) 을 넣는다. STATIC_URL = '/static/'STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"),] #생성해준 static폴더의 static 파일과 연결. static 폴더에 파일을 넣고 사용하기위해서는 settings.py에 STATICFILES_DIRS 변수 추가.경로가 여러개일수..

[Python]Django App 이란? MTV 패턴이란? [내부링크]

개념 정리. Django App 이란? 장고에서 사용하는 파이썬 패키지. Django App패키지는 그 안에 자신의 model, view, template, URL mapping 등을 독자적으로 가지고 있음.일반적으로 하나의 Project 안에 여러개의 App으로 구성되어 있고, 여러개의 Django App을 모듈화하여 구성하는데,모듈화된 App들로 구성하면 재개발 및 유지보수가 용이함. Django View 란?일반 MVC (model-view-controller)개념에서 Controller와 비슷한 열할.즉, 장고 뷰는 필요한 데이터를 모델에서 가져와 적절히 가공하여 웹페이지에 결과를 출력하도록 컨트롤 하는 역할.View들은 장고 앱 안의 view.py 파일에 존재하며 각 함수가 하나의 view를 정..

[Python]장고 앱 생성 ch2. DB, model 생성. [내부링크]

* Django에서 DB는 기본적으로 SQlite 를 사용한다. SQlite는 python에서 기본적으로 제공된다. 1. 데이터베이스 설치. 처음 migrate 할때는 앱이름 명시 하지 않음. 기본적으로 설치된 앱에 걸쳐 적용할 migrate가 있기 때문.python manage.py migratemigrate 명령: installed_APPS 설정 탐색하여, DB 반영. 즉, migrate명령은 installed_APPS에 등록된 앱에 한해 실행되어짐. *관련 명령어 python manage.py makemigrations (APP-NAME) #마이그레이션 파일 생성 python manage.py migrate (APP-NAME) #마이그레이션 적용 python manage.py showmigratio..

[Python]장고앱 프로젝트 ch1. 프로젝트, 앱 생성하기 [내부링크]

예제로 배우는 파이썬-장고 앱 만들기. Django App 설치된 장고 버전확인:python -m django --version 1. 프로젝트 생성.cd명령으로 코드저장 디렉토리 이동후, 명령수행. django-admin startproject (name whatever you want)이 예제에서는 helloworld 로 하겠다. 자동생성 파일:helloworld/ #프로젝트 담는공간. manage.py #장고 플젝과 상호작용하는 커맨드라인 유틸리티 helloworld/ # 디렉토리 내부: 파이썬 패키지들 저장. __init__.py # 단순 빈 파일 settings.py #현재 장고프로젝트의 환경/구성 저장 urls.py #프로젝트의 URL선언 저장. 장고사이트의 목차. wsgi.py #wsgi호환 ..

CSS 란? Cascading Style Sheet [내부링크]

CSS : Cascading Style Sheet. 1. Inline CSS 2.Internal CSS3.External CSS 외부 스타일 시트: 스타일 시트를 외부파일로 하나 만들어 사용함.장점: 하나의 외부파일만 변경하면 참조된 모든 웹 html 페이지들이 변경됨. 사용법:1. css 파일 생성: e.g.) explore.css , feed.css ...2. html 페이지에 head 태그 사이 link 태그로 외부스타일 시트 파일 import.3. css 파일에 원하는 스타일 적용. 123Colored by Color Scriptercs 내부 스타일 시트 외부에 따로 두지 않고 html 페이지 내에 생성한페이지에 고유한 스타일이 있는 경우 내부 스타일 시트 사용. 사용법1.html 페이지 head..