일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Interceptor
- dfs
- 자료구조
- 변수
- logger
- nestjs
- javascript
- MySQL
- queue
- node.js
- winston
- TIL
- Spring
- typescript
- OOP
- GraphQL
- REST API
- JWT
- java
- LifeCycle
- 알고리즘
- html
- 인접행렬
- bean
- Deep Dive
- 탐욕법
- css
- 코딩테스트
- 인접리스트
- 프로그래머스
- Today
- Total
목록분류 전체보기 (227)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TqGDg/btsB7nrSLBL/jNtSGhtaoyDDoFua6ieh4K/img.png)
이번 포스팅에서는 회원 관리 Backend Service를 개발해보겠습니다. 로그인, 유저 확인 등의 경우에는 Spring Security가 필요한데, 이 부분은 아직 어려우니 제외하도록 하겠습니다. 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bighsi/btsB7k2WPsL/JdAeeKHdBi8xZnh6wXlkl1/img.png)
이번 포스팅은 간단하게 Spring을 통해 다양한 방법으로 데이터를 전송해보겠습니다. 이번에는 간단하게 구현을 하는 포스팅이며, 자세한 설명은 추후 MVC 패턴 강의에서 배워보도록 하겠습니다. 정적 컨텐츠 Spring Boot에는 Static content 기능이 있습니다. 이는 HTML 문서를 보여줄 수 있는 기능입니다. 먼저 HTML 파일을 하나 만들어줍니다. 정적 컨텐츠 입니다. HTML 문서 작동 후 서버를 돌려 Test를 진행해 보겠습니다. http://localhost:8080/hello-static.html 간단한 그림을 통해 어떻게 작동된건지 구조를 살펴보겠습니다. 웹 브라우저에서 해당하는 URL 주소 확인 Tomcat에서 스프링 컨테이너에서 해당하는 컨트롤러를 확인 없는 경우 정적 페이지..
오늘 한 일 이진 탐색 트리 구현 이진 탐색 트리 구현 완전 이진 트리 및 이진 탐색 트리를 구현하였습니다. 현재 간단한 구현만 진행하였으며, 추가적인 연습이 필요할 것 같습니다. 저번 김영한님의 Java강의를 들을 때, 적당한 제약이 있어야 코딩하기가 조금 더 수월하다는 말을 들었습니다. 처음 들었을 때는 왜..? 라는 의문이 들었지만 여러가지 자료구조를 작성하면서 느낀 점으로는 무엇을 위해 해당 자료구조를 사용하고, 어떻게 알고리즘을 풀 것인가? 가 가장 중요하게 느껴졌습니다. 어떠한 것을 위해 이 자료구조를 사용하고, 제약은 어떤것인지 파악하는 것이 중요하다고 느껴진 시간이였습니다.
TypeScript를 통해 완전 이진트리를 구현하였습니다. 기본적으로 Tree에 들어가는 Node부터 구현하였습니다. /** Tree에 들어가는 Node 구현 @param {T} data Node에 들어갈 data @returns {TreeNode} */ export class TreeNode { public data: T; public left: TreeNode | null = null; public right: TreeNode | null = null; constructor(data: T) { this.data = data; } } 완전 이진트리 구현 배열을 받아 완전 이진트리를 구현하였습니다. 이진트리 구현 시 조건 없이 완전히 채우는 트리입니다. import { TreeNode } from "./..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lRZw6/btsB7m6sXn7/zXlTdgKpcQqDk0K0XxjJo1/img.png)
이번 포스트는 Spring을 통해 간단한 Project를 만들어보기 위해 기록하였습니다. Express와는 너무 다른 언어이기 때문에 (Nest는 약간 비슷하더라..?) 한번 공부해보겠습니다. 주의! 이 포스트는 기초를 위한 포스팅입니다. 프로젝트 생성 SpringBoot start 사이트로 들어가서 스프링 프로젝트를 생성합니다. https://start.spring.io/ 먼저 왼쪽에 보면 체크해야 할 것들이 보입니다. Project : Gradle - Groovy로 선택해줍니다.(코틀린 쓸 거 아니면..) Language : Java Spring Boot : 3.2.0으로 선택 나머지 Group과 Artifact를 마음대로 적어주면 됩니다. Package는 Jar, Java version 은 17로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/m4CnI/btsB5WGUQRR/SlzGIlPi0XWwuTMTvDlkyK/img.png)
Javascript에서 자주 사용하는 함수, 그러나 Java는 Class 기반 언어입니다. 어떻게 함수를 사용할 수 있을까요?? 메서드를 사용한다. 자바에서는 함수 대신 메서드를 사용합니다. (주관적 생각이지만, 자바는 Class 기반이기 때문에 메서드만 쓸 수 있는게 아닐까..) 간단한 예시를 하나 만들어봤습니다. package method; public class Method1Ref { public static void main(String[] args) { int sum1 = add(5, 10); System.out.println("결과1 출력:" + sum1); int sum2 = add(15, 20); System.out.println("결과2 출력:" + sum2); } //add 메서드 pu..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b65edA/btsB0c5p4PW/GGygRyV9PmPlkuUKfIJ0lk/img.png)
Java에서 배열(Array)을 어떻게 생성하고 사용할 수 있는지 알아보겠습니다. 배열의 선언과 생성 int[] students; //1. 배열 변수 선언 students = new int[5]; //2. 배열 생성 먼저 배열을 사용하려면 배열의 타입을 선언해주고, 뒤에 대괄호를 붙여 배열이라고 알려줍니다. 그 후, 배열을 사용하기 위해 배열을 생성해줍니다. 이때 new int[5]라고 입력하면 위 그림같이 총 5개의 int형 변수가 만들어집니다. 자바는 배열을 생성할 때 그 내부값을 자동으로 초기화합니다. 숫자는 0, boolean은 false, String은 null로 초기화가 됩니다. 배열을 생성하면 배열의 크기만큼 메모리를 확보합니다. 그리고 자바는 메모리 어딘가에 있는 이 배열에 접근할 수 있는..
Scanner? System.out을 통해서 출력을 했듯이, System.in을 통해서 사용자의 입력을 받을 수 있습니다. 그러나 System.in을 통해 사용자 입력을 받으려면 여러 과정을 거쳐야 해서 복잡합니다. 자바에서는 이런 문제를 해결하기 위해 Scanner라는 클래스를 제공합니다. 이 클래스를 사용하면 사용자 입력을 매우 편하게 받을 수 있습니다. public static void main(String[] args) { // scanner 인스턴스 생성 Scanner scanner = new Scanner(System.in); System.out.print("문자열을 입력하세요:"); String str = scanner.nextLine(); // 입력을 String으로 가져온다. System..
자동 형변환 작은 범위 숫자 타입에서 큰 범위 숫자 타입으로의 대입은 개발자가 직접 형 변환을 하지 않아도 되며, 자동으로 발생합니다. public static void main(String[] args) { int intValue = 10; long longValue; double doubleValue; longValue = intValue; // int -> long System.out.println("longValue = " + longValue); //longValue = 10 doubleValue = intValue; // int -> double System.out.println("doubleValue1 = " + doubleValue); //doubleValue1 = 10.0 doubleVa..
Java 조건문 Java의 조건문으로는 if, else if, else switch 삼항연산자 가 존재합니다. Javascript와 비슷하기 때문에 간단히 짚고만 넘어가겠습니다. if / else / else if if문은 특정 조건이 참인지 확인하고, 그 조건이 참(true)일 경우 특정 코드 블록을 실행합니다. package cond; public class If1 { public static void main(String[] args) { int age = 20; // 사용자 나이 if (age >= 18) { System.out.println("성인입니다."); } if (age < 18) { System.out.println("미성년자입니다."); } } } else 문은 if문에서 만족하는 조..