분류 전체보기 34

중요한 데이터 Properties로 관리하기

API키나 DB에 접근하기 위한 아이디, Pw, URL 등은 소스코드에 직접 적으면 안되는데 이런 보안상 중요한 데이터들을 관리하는 방법으로 properties 파일로 데이터를 따로 빼내어 관리하는 것이다. properties 파일은 key 와 value의 형태로 저장이 되어 key를 통해 해당하는 value를 꺼내올 수 있다.  프로젝트와 DB를 연결해주는 JDBC 객체에서 데이터베이스의 아이디, 비밀번호, 그리고 url을 요구하고 있는데 지금 까지는 코드에 직접적으로 데이터를 넣어서 사용해왔다. 하지만 이러한 중요한 정보를 소스코드에 그대로 담아 공유하는 것은 보안상 매우 부적절한 일이기 때문에 수정하고자 한다 우선 properties 파일들이 저장되어있는 경로를 찾아 연결해주어야 한다.  Sprin..

JSP - 내장 객체

내장 객체- JSP페이지에서 사용할 수 있도록 미리 정의된 객체다- import문 없이 자유롭게 사용 가능하다- 객체를 생성하지 않고 직접 호출하여 사용가능!- static화 되어있는 객체라고 이해하면 안되고 필요할 때 마다 인스턴스화 된다고 이해하자 request 내장 객체- 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보를 저장한다- 일종의 저장소 역할을 하는 것이다!!- HttpServlet을 상속 후 doGet과 doPost를 오버라이딩 하면 자동으로 request객체가 불러와진다 요청 파라미터 관련 메서드- a태그나 form태그에서 설정한 파라미터를 가져오는 역할을 한다- form 태그에서 input의 type이 text일 때 값이 없으면 빈 문자열이 파라미터로 전달된다 관련 메서드의 종류..

JSP - 액션 태그

Action tag (액션 태그)- 액션 태그는 페이지간 이동, 페이지 삽입, 객체 생성 등의 기능을 포함하고 있다- 와 같은 스크립트 태그 형식이 아닌 의 XML형식을 사용한다액션 태그형식설명forward다른 페이지로 이동include외부 페이지 내용 포함 또는 모듈화useBeanuseBean />JSP 페이지에 객체를 생성한다setPropertysetProperty />객체의 프로퍼티 값을 설정getPropertygetProperty />객체의 프로퍼티 값을 가져온다paramparam  />forward, include 태그에 파라미터를 추가한다  forward 액션 태그- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그- 다만 이동할 때 버퍼에 있는 내용을 flush 하기 때문에 이전까지 생성된..

JSP - 디렉티브 태그

Directive tag (디렉티브 태그)- JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그- Client의 요청이 들어오면 웹서버에서는 View 영역에서 JSP 컨테이너를 통해 JSP 파일을 Java Servlet 파일로 변환- 이때 Servlet화 하는 과정에서 JSP 페이지에 대한 메타 정보를 전달하는 태그가 디렉티브 태그다- Directive tag는 크게 page, include, taglib로 나뉜다 page 디렉티브 태그- JSP 페이지에 대한 정보를 설정하는 태그- 컨텐츠 유형, 페이지의 언어, 어떤 문자 인코딩을 쓸 것인지, 자바 클래스는 어떤걸 쓸건지 등의 정보를 담고있다- 하나의 page 태그에 여러 개의 속성 설정이 가능하다- 의 형태로 JSP문서의 최상단에 위치한다 속성설명..

JSP - 스크립트 태그

스크립트 태그- JSP를 사용하는 가장 중요한 방법은 태그를 사용하는 것- JSP는 태그는 크게 스크립트 태그, 디렉티브 태그, 액션 태그로 나뉨- 스크립트 태그는 HTML 코드에 자바 코드를 넣어서 프로그램을 짜도록 해줌- 스크립트 태그는 declaration(선언문), scriptlet(스크립틀릿), expression(표현문) 태그로 나뉨 스크립트 태그형식설명Declaration tag클래스의 멤버 (전역변수, 메서드) 정의Scriptlet tag함수의 사용, 지역 변수 HTML 출력, 변수 값 할당, 조건문, 반복문 등 다양한 자바 코드Expression tag변수, 함수의 호출 결과를 문자열 형태로 출력하는데 사용   Declaration tag (선언문 태그) - 전역변수 선언, 메서드 선언 ..

JSP - 기초

JSP 기초 JSP- 앞서 배운 웹프로그래밍 언어들은 프론트엔드를 구성하고 있다 (HTML, CSS, JavaScript)- Client side의 경우 해당 언어들로 구현할 수 있지만 이를 뒷받침할 서버를 구축하기 위해서는 백엔드 기술이 필요하다- JSP는 HTML문서 기반 Server side 기술로 HTML 문서에 Java 코드가 섞여 구성되며 서버에서 구동된다- HTML 문서에 태그를 활용해 Java 코드를 삽입하여 웹 서버에서 동적인 웹 페이지를 생성한다- Servlet과 달리 기본적으로 구조는 HTML이기 때문에 태그로 이루어져 있어 접고 펼치기가 되어 코드 관리가 쉽다  Servlet- HTML문서 기반인 JSP와 달리 Java 클래스의 일종으로 java파일로 저장된다- JSP와 반대로 Ja..

Git 환경 구축하기

Git 환경 구축하기Git이란?- 코드 관리를 효율적으로 하기위해 버전관리, 백업, 협업 등의 기능을 제공하는 도구- 코드의 수정사항을 기록해주고 추적해준다- 여러 사람들이 한 프로젝트를 수행할 때 변경사항 파악을 하기 쉬워진다- GitHub Desktop, TortoiseGit, SourceTree 등의 GUI 기반 Git 관리 프로그램이 존재한다 CLI 로 깃 하기- Command Line Interface 는 컴퓨터를 쓰다보면 한 번 쯤은 보게되는 터미널 또는 명령프롬프트 창 인터페이스다- CLI로 깃을 사용하기 위해서는 깃을 설치해야하며 리눅스 기반 Shell인 Git Bash를 사용한다- 리눅스 기반이기 때문에 리눅스 명령어를 조금은 알아야하고 GUI기반이 아닌만큼 조작이 어렵다는 단점이 있다-..

Git 2024.09.30

Java 프로그래밍 - 자바 네트워크 프로그래밍

자바 네트워크 프로그래밍 네트워크네트워크란 분산된 두 개 이상의 컴퓨터를 통신망에 연결한 것을 의미개발자로서 분산된 컴퓨터들이 다른 컴퓨터와 송수신할 수 있는 프로그램을 만드는 것이 네뚹 프로그래밍임  클라이언트와 서버 클라이언트는 서비스를 사용하는 컴퓨터서버는 서비스를 제공하는 컴퓨터로 뭐 하나만 하는게 정해진게 아니라 컴퓨터는 다 클라이언트와 서버 모두인데 무엇을 하는지에 대한 비중이 클라이언트와 서버를 구분하게함 IP주소 - IP주소란? : 컴퓨터와 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해 컴퓨터 마다 부여되는 주소 - MAC주소랑 차이점은? MAC주소는 하드웨어 주소 IP주소는 네트워크 주소 - IPv4 기준 4byte의 주소를 가지고 있으며 각 바이트는 8비트로 이루어져 있어 25..

Java 2024.09.26

Java 프로그래밍 입출력, IO패키지

IO와 스트림(Stream)IO란? Input과 Output의 준말로 마우스,키보드 입력 등 프로그램을 들어오는 값을 Input 값, 모니터, 스피커 출력 등 밖으로 나가는 값을 Output값이라 한다 Stream이란?스트림이란 데이터의 연속적인 흐름을 의미하는데 말 그대로 강 줄기가 흘러가듯 한 방향으로 데이터처리가 이뤄진다는 점이 있다.단방향인 만큼 시작하는 점과 끝나는 점이 있는 이를 Input과 Output으로 나타낼 수 있다.예를 들어 키보드를 통해 무언가를 입력하고 프로그램을 통해 모니터로 출력이 된다면 이는 곧 키보드에서 모니터까지 한 방향으로 데이터가 흘러간다고 볼 수 있다.이러한 구조 때문에 입력 스트림과 출력 스트림을 각각 따로 사용해야 하며 먼저 들어온 데이터가 먼저 나가는 First..

Java 2024.09.25

Java 프로그래밍 - 추상 메서드와 추상 클래스

추상메서드와 추상클래스 프로젝트를 수행하다 보면 협업하는 사람과 나의 코드가 다르게 나타나는 경우가 많다. 특히 클래스 내 메서드의 경우 협업자와 다른 방식으로 코드를 작성하는 경우가 발생할 수 있는데 이런 경우 우리는 추상 클래스를 사용해 이런 문제를 어느 정도 해결 할 수 있다.  추상클래스란? 추상은 어떤 대상이나 개념에서 구체적인 부분을 단순하게 만들어 이해하기 쉽게 만드는 것으로 "복잡함의 단순화"가 중요한 키워드라 볼 수 있다. 추상메서드 또한 이런 의미와 일맥상통하는데 부모 클래스에서 선언할 메서드의 기능 부분, 즉 "디테일"을 단순히 해서 작업할 때 용이하도록 만들 수 있는 기능이라 볼 수 있다. 이쯤 되면 추상메서드와 추상 클래스에 대한 내용이 조금 정리되어야 할 것 같은데 쉽게 말해 추..

Java 2024.09.19