본문 바로가기

Dev.BackEnd

(66)
Spring 의 시작, 프레임워크의 구성요소와 동작원리 Spring Framework의 구성요소와 동작원리POJO 스프링의 특징을 살펴보면 POJO라는 단어가 등장한다. POJO란 Plain Old Java Object로 직역하자면 평범한 옛날 자바 객체이다. 말 그대로 자바 객체인 것이다. 이게 뭐라고 스프링의 특징이라고 까지 하는가? 과거에는 자바로 웹 애플리케이션을 설계하기 위해 Servlet 클래스를 상속받아 구현하였다. 이 Servlet 클래스는 POJO가 아닌 것이다. 개발자가 직접 Servlet 클래스를 작성하지 않고 POJO 만으로 웹 애플리케이션을 구축할 수 있다는 것이 스프링의 특징이다. 그러면 어떠한 장점이 있는가? Servlet 클래스를 이용해서 자바 웹 애플리케이션을 구축하려면 반드시 Servlet에서 요구하는 규칙에 맞게 클래스를 만..
[Java] 자바의 기본적인 이슈들 5가지 #JAVA의 기본적인 이슈들 5가지 1. 다시 자바의 기본으로 JDK(Java Development Kit) : 자바 개발 도구 - JVM용 소프트웨어 개발 도구 JRE(Java Runtime Environment) : 자바 실행 환경 - JVM용 OS JVM(Java Virtual Machine) : 자바 가상 머신 - 가상의 컴퓨터 JDK를 이용해 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동된다. JDK가 JRE를 포함하고 JRE는 JVM을 포함하는 형태로 배포된다. JDK는 자바 소스 컴파일러인 javac.exe를 포함하고 있고,JRE는 자바 프로그램 실행기인 java.exe를 포함하고 있다. 2. 메모리는 어떻게 사용되는가 일반적인 프로그램은 이 프로그램에게 할당된 메모리 ..
#SLiPP Spring boot, JPA 강의 - 반복주기 6 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 6학습 내용AJAX를 활용해 답변 추가 기능 구현AJAX를 활용해 답변 삭제 기능 구현질문 목록에 답변 수 보여주기 기능 추가 중복 제거 및 리팩토링 JSON API 추가 및 테스트 쉘 스크립트를 활용해 배포 자동화 Intro기존의 MVC구조에서 서버와 클라이언트가 데이터를 주고 받는 방식은 다음과 같다. 클라이언트에서 데이터가 서버의 컨트롤러에 날라가고(프런트 컨트롤러의 역할), 컨트롤러는 모델에게 그 데이터를 전달하여 데이터베이스에 저장(페이지 컨트롤러의 역할)한다. 그리고 컨트롤러는 데이터의 변경사항을 반영하여 HTML 전체를 다시 구성(뷰의 역할)한 다음에 클라이언트에게 보내준다. 그러면 클라이..
[JAVA Adv] Annotaion 에 대해서, Annotaion (어노테이션인가, 애너테이션인가, 애노테이션인가)도입 배경 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시키기 위해서이다. 어노테이션 이전에는 주석을 사용하여 소스코드에 대한 설명을 적었고, 이 주석을 javadoc.exe라는 프로그램을 사용하여 문서를 작성하였다. 문법으로서 역할 어노테이션은 기본적으로 인터페이스이다. JEE 5부터 추가된 문법이며, 사전적 정의로는 주석이라는 의미를 갖고 있다. 주석과는 역할이 다르지만 주석처럼 달아 클래스에 특수한 의미를 부여하거나, 기능을 주입할 수 있고, 이 의미는 컴파일 타임 또는 런타임에 해석될 수 있다. 기존의 자바 웹 애플리케이션들은 구성과 설정값들을 외부의 XML 설정 파일에 명시하는 방법으로 프로그래밍..
[Java Adv] 16. Lambda Expression + Inner class, anonymous class 내부클래스란(inner class)? 말 그대로 클래스 내부에 선언된 클래스를 말한다. 두 클래스가 서로 긴밀한 관계에 있기 때문에 내부에 선언한 것이다. 내부 클래스를 사용하면 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 이로 인해 코드의 복잡성이 감소하며 캡슐화를 할 수 있게 된다. 단, 내부 클래스는 외부 클래스를 제외하고 다른 클래스에서 잘 사용되지 않는 것이어야 한다. 익명 클래스(anonymous class) 내부 클래스에는 익명 클래스라는 것이 존재한다. 익명 클래스도 마찬가지로 이름 그대로의 역할을 수행한다. 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스로, 일회용 클래스인 것이다. 이름이 없기 때문에 생성자도 가질 수 없으며, 조상클래스의 이름이나 구현하고자 하는 인터페이스..
#SLiPP Spring boot, JPA 강의 - 반복주기 5 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 5학습 내용 1. 회원과 질문 간의 관계 매핑 및 리팩토링 2. 날짜 추가하기 3. 질문 상세보기 기능 / 질문 수정 및 삭제 기능 구현 - PutMapping, DeleteMapping 4. 답변 추가 및 답변 목록 기능 구현 5. Refactoring을 통한 중복 코드 제거 회원과 질문 간의 관계 매핑 JPA에서도 데이터베이스의 개념인 릴레이션 간의 관계를 설정할 수 있다. SQL 문을 사용했을 때와 다른 점은 테이블과 테이블의 관계를 객체 상에서 설정해주는 것 뿐이다. Question 객체와 User 객체가 관계를 맺도록 한다고 했을 때 User 객체와 Question 객체는 어떠한 관계인가를 따..
#SLiPP Spring boot, JPA 강의 - 반복주기 4 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 4학습 목표 쿠키와 세션에 대한 대략적인 이해 로그인 사용자에 대한 접근 제한 1. 로그인 기능 구현 2. 로그인 상태에 따른 메뉴 처리 및 로그아웃 3. 로그인 사용자에 한해 자신의 정보를 수정하도록 수정 4. 질문하기, 질문목록 기능 구현5. 중복 제거 및 리팩토링6. 원격 서버에 소스코드 배포 1. 로그인 기능 구현 로그인 기능은 페이지가 바뀌더라도 로그인 상태를 유지하는 것이 중요하다. 어떻게 상태를 유지할 것인가? 기본적으로 웹 애플리케이션인 상태를 저장하는 방법이 없다. 코드를 작성하기 전에 로그인을 구현하는 과정을 살펴보자. 로그인의 흐름은 대략 이렇다. 로그인하려는 아이디를 전달받으면 해..
[Spring boot] Spring-Boot에서 JDBC Driver 설정하고 사용하기 Spring boot + jdbc driver 로 데이터베이스 사용 환경 설정 1. application.properties 에 해당 코드를 추가한다.code>>12345spring.application.name=SpringBootJdbcspring.datasource.url=jdbc:mysql://localhost/dbproject?autoReconnect=true&useSSL=falsespring.datasource.username=rootspring.datasource.password=(****)spring.datasource.dirverClassName=com.mysql.jdbc.DriverColored by Color Scriptercs 해당하는 Database를 dbproject라는 자리에 적..