cheershennah의 등록된 링크

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

Tistory

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 클라이언트 단이 ..

Tistory

코로나 집콕시대, IT개발자는 다 재택 할 거 같죠?

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

Tistory

메이븐이란? Maven 파헤치기. pom,repository,lifecycle ...

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

Tistory

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

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

Tistory

개발을 좋아하지는 않습니다만, 개발자입니다.

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

Tistory

비전공자에서 개발자로 전향. 가능할까?

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

Tistory

보통의 개발자의 리얼 라이프.

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

Tistory

[JAVA]에러/예외처리란? Error/Exception Handling

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

Tistory

[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이 발생했을 경우, 이를 처리하지 위한 문장적는다. //보통 이곳에 예외메세지를 출력..

Tistory

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

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

Tistory

아파치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도 함께 존재한다. 톰캣..

Tistory

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..

Tistory

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" 을 "..

Tistory

프록시 서버 란? Proxy Server

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

Tistory

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..

Tistory

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..

Tistory

쿠키Cookie와 세션Session 이란? 차이점.

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

Tistory

스프링 시큐리티란? 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..

Tistory

Rsync 알싱크 란?

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

Tistory

나스란 ? NAS storage

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

Tistory

REST 란? Restful API 란?

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

Tistory

오라클 에러 ORA-01950: 테이블스페이스 권한이 없습니다.

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

Tistory

도메인 기반 이메일 인증 SPF / DKIM / DMARC

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

Tistory

[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레코드..

Tistory

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

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

Tistory

[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_..

Tistory

[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 계정으로 전환한다. 로그..

Tistory

[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..

Tistory

[Network]SPF란? Sender Policy Framework

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

Tistory

[jquery] DOM selector 접근

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

Tistory

[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..

Tistory

[spring] 어노테이션이란? @modelAttribute

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

Tistory

[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 //텔넷 연결 종료

Tistory

[스프링]자바에서 설정파일(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..

Tistory

[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 로부터 찾을때 사용할 이름을 지정합니다. 두 옵션은 동일한 기능을 합니다..

Tistory

Tiles 타일즈란 ?

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

Tistory

톰캣 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 등 비즈니스 로직을 수..

Tistory

[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 ..

Tistory

소스 말 때 형상관리 주용어

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

Tistory

[network][mailserver]SMTP /POP3 / IMAP 란?

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

Tistory

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

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

Tistory

[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 [패키지이름] 아직 ..

Tistory

[linux]Shell / shell script 란 ?

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

Tistory

[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..

Tistory

[network]SSH란? (Secure Shell Protocol)

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

Tistory

[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; 결과 -> 함수 테스트 ** 오라클에서 대입연산자는 =가 아니라 := 이다.

Tistory

[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 페이지에 출력할 내용..

Tistory

[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..

Tistory

[DB][oracle] 프로시저 Procedure

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

Tistory

[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..

Tistory

Java static 이란? 개념/사용법

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

Tistory

siteMesh 사이트메쉬란?

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

Tistory

스크립트 script 란?

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

Tistory

MAVEN 메이븐이란?

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

Tistory

XML 이란? DTD 와 스키마

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

Tistory

[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 하고있다..

Tistory

마이바티스 란? mybatis 설정방법 및 순서.

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

Tistory

Junit이란? 어노테이션

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

Tistory

log4J란? log4j설정법.

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

Tistory

J2EE란? 자바2 엔터프라이즈 에디션

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

Tistory

런타임(Runtime) vs 컴파일(Compile)

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

Tistory

Spring- Singleton pattern 싱글톤 패턴이란?

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

Tistory

컬렉션 프레임워크(collection framework)란? - List vs Map

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

Tistory

[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 멀티파트 리졸버는 멀티파트 형식의 데이터가 전송괸 경우, 해당 데이터를 스프링에서 사용할 수 있도록 변환해준다. 스프링이 기본으로 제공하는..

Tistory

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 - 파라..

Tistory

제네릭 Generic 이란?

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

Tistory

형상관리 SVN이란?? SubVersioN

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

Tistory

이클립스 프로젝트 깃허브에 업로드하기.

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 완료. 되었으면 깃허브 레파지토리에 가서 확인해보자. 프로젝트의 모든 파일들이 업로드 된것을 확인할 수 있다 ..

Tistory

제이쿼리란? 에이젝스란? 제이큐그리드란? JQuery / Ajax / Jqgrid

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

Tistory

[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..

Tistory

[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..

Tistory

맥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] 넣는다

Tistory

스프링 흐름 파악하기. 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..

Tistory

인터페이스 Interface vs 추상클래스 abstract class

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

Tistory

스프링이란? Spring / IoC 역제어 / DI 의존성 주입

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

Tistory

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) 만약 스크립트 릿에서 ..

Tistory

아파치란? 톰캣이란 ? (aka. 아파치 != 톰캣) 웹서버 vs 와스

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

Tistory

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..

Tistory

JSP란 ? Java Server Pages

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

Tistory

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..

Tistory

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 ..

Tistory

프로시저 예제.

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...

Tistory

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 . 모든 운영체제에서 동작. 웹 페이지 소스코..

Tistory

SQL - CURSOR 커서

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

Tistory

데이터 검증하기 - 값 보정방법 및 쿼리

데이터 검증하기 - 값 보정방법 및 쿼리 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] 임..

Tistory

[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..

Tistory

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

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

Tistory

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..

Tistory

Database - 정규화란? Normalization

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

Tistory

[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. 중복 데이터..

Tistory

SQL - View 뷰란? Trigger 트리거란?

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

Tistory

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') →..

Tistory

[DB]Transaction 트랜잭션이란?

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

Tistory

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/..

Tistory

SQL - Procedure 프로시저란?

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

Tistory

[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에 해당 컬럼을..

Tistory

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..

Tistory

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..

Tistory

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 임. 키 값이 있는 테이블의 칼럼 값 비교 후, 조건에 맞는 값..

Tistory

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..

1 2 3