Java 7

JVM이란

JVM은 자바 가상 머신으로서 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것으로JAVA와 OS(운영체제) 사이에서 중개자 역할을 수행하여 운영체제에 구애받지 않고 독립적으로 작동이 가능하며Garbage collecter를 통한 메모리 관리를 수행한다. 우선 JVM은 컴파일된 바이트 코드를 기계가 이해할 수 있는 기계어로 변환해주는데 나는 이것을 보고 번역기같다..? 라는 생각을 했다또한 스택기반의 가상 머신으로 후입선출의 개념을 가진다. JVM의 구조는 크게 4가지 (Class Loader, Runtime data areas, Execution Engine, GC)로 나누어져 있다.각각의 역할은 Class Loader - 클래스 파일을 Runtime data area의..

Java 2024.06.13

JWT 정리

오늘은 JWT에 대해서 정리를 해보았습니다 들어가기에 앞서 JWT의 장점과 단점에 대하여 이야기 해봅시다. 장점 :Stateless Token 으로 서버가 인증 작업을 수행하지 않는다. 단점 :Stateless Token 으로 서버가 인증 작업을 수행하지 않는다 서버가 인증 토큰에 대한 제어권을 잃어, 관리할 방법이 없음.=> 로직이 없어 여러명의 사용자가 api 요청을 했을 때, 서버를 거치지 않아 실행 시간이 빨라지고 서버에 부하가 없다. JWT의 동작 프로세스(1) 최초 호출클라이언트에서 서버로 최초 호출이 발생하는 경우 Header 내에 토큰의 존재 여부를 체크한다.토큰이 존재하지 않을 경우 '로그인' 페이지로 리다이렉션 시켜 로그인 후 토큰을 발급 받는다.토큰이 존재하는 경우 토큰의 만료 시..

Java 2024.04.29

스프링부트 JPA Repository

Repository 구현하는 규칙JPA는 메소드 이름만으로 쿼리를 생성할 수 있다.위에서 작성한 List findAllByPostId(Long post_id); 해당 구문을 보면 해석해 보면 findAll (comment) 전부 찾아볼건데 postId로 찾는다는 거다. 이렇게만 작성해주면 JPA가 알아서 SQL문을 생성해준다.Method method 기능 save() 레코드 저장 (insert, update) findOne() primary key로 레코드 한건 찾기 findAll() 전체 레코드 불러오기. 정렬(sort), 페이징(pageable) 가능 count() 레코드 갯수 delete() 레코드 삭제Keyword메서드 이름 키워드 샘플 설명 And findByEmailAndUserId(Strin..

Java 2024.04.18

Spring, Spring-Boot 차이점

오늘은 스프링과 스프링 부트의 차이점을 알아보았습니다. 우선 Spring frameWork란 Java 기반의 개발을 지원하는 오픈소스 어플리케이션 프레임워크로 보통 스프링(Spring)이라고 불립니다.스프링이 사용되기 전에는 EJB(Enterprise Java Bean)방식의 기술을 사용했는데 이 기술의 단점은 특정 회사의 컨테이너(Oracle,Ibm 등)가 없이는 기술이 구현이 어렵고 프로그래밍 모델이 복잡하며, 가장 큰 단점은 테스트가 거의 불가능했습니다.스프링은 이러한 단점을 해결하여, 순수 자바 객체인 POJO를 사용하여 복잡성을 제거하고, 단순하고 가벼운 코드로 기업용 애플리케이션을 개발하기 위한 목적으로 개발된 프레임워크 입니다. 그런 Spring의 가장 큰 특징은 4가지로 꼽을 수 있는데 1..

Java 2024.04.08

MultipartFile 다중 파일 업로드

Multipart 전송이란? 파일 업로드를 구현할 때, 클라이언트가 웹브라우저라면 폼을 통해서 파일을 등록해서 전송하게 된다. 이때 웹 브라우저가 보내는 HTTP 메시지는 Content-Type 속성이 multipart/form-data 로 지정되며, 정해진 형식에 따라 메시지를 인코딩하여 전송한다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 된다. (From Wireframe) 이미지 파일을 전송한다고 해서 이메일에 첨부파일을 붙여 메일을 보내는 것처럼 png나 jpg 파일 자체가 전송되는 것이 아니다. 이미지 파일도 문자로 이뤄져 있기 때문에 이미지 파일을 스펙에 맞게 문자로 생성하여 HTTP request body에 담아 서버로 전송하는 것임..

Java 2024.03.29

mvc1 , mvc2 차이점

오늘은 mvc 패턴에 대해서 알아보자 일단 mvc 의 뜻은m: Model -> 백그라운드에서 동작하며, 사용자가 원하는 데이터나 정보를 제공한다.v: View -> 사용자의 요청을 화면으로 출력한다.c: Controller -> 사용자의 요청을 처리하고, 그 요청에 따른 전체적인 흐름을 제어한다. 사용자는 Controller 를 통해 얻고자 하는 정보나 기능을 요청하면Controller는 요청을 수신한 뒤 비즈니스 로직을 실행하며 필요에따라 Model을 호출하여 데이터를 요청한다.모든 요청을 처리하면 View를 통해 사용자가 원하는 정보를 시각적으로 보여준다. 이 mvc 패턴은 mvc1, mvc2로 나뉘어지는데 우선 mvc1을 먼저 알아보자 MVC 1mvc1의 특징은 Controller 와 View 의 ..

Java 2024.03.17

스프링 어노테이션 정리

@ControllerPresentation Layer의 MVC Controller에 사용한다.스프링 웹 서블릿에 의해 웹 요청을 처리하는 컨트롤러 빈으로 선정한다.@ServiceService Layer 클래스에 사용한다.@RepositoryDAO 또는 Repository 클래스에 사용한다.DataAccessException 자동변환과 같은 AOP 적용대상을 선정하기 위해 사용한다.@Component@Repository, @Service, @Controller 의 레이어 구분을 적용하기 어려운 일반적인 경우에 설정한다.@Scopecomponent의 scope을 설정한다. 기본값은 singleton이다.@Configuration설정 클래스임을 명시한다.@Bean스프링 컨테이너가 관리하는 자바객체로 수동 지정..

Java 2024.03.03