정의- 객체 지향 프로그래밍에서 사용되는 개념- 객체를 데이터 스트림으로 변환하거나 데이터 스트림에서 객체로 변환하는 과정- 이러한 과정은 객체의 상태를 저장하고 나중에 다시 복원하는 데 사용. - 주로 객체를 파일에 저장하거나 네트워크를 통해 전송하는 상황에서 유용하게 활용 +데이터 스트림(Data Stream)은 데이터를 연속적인 일련의 바이트로 표현하는 것직렬화 (Serialization)- 직렬화는 메모리에 존재하는 객체를 디스크에 저장하거나 네트워크 통신을 위해 형식에 맞는 데이터로 변환하는 과정- 객체를 메모리 상태에서 바이트 스트림 또는 문자열로 변환하여 외부 저장소에 저장하거나 전송- 주로 객체의 필드 값과 클래스 정보가 직렬화- 예를 들어, 자바에서는 `Serializable` 인터페이스..
주로 웹 애플리케이션에서 HTTP 요청을 처리하는 서블릿 또는 컨트롤러에서 자동으로 생성되고 제공되는 객체입니다. 이 객체는 클라이언트에서 서버로 HTTP 요청을 보낼 때 서버 측에서 자동으로 생성되며, 해당 요청을 처리하는 메서드에 매개변수로 전달됩니다. 웹 애플리케이션에서 HTTP 요청과 관련된 정보를 제공하는 Java Servlet API의 일부입니다. 이 객체를 사용하면 클라이언트에서 서버로 보낸 HTTP 요청에 관한 다양한 정보에 액세스할 수 있습니다. 주로 다음과 같은 정보와 데이터가 넘어옵니다. HTTP 메서드: 요청이 사용한 HTTP 메서드 (GET, POST, PUT, DELETE 등)를 확인할 수 있습니다. 요청 URL: 클라이언트가 요청한 URL을 확인할 수 있습니다. 요청 헤더: H..
JSON 배열 데이터를 파싱// 클라이언트에서 전송된 JSON 배열 데이터를 파싱 JSONArray array = JSONArray.fromObject(param.get("paramMaplist"));클라이언트에서 전송된 JSON 배열 데이터를 서버에서 사용할 수 있는 형태로 변환 작동 순서param 객체에서 "paramMaplist" 키로 전달된 데이터를 가져온다,(이 데이터는 JSON 배열 형태로 클라이언트에서 전송되었다고 가정)JSONArray.fromObject(...) 메서드를 사용하여 JSON 배열 데이터를 자바의 JSONArray 객체로 파싱.이렇게 파싱된 배열은 이후에 자바 코드에서 사용할 수 있게 됨 클라이언트에서 다음과 같은 JSON 배열을 전송했다고 가정하면"paramMaplis..
1.Encapsulation 캡슐화 관련있는 데이터들과 함수(알고리즘)들을 하나의 묶음으로 정리하는 것. 서로 관련된 데이터들과 함수들을 캡슐 형태에 넣어서 포장하는 것을 의미한다. 여기서 객체의 필드는 데이터에 해당하고, 메소드는 함수 또는 알고리즘에 해당한다. - 서로 연관된 데이터들과 함수 또는 알고리즘들을 하나의 묶음으로 정리하는 것 - 객체를 캡슐로 싸서 객체의 실제 구현 방법을 외부에 감춰서 객체의 내부를 보호한다. 2.Inheritance 상속 부모 클래스에서 사용하는 기존의 코드를 자식 클래스에서 재활용하기 위한 기법이다. 이미 작성된 부모 클래스를 물려 받아서 새로운 자식 클래스를 생성하는 방법이다. 자식 클래스는 부모 클래스의 모든 속성과 동적을 물려 받아 사용한다. 자식 클래스에서는 ..
Model 데이터를 처리하는 영역(어떠한 동작을 수행하며 public 함수로만 이루어진다.) View 컨트롤러의 처리결과를 화면에 생성 Controller 클라이언트의 요청 처리 사용하는 이유? 사용자 인터페이스로부터 비즈니스 로직을 분리한다. (=개발자, 웹 퍼블리셔의 영역 분리 가능) > 애플리케이션의 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 고칠 수 있다. > view 교체, 변경 쉬워서 유지보수가 유용하다. service 핵심 비즈니스 로직 구현 repository (= DAO : Data Access Object) - Spring data JPA방식 - 도메인 객체를 DB에 접근하여 저장하고 관리 (저장소) - interface로 사용 domain (= VO : Val..
본래 주석이란 뜻으로, 인터페이스를 기반으로 한 문법이다. 주석과는 그 역할이 다르지만 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나 기능을 주입할 수 있다. - 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 - 소프트웨어 개발 환경이 빌드나 배포시 코드를 자동으로 생성할 수 있도록 정보 제공 - 런타임에 특정 기능을 실행하도록 정보를 제공 자바 코드에 적용되는 내장 어노테이션 @Override 선언한 메서드가 오버라이드 되었다는 것을 나타냅니다. 만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면 컴파일 에러를 발생 시킵니다. public class Animal { public void speak() { } public String getType() { re..
스프링 생태계에서 인증과 인가라는 개념을 최대한 쉽고 유연하게 구현할 수 있도록 만들어진 framework 로그인, 회원가입을 할때 사용 로그인이 일어나고 회원가입하고 리소스를 제한하는 것은 서비스에 있어서 매우 중요한 부분이다. 로그인 없이 아무나 접속해서 익명으로 서비스를 사용하거나 로그인을 했더라도 모든 사용자가 운영자 권한이 있다면 그 서비스는 오래 유지될 수 없다. 이러한 상황을 막기 위해서 리소스를 제한하는 조치를 해야한다. 인증 (Authentication) 사용자가 누구인지 확인하는 절차이다. ex)로그인 인가 전 프로세스 ->나의 ID와 패스워드를 서버에 주고 그 응답으로 아무나 해독이 불가능한 key를 받는다. 그 key를 모든 요청에 포함해서 보낸다 ex) 커뮤니티 게시글에서 글을 보..
#Spring Data JPA -- java persistence API 자바를 이용해서 데이터를 관리하는 기법 ->자바 ORM기술에 대한 API표준 - ORM : Object Relational Mapping -- 객체와 관계형 데이터베이스를 매핑해주는 것 객체지향과 관계형 데이터베이스간의 패러다임의 불일치를 해결 - 기존 JDBC를 이용해 직접 구현하던걸 대신 처리해주는 추상화된 계층의 구현스펙 - DB처리를 JPA계층에서 처리 - 엔티티 : DB상에서 데이터로 관리하는 대상 (하나의 클래스or인스턴스) - 과거 DAO==Repository - PagingAndSortingRepository > CrudRepository > Repository 페이징+검색처리 crud 기능이랄게 없음 장점 1. 특정..
기계와 기계가 웹을 이용해서 통신할때 정해진 규칙, http를 이용한다. api 컴퓨터의 기능을 실행시키는 방법을 의미한다. ex) 헬로월드를 출력하는 기능 print("hello wolrd") or document.write("hello world") rest api 컴퓨터의 기능을 실행시키는 방법이지만 내컴퓨터가 아니라 다른 컴퓨터의 것을 출력한다. 인터넷과 웹을 통해서 나의 컴퓨터를 제어할때 어떻게 해야 시행착오를 줄일 수 있느냐의 결과물 특정 기술이 아닌 http를 이용해서 기계가 통신을 할때 http가 가진 잠재력을 이끌어냄 REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미. 즉 REST란 HTTP ..
JVM : Java Virtual Machine의 약자로, 자바 가상 머신이다. java와 os 사이에서 중개자 역할을 수행하며, java가 os에 구애 받지 않고 program을 실행할 수 있도록 도와준다. java는 OS에 독립적인 특징을 가지고 있는데, 그것이 가능한 이유는 JVM상에서 실행되기 때문이다. java 소스코드 컴파일 -> 생성된 파일이 해석(Interpret)과 Link없이 바로 JVM에 적재 -> OS로 부터 메모리를 할당, GC(Garbage Collection)를 통해 스스로 메모리 관리 메모리 누수 ==garbage C언어 포인터 , d2=d1 하면 d2는 안쓰고, 스택이랑 연결끊김 ,저런 메모리 삭제 안하면 터짐 그래서 자바에서 jvm 생김 -> GC(Garbage Colle..
DBTestMain package ko.co.mlec.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /* * * 작업순서 * 1. JDBC 드라이버 로딩 * 2. DB접속 하여 연결객체 얻어오기 * 3. SQL 쿼리 생성 * 4. 쿼리 실행 및 결과 얻기 * 5. 접속 해제 * */ public class DBTestMain {// 자바와 DB 연결 class 생성 public static void main(String[] args) {// 자바 DB 연결 메인 작성 // 이름 틀릴 수도 있어서 예외처리 해줘야함 // 예외처리를 담당하는 구문. 예외가 발생할 수 있는 부분을 try ..