일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 로그인/로그아웃
- java I/O
- MSA
- 비동기
- 세션기반 인증
- http
- 로그인 인증 흐름
- formmatted
- 퍼시스턴스 계층
- 작업명중복
- spring
- 스프링부트
- IPC
- RESTfull API
- @temproal
- 스프링부트 구조
- JWT
- 비즈니스 계층
- JPA
- 토큰기반 인증
- 프레젠테이션 계층
- ORM
- ./gradlew docker
- 스프링
- 어노테이션
- Java
- 스프링 부트 테스트
- 동기
- 스프링부트 계층구조
- ./gr
- Today
- Total
목록Back-end (69)
[DEV] J-Jay

TestController @RestController public class TestController { @GetMapping("/test") // /test GET 요청이 오면 test() 메서드 실행 public String test() { return "Hello, world"; } } @RestController는 라우터 역할을 하는 어노테이션이다. (라우터 : HTTP 요청과 메서드를 연결하는 장치) 해당 어노테이션이 있어야 클러이언트의 요청에 맞는 메서드를 실행할 수 있다. 지금의 경우 TestController를 라우터로 지정해 /test GET 요청이 왔을 때 test() 메서드를 실행한다. 여기서 의문이 하나 생긴다 @RestController와 @Component는 어노테이션 용어가..

@SpringBootApplication @SpringBootApplication public class SpringBootDeveloperApplication { public static void main(String[] args) { SpringApplication.run(SpringBootDeveloperApplication.class,args); } } 이 클래스는 자바의 main() 메소드와 같은 역할을 한다. 즉 여기서 스프링 부트가 시작된다. @SpringBootApplication 어노테이션을 추가하면 스프링 부트 사용에 필요한 기본 설정을 해준다. SpringApplication.run() 메서드는 애플리케이션을 실행한다. 첫 번째 인수는 스프링 부트 애플리케이션의 메인 클래스로 사용할 ..

텍스트 블록 Java 17 이전 버전에서는 여러 줄의 텍스트를 작성하려면 \n을 추가해야 했지만 이제는 """로 감싼 텍스트를 사용해 여러 줄의 텍스트를 표현할 수 있다. String query11 = "SELECT * FROM \"items\"\n"+ "WHERE \"status\" = \"NORMAL\";"; String query17 = """ SELECT * FROM "items" WHERE "status" = "NORMAL"; """; formatted()메서드 값을 파싱하기 위한 formatted() 메소드를 제공한다. String content = """ { "id" : %d, "name" : %s, } """.formatted(1, "J-Jay"); 레코드 레코드는 데이터 전달을 목적으로 ..

스프링 부트 스타터 스피링 부트 스사터는 의존성이 모여 있는 그룹이다. 스타터를 사용하면 필요한 기능을 간편하게 설정할 수 있다. 스타터는 spring-boot-starter-{작업유형}이라는 명명규칙이 있다. (ex JDBC 스타터 : spring-boot-starter-jdbc) Starter 내용 spring-boot-starter-web Spring MVC를 사용해서 RESTful 웹 서비스를 개발할 때 필요한 의존성 모음 spring-boot-starter-test 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음 spring-boot-starter-validation 유효성 검사를 위해 필요한 의존성 모음 spring-boot-starter-actuator 모니터링을 위해 애플리케이션에..

AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 프로그래밍에 대한 관심을 핵심관점, 부가 관점으로 나누어서 관심 기준으로 모듈화 하는 것을 의미한다. 이해가 조금 어려우니 예시를 들겠다. 예를 들어 계좌 이체, 고객 관리하는 프로그램이 있을 때 각 프로그램에는 로깅 로직, 즉, 지금까지 벌어진 일을 기록하기 위한 로직과 여러 데이터를 관리하기 위한 데이터베이스 연결 로직이 포함 된다. 이때 핵심 관점은 계좌 이체, 고객 관리 로직이고, 부가 관점은 로깅, 데이터베이스 연결 로직이다. 실제 프로그램의 기능으로 로직을 정리하면 다음 그림과 같다. 그림을 보면 로깅과 데이터베이스 연결은 모두 계좌 이체, 고객관리에 필요하다. 여기에 AOP관점을 적용하면 부가 관점에 해당하는 로..

IoC(Inversion of Control) 제어의 역전 public Class Main { Sample sample = new Sample(); //클래스 Main에서 new 키워드로 클래스 Sample 생성 } 자바코드 작성시 객체를 생성할 때는 객체가 필요한 곳에서 직접 생성을 했다. 위의 예제를 보면 클래스 Sample 객체를 사용하기 위해 클래스 Main에서 객체를 직접 생성한다. 위 예제에 제어의 역전을 적용하면 다음과 같은 코드가 된다. public class Main { private Sample sample; // 코드에서 객체를 생성하지 않음, 어디선가 받아온 객체를 sample에 할당 } 제어의 역전은 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와..

스프링의 등장 엔터프라이즈 애플리케이션이라는 용어가 있다. 웹 개발이 처음인 사람에게는 생소한 용어일텐데, 엔터프라이즈 애플리케이션은 대규모의 복잡한 데이터를 관리하는 애플리케이션을 말한다. 소프트웨어 분야가 발전하며 엔터프라이즈 애플리케이션은 점점 복잡해졌다. 예시로, 은행 시스템을 생각해보면 몇 천만의 사람이 한꺼번에 잔고 조회를 하고, 입금이나 출금 요청을 하고, 새로운 통장을 개설하기도 한다. 이렇듯 엔터프라이즈 애플리케이션은 많은 사용자의 요청을 동시에 처리해야 하므로 서버 성능과 안전성, 보안이 매우 중요하다. 그런데 이런 것들을 신경쓰면서 비즈니스 로직까지 개발하기에는 매우 어렵다. 누군가 엔터프라이즈 애플리케이션ㅇ르 위한 개발 환경을 제공해서 기능 개발에만 집중할 수 있다면 얼마나 좋을까?..

Library(라이브러리란)? 라이브러리는 애플리케이션 개발에 필요한 기능인 클래스, 함 수 등을 모아놓은 코드의 모음을 말한다. 프로그래밍 세계에서의 라이브러리는 도서관이라는 의미보다는 책들의 모음이라고 이해하는 것이 더 좋다. 개발자가 소프트웨어를 만들 때 필요에 따라 원하는 기능을 구현하기 위해 코드의 모음을 가져다 쓸 수 있는 일정의 도구 역할을 하는 것이다. 따라서 개발자는 복잡한 코드를 작성하지 않아도 되므로 원하는 기능을 더 빠르게 개발할 수 있고, 라이브러리는 독립적으로 아리브러리 끼리 영향을 크게 주지 않는다. Framework(프레임워크란?) 프레임워크는 소프트웨어 개발으 수월하게 하기 위한 소프트웨어 개발 환경이다. 프레임워크는 틀(Frame)과 일(Work)의 합성어로 일하기 위한 ..

IP 와 Port란? IP는 인터넷에서 컴퓨터 또는 기기들이 서로를 식별하고 통신하기 위한 주소이다. IP를 알면 서버를 찾을 수 있지만 서버를 이용하려면 IP 뿐만 아니라 Port 까지 알아야 한다. IP가 서버를 찾기 위한 번호라면 Port는 그 서버에서 운영되고 있는 서비스를 구분하기 위한 번호입니다. 쉽게 말해서 IP가 백화점이라면 포트는 각자 다른 물건을 살 수 있는 매장이라고 상상하면 된다. 예를 들어 우리가 흔히 사용하는 웹 브라우저에 주소에는 사실 IP와 Port가 들어 있다. www.naver.com 과 같은 주소는 IP를 쉽게 알아보기 위해 이름표(도메인)을 붙인 것이고 그 앞에 있는 https://라는 것은 서버의 443 포트를 사용하기 위한 입력이다. 그렇다면 우리가 Local에서 ..

데이터 베이스란? 데이터 베이스는 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소이다. 흔히 데이터베이스를 말할 때 MySQL, Oracle, PostgreSQL등을 이야기 한다. 사실 엄밀히 말해 이것들은 데이터베이스를 관리하는 시스템 이름(DBMS) 이며 데이터 베이스가 아니다. 다만 데이터 베이스와 데이터베이스 관리 시스템은 한 쌍으로 움직이므로 둘을 하나처럼 언급할 뿐이다. RDB란? 데이터베이스는 여러 가지로 구분할 수 있다 (RDB, NoSQL, NewSQL 등) 그중 가장 많이 사용하는 데이터베이스느는 RDB이다. RDB는 Relational Database의 약자로 관계형 데이터베이스라는 뜻 RDB가 아닌 데이터베이스를 NoSql 또는 NewSQ..