Back End (13) 썸네일형 리스트형 배열 1. 배열의 선언 → 배열변수를 정의 데이터 타입[] 변수명; (이 형식을 지향함) 데이터 타입 변수명; (지양함) 2. 배열의 생성 → 메모리에 저장구조가 만들어진다. → 작성할 배열의 요소의 갯수를 명시 → new 생성할 배열 요소의 타입[갯수] ① 기본형 배열 - 1차원 배열을 뜻하며 배열의 각 요소가 기본형 데이터 타입의 값을 저장 - 기본형 데이터 타입은 int, double, boolean, char 등과 같은 원시 데이터 타입을 말한다. ② 참조형 배열 - 배열의 각 요소가 다른 객체의 주소를 저장 - 참조형 데이터 타입을 클래스, 인터페이스, 배열 등을 말한다. - 실제 객체는 힙(heap) 메모리에 생성되고, 객체 배열의 요소는 해당 객체를 참조하기 위한 주소를 저장 ③ 다차원 배열 - .. 제어구문 - 문장의 흐름에 따라서 순차형, 선택형, 반복형 1. 조건문 (Conditional Statements) ① if문 - if문, if~else문, if~else if문 if(조건은 true / false 로 리턴되는 연산식이나 메소드 호출문) { 조건이 만족하는 경우 실행될 문장 } else{ 조건이 만족하지 않는 경우 실행될 문장} ② switch문 (Loop Statements) - if else if문을 대신할 수 있도록 만들어진 제어구문 - 다중분기 - 단일값으로 평가할 수 있는 변수나 식이나 메소드 호출문을 명시 - switch()안에서 발생한 값들이 case문의 값과 일치하면 실행된다. - case문에는 >, >=, 자바의 데이터 타입 00. 기본 1) 자바 소스 파일의 파일명은 public 클래스명과 동일해야 한다. 2) 자바는 대소문자를 구분한다. 3) 소스 파일이 변경되면 컴파일부터 다시 진행하기 4) 문장은 ; 으로 끝나야 한다. 01. 변수 1) 프로그램 사용 중에 발생하는 임의 값을 저장하기 위한 공간 2) 변수명의 시작은 항상 영문자 소문자로 작성 3) 중간에 _나 숫자를 사용할 수 있다. 4) 키워드(예약어)는 변수로 사용할 수 없다. 5) 변수에 할당되는 값을 리터럴이라고 한다. 6) 형식 → 데이터 타입 변수명 = 변수에 저장할 값(리터럴); 예) 숫자(정수)를 저장할 수 있는 변수를 선언하고 100을 할당 02. 자바의 데이터 타입 - 기본형은 실제 값을 가지고 있지만 참조형은 참조할 수 있는 주소 값을 가진다. -.. 자바 환경설정 및 개념 00. 다운 1) jdk 다운(17버전) www.oracle.com 2) 이클립스 다운 www.eclipse.org 01. 환경설정 1) JAVA_HOME(새로 만들기) C:\javaweb\tool\jdk-17_windows-x64_bin\jdk-17.0.6 2) path(기존) C:\javaweb\tool\jdk-17_windows-x64_bin\jdk-17.0.6\bin * cmd창 버전 확인하기 java -version 자바 특징1. 플랫폼에 독립적이다. 02. 자바로 개발할 수있는 컴포넌트 ① Application ② Applet - 느려서 더 이상 잘 안 씀 ③ Servlet - 웹 기술 (웹에서 사용되는 백엔드 기술) 1) 자바 소스코드 작성 (파일명.java) ex) Hello.java 2).. 웹소켓통신 websocket은 처음에 연결될 때만 3way 가 발생하고, 내가 끊기 전까지 계속 연결된다. 처음 이후에는 JSON이 된다. - HTML5 표준기술 - HTTP환경에서 TCP를 통해서 접속해서 통신 - TCP통신으로 접속을 하기 때문에 최초 접속시에 3way handshake가 발생 - 연결 유지 - 이벤트가 발생되고 이 이벤트에 대한 처리 작업을 적용하는 방식 - 클라이언트에서는 자바스크립트를 이용해서 작성 1. config - @EnableWebSocket을 이용해서 웹소켓 통신을 활성화시켜야 한다. - ServerEndpointExporter를 통해서 웹소켓이 생성될 때마다 객체가 생성되고 통신할 수 있도록 작업 ─────────────── └ 웹소켓을 사용하기 위해서 필요한 ServerEndp.. 트랜잭션(Transaction) - 같은 세션에만 트랜잭션을 관리할 수 있다. 1. 선언적 트랜잭션 2. 프로그래밍 트랜잭션 [트랜잭션관리] - 논리적인 작업그룹에서 진행되는 모든 단위의 작업이 에러 없이 모두 실행이 완료되면 디비에 정상반영될 수 있도록 commit 중간에 오류가 발생되면 모든 작업을 취소(rollback) - 트랜잭션처리는 비지니스로직이 있는 서비스계층에서 처리 - 트랜잭션처리는 DBMS마다 다르고, 디비액세스 방법(JdbcTemplate, JPA, Mybatis...)에 따라 모두 다르게 해야 한다. - 스프링에서는 이렇게 모두 다른 방법으로 처리되는 트랜잭션을 관리할 수 있도록 TransactionManager라는 것을 만들어서 제공한다. - TransactionManager가 트랜잭션을 처리하기 위해서 내부에서.. AOP AOP (Aspect Oriented Programming - 관점지향 프로그래밍) - OOP를 보조하기 위한 기능 - 핵심기능과 부가기능을 따로 관리하기 위해서 사용 - 핵심기능에서 부가기능을 분리하고 이 부가기능을 어디에 적용할 것인지 선택할 수 있도록 작업 - 부가기능과 부가기능을 어디에 적용할지 하나의 모듈로 개발된 것이 aspect - aspect는 부가기능과 부가기능을 어디에 적용할지 정의한 것이다. ----------- ----------------------------------------- 로그기록, 트랜잭션처리, 보안... 컨트롤러에 적용, DAO.... - AOP는 스프링에서도 지원이 된다 - AOP는 구현해 놓은 프레임워크가 AspectJ라는 프레임워크 - 스프링에서도 AspectJ.. JPA 실습 복습하기 1. 프로젝트 생성 (추후 사진 추가) 2. 파일 구조 3. application.properties 설정 server.port=8088 server.servlet.context-path=/jpa # thymeleaf spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html spring.thymeleaf.view-names=thymeleaf/* # db spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/erp?serverTimez.. spring data → 다양한 플랫폼에 데이터를 저장하고 가져올 수 있도록 만들어진 기능 → spring data jpa는 jpa를 스프링에서 편하게 사용할 수 있도록 제공되는 기능 → 공통으로 제공되는 기능이 다양 - CRUD - Query자동생성 - 페이징 처리 - 정렬 spring → spring data jpa → jpa Repository (save, findOne, count, delete...) ↑ CrudRepository ↑ PagingAndSortingRepostiory → common라이브러리 (findAll) ↑ JpaRepository (findAll, save, deleteXXX, getOne...) 우리가 사용하는 경우 public interface MyRepository extends JpaRe.. EntityManager → JPA에서 핵심기능을 제공하는 서비스(JPA는 EntityManager라는 클래스를 통해서 동작) → EmtityManager는 Factory를 이용해서 생성해야 하지만(자바를 이용하는 경우) 스프링에서는 JPA에 대한 설정을 해 놓으면 자동으로 만들어서 Injection해준다. → 개발자는 SQL문을 직접 작성하지 않고 EntityManager가 제공하는 메소드를 이용해서 작업하면 JPA내부에서 자동으로 SQL문이 만들어지고 JDBC API를 만들어 DBMS와 연동한다. → JPA의 모든 데이터변경(insert, delete, update)은 트랜잭션 안에서 이루어진다. 트랜잭션 처리를 하지 않으면 작업을 진행할 수 없다. 서비스단에서 처리 1) insert (C) → persist메소드 호출 → .. 이전 1 2 다음