본문 바로가기

분류 전체보기

(111)
[Web] 동기와 비동기 📌 데이터 처리 데이터 처리 모델을 쉽게 표현하면 데이터를 받는 방식이라고 할 수 있다. 이 방식에는 동기식 / 비동기식 모델이 존재한다. 📌 동기 (Synchronous : 동시에 일어나는) 동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것을 말한다. 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다. 사용자가 데이터를 서버에게 요청한다면 해당 서버가 뎅이터 요청에 따른 응답을 사용자에게 다시 리턴하기 전까지 사용자는 다른 활동을 할 수 없으므로 기다려야 한다. A 노드와 B 노드 사이의 작업 처리 단위 (Transaction)를 동시에 맞추겠다. 📌 비동기 (Asynchronous : 동시에 일어나지 않는) 비동기는 동시에 일어나지 않는다는 것을 의미한다. 요청한 ..
[DB] 데이터 언어 (DDL, DML, DCL, TCL) 정의 📌 DDL (Data Definition Language) 데이터 정의어로 database를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어이다. 즉, database, table 등을 생성하거나 삭제하는 역할을 한다. 종류 CREATE : 테이블 등을 생성하는 역할 ALTER : 테이블을 수정하는 역할 DROP : 테이블을 삭제하는 역할 TRUNCATE : 테이블을 초기화시키는 역할 📌 DML (Data Manipulation Language) 데이터 조작으로 데이터를 관리하는 데 사용된다. 정의된 database에 입력된 레코드(column)를 조회하거나 수정, 삭제 등의 역할을 하는 언어를 말한다. 저장된 데이터를 실질적으로 처리하는 데 사..
[Spring Boot] DTO, DAO, VO 개념 정리 📌 DTO (Data Transfer Object) view와 통신하기 위한 클래스 getter와 setter 메서드 만을 가진 클래스 db에서 데이터를 받고 이 데이터를 다시 service 나 controller 등으로 넘겨주는 역할 세부적인 로직을 갖고 있지 않는 db로부터 받을 데이터들을 어떤 방식, 타입 등으로 보낼 것인지 정의해 놓는 클래스 또는 순수한 데이터 객체라고 의미하면 된다고 생각한다. 📌 DAO (Data Access Object) repository 패키지로 실제로 db에 접근하여 data를 CRUD 하는 객체 service와 db를 연결해주는 역할을 한다. 인터페이스와 이에 대한 구현체를 만들어서 구현체에 CRUD 관련 기능을 구현하고, 이를 DI(Dependency Injecti..
[Spring Boot] 패키지 구조 및 정리 📌 소스 작성을 위한 프로젝트 구조 Spring Boot는 목적에 따라 여러 패키지를 생성하여 코드를 관리하고 있어 크게 5가지로 나누어 보면 다음과 같다. controller repository dto domain (entity) service 📌 controller HTTP 요청과 응답을 위한 클래스 @Controller 어노테이션을 붙여주면 스프링 빈에 등록되고 스프링에서 관리하는 객체가 된다. @GetMapping(“주소”) 와 같이 http 메서드 명과 함께 주소를 작성해주게 되면 해당 주소로 요청을 받을 수 있게 됩니다. Service를 사용하여 db에 접근하게 되고 model을 사용하여 파라미터를 view 단으로 넘길 수 있고 template 이름만 문자열로 반환하게 되면 View Res..
[Spring] Gradle 과 Maven Spring과 Spring Boot를 공부하던 중 gradle과 maven을 알게 되었습니다. 익히 들어서 gradle과 maven 이 빌드 관리 도구인 것이라는 것은 알고 있지만, 자세한 개념은 파악하지 못해 이번에 공부하면서 각각의 개념과 장단점에 대해서 알아보고 기록하고자 한다. 📌 빌드 관리 도구란? 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이다. 애플리케이션을 개발하면서, 개발에 필요한 다양한 외부 라이브러리들을 다운로드하고, 해당 라이브러리를 사용하여 개발해야 하는 일이 많다. 이때 외부의 라이브러리들을 각각 다운로드할 필요 없이, 빌드 도구 설정 파일에 필요한 라이브러리 종류와 버전, 종속성 정보를 명시하여 필요한 외부 라이브러리를 설정 파일을 통해 자동으로 다운로드..
[Java] 프로그래머스 : 키패드 누르기 📄 문제 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💻 코드 package programmers; public class Lv1_Kakao_220712 { // 키패드 누르기 //도움 코드 public static void main(String[] args) { int[] numbers = {7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2}; String hand = "left"; System.out.println(solution..
[Java] 프로그래머스 : 모의고사 📌 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💻 코드 package programmers; import java.util.Arrays; public class Lv1_220705_2 { // 모의고사 // 도움 코드 public static void main(String[] args) { int[] answer = {1, 3, 2, 4, 2}; System.out.println(Arrays.toString(solution(answe..
[Java] 프로그래머스 : 두개 뽑아서 더하기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 📌 코드 package programmers; import java.util.*; public class Lv1_Pro_220701_3 { // 두개 뽑아서 더하기 public List solution(int[] numbers) { Set set = new LinkedHashSet(); // 1 for (..