이론

Call by Value / Call by ReferenceCall by Value (값에 의한 호출)값을 복사하여 처리한다.변수의 복사본이 전달되며, 원래 값이 수정되지 않는다.실제 인수는 다른 메모리 위치에 생성된다.Call by Reference(참조에 의한 호출)값이 주소를 참조하여 직접 값에 영향을 준다.변수 자체가 전달되며, 원래 값이 수정된다.실제 인수는 같은 메모리 위치에 생성된다.자바의 Call by Value 동작 방식자바의 데이터 타입은 다음과 같이 크게 두 가지로 나누어진다.원시 타입(primitive type) :Numeric Type (byte, short, int, float, long,double, char)Boolean Type (boolean)참조 타입(reference ..
트랜잭션(Transaction)하나의 트랜잭션은 하나의 작업단위로 처리예로 추가와 삭제라는 작업이 하나의 작업으로 묶여있다면 두 작업은 모두 성공하거나 실패되어야 한다는 것이다.작업이 정상적으로 종료 되었다면 영구적으로 저장(Commit) 되어야 하고 잘못되었다면 되돌려야 한다(Rollback)Java jdbc를 사용할 때는 커넥션 객체의 setAutoCommit(false) 메소드를 통해 오토 커밋을 해제하고 직접 커밋과 롤백을 수행할 수 있다Spring jdbc 나 MyBatis에서는 커넥션을 자동 생성/커밋이 되기 때문에 커밋/롤백이 자유롭지 않다. 따라서 스프링에서 트랜잭션을 관리해주는 기능 구현이 필요하다.jdbc를 이용해 DB 연동을 했을 때 트랜잭션 관리는 DataSourceTransacti..
AOP(Aspect Oriented Programming)관점 지향 프로그래밍어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각가 모듈화 하겠다는 것이다.모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다.스프링 AOP 특징프록시 패턴 기반의 AOP 구현체, 프록시 객체를 쓰는 이유는 접근 제어 및 부가기능을 추가하기 위해서스프링 빈에만 AOP 적용가능모든 AOP 기능을 제공하는 것이 아닌 스프링 IoC와 연동하여 언터프라이즈 애플리케이션에서 가장 흔한 문제(중복코드, 프록시 클래스 작성의 번거로운, 객체들 간 관계 복잡도 증가..)에 대한 해결책을 지원하는 것이 목적입니다.AOP 주요 개념@Aspect : 흩어진 관심사를 모듈화 한것, 주로 부..
동일성(Identity) : 두 객체의 메모리 주소가 같음을 의미한다.동일성(Equality) : 두 객체의 값이 같음을 의미한다.void 동일성() { List crews1 = List.of("ash", "ako", "maco"); List crews2 = crews1; System.out.println(crews1 == crews2); // true System.out.println(crews1.equals(crews2)); // true}void 동등성() { List crews1 = List.of("ash", "ako", "maco"); List crews2 = List.of("ash", "ako", "maco"); System.out.println(crews..
· 이론
변수 선언 방식var 중복 선언 가능. 재할당 가능var title = "book";console.log(title); //bookvar title = "movie";console.log(title); //movievar title = "music";console.log(title); //music위 코드와 같이 선언한 변수가 동일한 이름으로 중복 선언이 가능하다즉, 마지막에 할당된 값이 최종 변수에 저장된다.let중복 선언 불가. 재할당 가능let title = "book";console.log(title); //booklet title = "movie";console.log(title); //Uncaught SyntaxError: Identifier 'title' has already been dec..
· 이론
JavaScript의 역할DOM을 알기 위해서는 JavaScript의 역할을 알아야합니다.JavaScript는 HTML 문서를 조작하기 위해 만들어진 언어입니다.HTML 문서를 JavaScript가 어떻게 조작할까?JavaScript는 HTML을 컨트롤러하기 위해서 나왔기 때문에 문자열이 아닌JavaScritp가 알아들을 수 있는 형태로 바꿔야했습니다.브라우저 안에는 웹 문서를 해석할 수 있는 렌더링 엔진이 있는데, 브라우저로 HTML파일을 열게 되면 렌더링 엔진이 HTML로 작성된 문서를 한줄 한줄 해석합니다. 그리고 해석 끝나면 그 문서를 객체화 하여 자바 스크립트로 접근 할수 있도록 합니다. 우리는 이걸 문서를 객체화 했다고 해서 문서(Document) 객체(Object) 모델(Model) 즉 DO..
· 이론
WEB Server웹 서버는 작성된 html 페이지 등을 네트워크 망에 종속되지 않고, 웹서비스를 할 수 있도록 어플리케이션클라이언트에게 요청을 받으면 해당 요청을 판단하여 정적인 자원은 WAS를 거치지 않고 바로 응답해주고, 동적인 자원은 WAS에 요청을 전달하여 WAS에서 받은 결과를 클라이언트에게 응답합니다.html,css,js 등등WAS(Web Application Server)WAS는 웹 서버와 웹 컨테이너로 웹 상에서 사용하는 컴포넌트를 올려놓고 사용하게 되는 서버인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소트프웨어 엔진)웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별되며, 주로 데이터베이스 서버와 같이 수행된다...
MyBatis를 사용하면 DB를 쉽게 다룰 수 있다    예시) preparedstatement 처럼 쿼리문을 복잡하게 입력하지 않고 실제 쿼리문과 유사하게 작성할수 있다.    preparedstatement : "UPDate users Set name=?,email=?,WHERE id =?"    MyBatis : UPDATE users Set name = #{name}, email = #{email}, WHERE id = #{id}MyBatis의 또 하나의 장점은 동적 쿼리 작성이 가능하다MyBatis 사용 방법 : 의존성 설정 -> DB 설정 -> MyBatis 설정 -> Mapper 인터페이스 작성 -> xml 작성 -> MyBatis 사용MyBatis데이터베이스를 쉽게 다룰 수 있도록 도와주는..
의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 객체를 받아 사용하는 것입니다.각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결 시켜준다.@Autowired 어노테이션을 이용한 다양한 의존성 주입(DI) 방법을 제공합니다.의존성 주입을 해야하는 이유Test가 용이해진다.코드의 재사용성을 높여준다.객체 간의 의존성(종속성)을 줄이거나 없앨 수 있다.객체 간의 결합도를 낮추면서 유연한 코드를 작성할 수 있다.의존성 주입의 3가지 방법1. 필드 주입(Field Injection)@Controllerpublic class CocoController{ @Autowired private CocoService cocoService;}필드에 @Autowired 어노테이션..
제어의 역전(IoC)기술을 통해 어플리케이션의 느슨한 결합을 도모합니다.컨트롤의 제어권이 사용자가 아닌 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출 합니다.스프링 프레임워크도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨데이너 입니다.IoC의 분류DL (Dependency Lookup)저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lockup하는 것 입니다.DI (Dependency Injection)각 클래스 간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결 해주는 것 입니다.Setter Injection(수정자 주입)Constructor Injection(생성자 주입)Meth..
lavender1122
'이론' 카테고리의 글 목록