본문 바로가기

TIL56

내일배움캠프 5주차 Spring Data JPA 오늘의 키워드영속성 컨텍스트의 기능 Spring Data JPA 오늘의 내용영속성 컨텍스트의 기능Entity객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간영속성 컨텍스트는 내부적으로 캐시 저장소를 가지고 있다우리가 저장하는 Entity객체들이 1차 캐시, 저장소에 저장된다캐시 저장소는 Map 자료구조 형태로 되어있다영속성 컨텍스트와 트랜잭션의 생명주기 스프링 컨테이너 환경에서는 영속성 컨텍스트와 트랜잭션의 생명주기가 일치한다 트랜잭션이 유지되는동안은 영속성 컨텍스트의 기능이 사용가능하다 Spring Data JPAJPA를 쉽게 사용할 수 있게 만들어놓은 하나의 모듈JPA를 추상화시킨 Repository 인터페이스를 제공한다Repository 인터페이스는 Hibernate와 같은 JPA구현체를 사용해서.. 2024. 5. 16.
내일배움캠프 5주차 Spring Layer 3계층, IoC Container, Bean 오늘의 키워드Spring Layer 3 계층IoC(제어의 역전), DI(의존성 주입)IoC Container와 BeanORM(Object-Relational Mapping)JPA(Java Persistence API)오늘의 내용Spring의 3 Layer ArchitectureController, Service, Repository로 처리과정을 분리한다Controller : 클라이언트의 요청을 받고 Request 데이터가 있다면 Service에 같이 전달하고 Service에서 처리 완료된 결과를 클라이언트에게 응답한다Service : 사용자의 요구사항을 처리한다. DB 저장 및 조회가 필요할 때는 Repository에게 요청한다Repository : DB관리(연결, 해제, 자원관리)를 하고  CRUD작업.. 2024. 5. 15.
내일배움캠프 5주차 Spring MVC 디자인 패턴, 정적페이지 오늘의 키워드Spring MVC정적 페이지와 동적페이지JacksonPath Variable과 Request ParamDTODatabase@ModelAttributeJDBC(Java Database Connectivity)오늘의 내용MVC 디자인 패턴Model, View, Controller의 약자로 소프트웨어 디자인 패턴 중 하나코드의 재사용성과 유지보수성을 높이고 개발자들 간의 협업을 용이하게 해 준다Model : 데이터와 비즈니스 로직을 담당하고 데이터 베이스와 연동해 데이터를 저장하고 불러오는 등의 작업을 수행한다View : 사용자 인터페이스를 담당하고 사용자가 보는 화면을 디자인하고 구현한다Controller : Model과 View 사이의 상호작용을 조정하고 제어하는데 사용자 입력을 받아 Mod.. 2024. 5. 14.
내일배움캠프 5주차 API, HTTP, 테스트 코드 ..... 오늘의 키워드APIHTTP테스트 코드Lombok과 applicarion.properties오늘의 내용네트워크와 웹서버네트워크 : 여러 대의 컴퓨터나 장비가 서로 연결되어 정보를 주고받는 것이다웹서버인터넷을 통해 http를 이용해 웹상 클라이언트의 요청을 응답해주는 통신이다브라우저를 통해 http request로 웹사이트 웹서버에 요청한다웹서버가 요청을 승인 http response를 통해 웹사이트 데이터를 브라우저에 전송한다브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그린다API(application programming interface)다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙이다개발자는 다른 어플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를.. 2024. 5. 13.
내일배움캠프 4주차 Call by Value, Call by Reference, ... 오늘의 키워드Call by ValueCall by Reference되부름 호출(재귀적 메서드 호출)오늘의 내용Call by Value메서드 내에서 인수로 전달되는 데이터형과 동일한 종류의 데이터형 변수를 만들어 값을 복사한 후 메서드 내의 변수만 가지고 수행하는 방식인수로 기본 데이터형을 사용하면 모두 Call by Value가 된다메서드 내의 처리 결과는 메서드 밖의 변수에는 영향을 미치지 않는다Call by Value 예제package num5.callbyvalue;public class CallbyValueTest1 { public static void swap(int x, int y) { int temp = x;//x값을 보관 x = y; y = temp.. 2024. 5. 9.
내일배움캠프 4주차 Java 연습1 오늘의 키워드랩퍼 클래스 객체의 비교법parse- 계열 메서드오늘의 내용랩퍼 클래스에서 객체의 비교법== 연산자가 아닌 equals메서드를 사용해서 비교해야 한다==연산자로 비교하면 레퍼런스 데이터형 변수의 주소 값을 비교하기 때문에 완전 동일한 객체가 아닌 이상 '다르다(!=)'는 결과가 나온다아래 코드를 사용하면 ==연산자를 사용해서 비교해 else부분이 실행된다package num4.compare;public class compare1 { public static void main(String[] args) { Integer x = new Integer(100); Integer y = new Integer(100); if(x==y) { .. 2024. 5. 8.
내일배움캠프 4주차 객체지향 오늘의 키워드객체지향Compile, Runtime오버라이딩, 오버로딩@Override Annotation객체 지향 4가지 특성오늘의 내용객체지향로직을 상태(state)와 행위(behave)로 이루어진 객체(Object)로 만드는 것이다Compile과 RuntimeCompile 소스 코드를 작성하고 컴파일러에 의해 컴파일되는 시점컴파일러는 코드를 검사하고 바이트 코드로 변환Runtime프로그램이 실행되고 사용자와 상호작용하는 동안 발생하는 시간프로그램이 시작되고 객체가 생성되며 메서드가 호출되는 시간런타임 시점에서 객체의 실제 타입을 결정하고 해당 객체의 메서드가 호출된다오버라이딩, 오버로딩오버로딩같은 이름은 가진 메서드나 생성자를 여러 개 정의하는 것매개변수의 타입, 순서, 개수가 다를 때 사용정적 다형.. 2024. 5. 7.
내일배움캠프 3주차 람다와 스트림 오늘의 키워드람다스트림오늘의 내용람다어딘가 구현하지 않고 그냥 간단하게 구현해서 넘길 때 사용된다함수값으로 평가되며 한 번만 사용된다람다 함수 기본 문법// 기본적으로 문법은 다음과 같습니다.(파라미터 값, ...) -> { 함수 몸체 }// 아래의 함수 두개는 같은 함수입니다.// 이름 반환타입, return문 여부에 따라 {}까지도 생략이 가능합니다.public int toLambdaMethod(int x, int y) {return x + y;}(x, y) -> x + y// 이런 함수도 가능하겠죠?public int toLambdaMethod2() {return 100;}() -> 100// 모든 유형의 함수에 가능합니다.public void toLambdaMethod3() {System.out... 2024. 5. 3.