반응형

전체 글 126

[Spring Booot] 백엔드 기본 개념 (DTO, Entity, DAO)

1. EntityEntity 클래스는 실제 DB 테이블과 매핑되는 핵심 클래스로, 데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체이다.DB의 테이블과 1대1로 대응된다. Getter의 사용은 지양하고, Setter는 구현하지 않는 것이 좋다. (Builder 패턴으로 사용하는 것이 가장 좋음, Entity의 인스턴스 값들이 무분별하게 변경될 수 있기 때문)@Entity, @Column, @Id 2. DTO (Data Transfer Object)DTO는 계층 간 데이터 교환이 이루어질 수 있도록 하는 객체이다. (계층에 대한 자세한 설명은  https://xxeol.tistory.com/26 참고)단순히 계층간 데이터 교환이 이뤄질 수 있도록 하는 객체이므로, 순수한 데이터 객체여야 한다. ..

[Spring Boot] 스프링부트 기본 개념 (MVC, IoC, DI, AOP, PSA)

1. MVC 패턴참고자료: https://velog.io/@jybin96/Controller-Service-Repository-%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C Controller, Service, Repository 가 무엇일까?찾아본 결과 Controller가 무엇인지 알기 전에 MVC 패턴에 대하여 먼저 아는 것이 중요합니다!MVC패턴은 Model-View-Controller의 약자로서 개발을 할 때 3가지 형태로 역학을 나누어 개발하는 방법론입니velog.io  MVC는 Model, View, Controller의 약자로 개발을 할 때, 이 3가지 형태로 나누어 개발하는 방법론이다. 쉽게 이해하면 모든 기능이 몇천 줄의 코드를 가진 하나의 파일로 ..

[Spring Boot / Kotlin] 튜토리얼4, Spring Data CrudRepository 활용하기

해당 튜토리얼에서는 앞서 만들었던 서비스의 db를 CrudRepository를 이용하는 것으로 수정하는 과정이다. CrudRepository는 일반적으로 레파지토리에서 상속하는 인ㄴ터페이스 중 하나이다. 메서드를 정의하지 않아도 간단한 CRUD 사용이 가능하다는 장점이 있다. 자세한 설명은 아래 링크 참조.https://velog.io/@baekgom/JpaRepository-%EC%99%80-Repository CrudRepository, JpaRepository, RepositoryCrudRepository, JpaRepository, Repositoryvelog.io 우선 Message 클래스에 몇가지 어노테이션을 추가해준다. 또한 id 파라미터는 디폴트 값으로 null 값을 넣어줘서 선언 시에 i..

[Spring Boot / Kotlin] 튜토리얼3, data base 추가하기

해당 파트에서는 Service layer를 작성한다. 따라서 앞선 파일들과 같은 패키지에 MessageService.kt 파일을 아래와 같이 작성해주었다. // MessageService.ktpackage com.example.demoimport org.springframework.steretype.Serviceimport org.springframework.jdbc.core.JdbcTemplateimport java.util.*@Serviceclass MessageService(private val db: JdbcTemplate) { fun findMessages() : List = db.query("select * from messages") { response, _ -> Messa..

[Spring Boot / Kotlin] 튜토리얼2, data class 추가하기

Data Class를 추가하는 방식은 별다를 것 없이 Kotlin에서 하는 것과 동일하다.  아래와 같이, Message Controller와 같은 패키지에 Message라는 data class를 담은 Message.kt 파일을 추가해준다.// Message.ktpackage com.example.demodata class Message(val id: String?, val text: String) 그리고 이를 이용해서 MessageController를 조금만 수정해주면, data class를 추가할 수 있다.// MessageController.ktpackage com.example.demoimport org.springframework.web.bind.annotation.GetMappingimport..

[Spring Boot / Kotlin] 튜토리얼1, Spring Boot 시작하기

우선 스프링부트 프로젝트를 먼저 열어야 한다. 튜토리얼에서는 인텔리제이 내에서 몇 가지를 설정하여 열지만, 찾아보니 이는 유료 버전의 인텔리제이가 필요한 작업이다. 따라서 나는 검색을 통해 spring initializr( https://start.spring.io/ )에서 튜토리얼과 같은 설정을 선택하여 프로젝트를 열었다. 해당 사이트에서 알맞은 설정을 선택한 후 압축 파일을 다운받아 압축을 풀어주기만 하면 된다. 이후 단계는 튜토리얼을 따라가기만 하면 된다. 아래 코드는 spring initializr에서 프로젝트를 열면 기본적으로 있는 파일이다. 기본적인 구조는 튜토리얼 내에 설명이 되어있다. // DemoApplication.ktpackage com.example.demoimport org.spr..

[웹서비스 프로젝트/백엔드] Kotlin 기본 공부

참고한 영상: https://www.youtube.com/watch?v=F9UC9DY-vIU 1. main function 작성fun main() {}  2. Variable(변수)2-1. 변수의 종류val과 var variable 존재. val은 reassign 불가, var은 reassign 가능하다는 차이점 존재. function 밖에 전역변수로 선언 가능var greeting: String = "hello"fun main() { val name1: String = "Nate" //name = "" // cannot reassign var name2: String = "Nate" name2 = "" println(greeting) println(name1) gr..

[Java] 자바에서 난수 생성하기

자바에서는 다양한 클래스를 이용하여, 다양한 방식으로 난수를 생성할 수 있다. 방식 별로 난수의 범위도 다르다. 오늘은 난수 생성 방법들에 대해 정리해보려 한다. 1. Math.random() 메소드 0 이상 1 미만의 double 데이터를 반환하는 명령. (0 // 0 이상 1 미만의 난수 얻기double num = Math.random();// 랜덤 주사위 값 얻기int dice = (int) (Math.random() * 6) + 1; 2. Random 클래스 다양한 형태의 난수를 생성할 수 있는 클래스로 객체를 생성하여 사용한다. 난수를 생성하는 메소드들은 다음과 같다.반환 타입메소드설명booleannextBoolean()boolean형 난수 반환intnextInt()int형 난수 반환intnex..

[백주 2805번/C언어] 나무 자르기

백준 2805번 문제를 merge sort (합병 정렬)을 이용하여 풀어보았습니다. 백준 2805번: https://www.acmicpc.net/problem/2805  문제 내용은 아래와 같습니다.     이 문제는 여러 번의 시간초과를 겪은 끝에 성공했는데, 처음 몇 번 시도가 모두 O(n^2)의 시간복잡도를 가진 코드여서 이를 개선하려는 노력을 많이 했다. 결국 O(NlogN)의 시간복잡도를 가진 merge sort를 활용하여 문제를 해결할 수 있었다.  나무의 개수인 N과 필요한 총 나무의 길이인 M이 터미널 입력으로 주어지면, 자를 수 있는 최대 나무의 높이를 구해서 출력하면 된다. 여기서 자를 수 있는 최대 나무의 높이라는 것은, 해당 높이를 초과하는 길이의 합이 M이상이 되는 최대 높이를 말..

[Hive Helsinki / Piscine] C09

Exercise 00: libft Create your ft library. It’ll be called libft.a. A shell script called libft_creator.sh will compile source files appropriately and will create your library.Allowed Function: write  첫 번째 문제는 library인 libft를 만드는 shell script를 작성하는 문제이다. 우선 기본적으로 library 파일은 .a 확장자를 지녔으므로 우리의 목표는 .c 파일들을 활용해서 하나의 .a 파일을 만드는 것이다. 주어진 c 파일들도 모두 직접 만들어야 하지만, 앞선 프로젝트들에서 다 만들어두었던 함수들이므로 따로 언급하지 않겠다. ..

728x90
반응형