일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 인접리스트
- MySQL
- Spring
- javascript
- typescript
- Deep Dive
- 인접행렬
- winston
- JWT
- dfs
- logger
- 변수
- GraphQL
- queue
- 알고리즘
- TIL
- REST API
- OOP
- java
- css
- 자료구조
- 탐욕법
- nestjs
- bean
- html
- 프로그래머스
- node.js
- LifeCycle
- 코딩테스트
- Interceptor
- Today
- Total
목록분류 전체보기 (227)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eyVQCD/btsCzDN0vIh/zqIZDC9SOEKVrm7kuhAddk/img.png)
Java에서 객체를 생성하는 시점에 어떤 작업을 하고 싶다면 생성자(Constructor)를 이용하면 됩니다. 생성자란? 생성자(Constructor)는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 하는 작업을 위해서도 사용된다. 생성자를 알아보기 전에 먼저 생성자가 왜 필요한지 코드로 알아보겠습니다. 생성자가 필요한 이유 간단한 MemberInit Class를 만들고, MemberInit 객체를 사용하는 코드를 작성해보겠습니다. public class MemberInit { String name; int age; int grade; } public class MethodInitMain1 { public..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ch3y7/btsCzslcNAF/SAk1okfdTBZanMSS6EuFW1/img.png)
Java는 Class 기반 객체 지향 프로그래밍입니다. 하지만 지금까지 작성했던 코드들은 모두 절차 지향 프로그래밍이였습니다. 두 개의 차이점과 어떻게 하면 객체 지향 프로그래밍으로 작성하는지 알아보겠습니다. 절차 지향 vs 객체 지향 절차 지향 프로그래밍 절차를 지향합니다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식입니다. 프로그램의 흐림이 순차적으로 따르며 처리하는 방식입니다. 즉, "어떻게"를 중심으로 프로그래밍 합니다. 객체 지향 프로그래밍 이름 그대로 객체를 지향합니다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식입니다. 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식입니다. 즉, "무엇을" 중심으로 프로그래밍 합니다. 차이점 절..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dZV8K4/btsCwRZ7Kxo/6gpnqynW3y3U1WsgDKL7tk/img.png)
이번 시간은 AOP에 대해서 간단하게 알아보고, Spring을 통해 적용해보겠습니다. Nest에서 비슷한 것은 Interceptor, Guard가 있을것 같슴니다. AOP AOP : Aspect Oriented Programming 공통 관심 사항(crosscutting concern)과 핵심 관심 사항(core concern)을 분리하기 위함 Ex : Logger, 모든 메서드의 실행 시간을 측정하고 싶을 때 시간 측정 AOP 등록 package hello.hellospring.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CWFJI/btsCzKZp2g5/0UDZPGyt2C4WckYOUccfGk/img.png)
이번 포스팅은 Spring에서 DB에 연결하는 방법들을 알아보겠습니다. Spring Boot 버전 3.2 순수 Jdbc 환경 설정 먼저 build.gradle 파일에 jdbc.h2 데이터베이스 관련 라이브러리를 추가해줍니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' testImplementation '..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KEj2x/btsCy7AsFYP/wXipqkfMZlFl0DphIu9z5K/img.png)
이번 포스팅은 개발 혹은 테스트 용도로 사용하는 H2 Database 설치를 진행해보겠습니다. 설치 환경 : 15 macbook air Mac M2 H2 Database 설치 진행 https://www.h2database.com h2 Database 버전은 Spring boot 3.x를 사용할 경우 2.1.214 버전 이상을 사용하면 됩니다. H2 Database 실행 권한 주기 : chmod 755 h2.sh 실행: ./h2.sh 실행 시키면 아마 크롬창이 로딩만 되는 상황이 자주 발생합니다. 이럴때는 Ip 주소를 localhost로 변경해주면 됩니다. DB 생성하기 H2에 접속하면 아래와 같은 화면이 나온다. 이후 연결하면 사용자 기본 폴더에 DB가 만들어진 것을 확인할 수 있습니다. DB를 만든 이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bNEEqZ/btsCoyfSDKF/4M8OY7easzTDd1UjckNQi0/img.png)
Java 변수의 종류 멤버 변수(필드) : 클래스에 선언합니다 지역 변수 : 메서드에 선언, 매개변수도 지역 변수의 한 종류입니다. 지역 변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 의미입니다. (왜 전역 변수가 없을까..) 멤버 변수, 필드 예시 public class Student { String name; int age; int grade; } 지역 변수 예시 public class Method1 { public static void main(String[] args) { Student student1 = new Student(); } } static void initStudent(Student student, String name, int age, int grade) { student.n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xK2iQ/btsCsoiya6g/ANVfsIwoeTw1NUQeYXEeNk/img.png)
저번 포스팅에서 기본형 타입을 간단하게 알아봤는데, Java에서 사용되는 데이터 타입인 기본형과 참조형에 대해 알아보겠습니다. [Java] Java 변수 선언, 데이터 타입 변수 프로그래밍을 하다 보면 값을 저장해 둘 공간이 필요한데, 그 공간을 변수라고 합니다. 변수(variable)는 이름 그대로 변할 수 있다는 뜻을 의미하며, 공간에 들어간 값은 변할 수 있습니다. hangju95.tistory.com 기본형과 참조형 Java의 변수 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있습니다. 기본형(Primitive Type) : int, long, double, boolean처럼 변수에 사용하는 값을 변수에 직접 넣을 수 있는 데이터 타입 기본형은 소문자로 시작하며, 자바가 기본으로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wZVi3/btsCqucJCBP/p2s87iSLRQ85LpK6mrKG6k/img.png)
포스팅은 김영한의 실전 자바 - 기본편의 내용을 정리한 것입니다. Class가 필요한 이유 Java는 클래스와 객체로 이루어져 있으며, Java의 특징 중 하나가 Class 기반 객체 지향 프로그래밍 언어입니다. 클래스와 객체라는 개념이 왜 필요한지부터 시작하며, 클래스가 어떤 방식으로 발전하면서 만들어졌는지 알아보겠습니다. 간단한 Class 만들어보기 클래스를 사용해서 학생이라는 개념을 만들고, 각각의 학생 별로 본인의 이름, 나이, 성적을 관리하는 것을 만들어보겠습니다. package class1; public class Student { String name; int age; int grade; } Class 키워드를 사용해서 학생 클래스를 정의하였습니다. 학생 클래스는 내부에 이름, 나이, 성적 ..
오늘 한 일 Javascript Promise, async/await Spring 입문 공부 Spring 입문 공부 Spring 입문을 통해 스프링 빈과 의존 관계를 좀 더 배울 수 있었습니다. 김영한님의 강의를 듣다보니, 싱글톤에 대한 이해를 조금 더 쉽게 이해할 수 있었습니다. 뭔가 재밌다..? 스프링 공부를 하니 뭔가 새로운 기술을 배우는 것 같아 재밌었습니다. (또한, 스프링이 부러운 이유 중 하나가 김영한님이 있다는 것..?) 회원 관리 Backend 부분에서 Test 코드를 작성하는 부분이 있었습니다. 이때 Test간 서로 독립된 환경에서 진행해야 한다는 내용을 학습할 수 있었고, 그 때 싱글톤 이야기가 나왔습니다. Spring이나 Nest 둘 다 왠만하면 싱글톤 디자인 패턴을 사용합니다. 즉..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ciYjZE/btsB7iDWaBi/eaYijCgSsjA9sarM5zBs2K/img.png)
이번 포스팅에서는 스프링 빈과 의존관계에 대해서 알아보겠습니다. 간단하게 알아보는 것이므로, 자세한 사항은 추후 다룰 예정입니다. 컴포넌트 스캔과 자동 의존관계 설정 Component란? a part that combines with other parts to form something bigger 하나의 부품이며, 다른 부품과 결합되어 어떠한 큰 것을 만드는 부품이라고 합니다. 즉 Repository, Service, Controller 등 하나의 Component가 되며, 이것들을 조립해서 Spring Applicaiton을 만드는 것입니다. 회원 컨트롤러에 의존관계 추가 package hello.hellospring.controller; import hello.hellospring.service.M..