IT/개발 13

[TypeScript] Typescript 장점과 타입

TypeScript TypeScript 특징 자바스크립트의 확장된 언어, 자바스크립트에 타입을 입힌 언어 컴파일 필요: 브라우저에서 실행할 때 한 번 변환이 필요함 TypeScript의 장점 에러 사전 방지 JavaScript에서 잡을 수 없는 데이터의 모습, 오타 등을 알 수 있음 ex) JS Dock을 이용한 type 정의 /** User 객체 타입 정의 * @typedef {object} User * @property {string} name * @property {string} email */ /** * @returns {Promise } */ function ~ 코드 가이드 및 자동 완성 function add(a : number, b : number): number{ return a + b; ..

IT/개발 2022.04.08

[DB] SELECT ~ FOR UPDATE

SELECT ~ FOR UPDATE 선택한 행에 대해 LOCK을 설정하는 기능, update와 delete에서만 row level lock을 걸 수 있다. > 쉽게 말해, 내가 이 행을 update 할 것이니 사용하지 말라고 조건을 주는 것 옵션 1. SELECT FOR UPDATE: SELECT시, 다른 사람이 LOCK 중이면 무한정 기다림 2. SELECT FOR UPDATE NOWAIT: SELECT시, LOCK을 제어할 수 없으면 에러처리, 누군가 LOCK 중이면 해당 행에 대한 LOCK을 포기 3. SELECT FOR UPDATE WAIT 5(초단위): SELECT시, LOCK을 제어할 수 없으면 5초동안 계속 LOCK을 재시도, 5초가 지나면 포기

IT/개발 2021.11.05

[Spring] Spring Data JPA 사용 방법

pom.xml에 라이브러리 추가 org.springframework.boot spring-boot-starter-data-jpa org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 - H2: 인메모리 DB 테이블 매핑 @Entity(name = "member") public class Member{ @Id private Long id; private String name; @Builder public Member(String name){ this.name = name; } } Member (PK) bigint id varchar name - @Entity: JPA가 관리하는 클래스 > name: 속성 지정, 사용할 엔티..

IT/개발 2021.10.29

[Spring] JPA란

JPA 자바 진영의 ORM 기술 표준 명세 ORM(Object Relational Mapping) 객체-관계 매핑, 객체지향프로그래밍(OOP)의 클래스와 RDB의 테이블을 자동으로 매핑하는 것을 의미 객체는 객체대로, RDB는 RDB대로 설계하여 ORM이 중간에서 매핑하는 형태 https://geonlee.tistory.com/207 장점 - 완벽한 객체지향적인 코드: 클래스의 메서드를 통해 데이터베이스 조작 - 재사용성, 유지보수, 리팩토리 용이 - DBMS 종속성 ❌ 단점 - 객체-관계 간의 불일치: 세분성, 상속성, 일치, 연관성, 탐색 동작 과정 - 애플리케이션과 JDBC 사이에서 동작 조회 저장 장점 - SQL 중심적인 개발에서 객체 중심으로 개발 - 생산성 > CRUD 간편 저장: jpa.pe..

IT/개발 2021.10.29

[Spring] Spring Cloud 개념 및 핵심 컴포넌트

Spring Cloud https://happycloud-lee.tistory.com/207 - MSA의 개발, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있도록 지원하는 Spring Boot 기반 프레임워크 - 분산 시스템 상에 필요한 여러 패턴들을 표준 패턴화 시켜 손쉽게 개발 할 수 있도록 지원 🔴중요 컴포넌트 : Spring Cloud Netfix의 Zull, Eureka, hystrix, ribbon EOS, Spring Config Spring Config Spring Cloud Config 서버를 사용하여 Spring Boot Application의 환경설정 파일을 한 곳에 저장, 해당 서버에 접근하여 환경 설정 정보를 가져옴 장점 - 모든 Application의 환경 설정 정보를 한 ..

IT/개발 2021.10.01

[SpringBoot] Transaction 사용하기

Transaction sql 실행 시, 하나의 단위로 묶어서 처리하는 방법 ex) 티켓을 구매하기 위해서 A(티켓수) sql과 B(사람수) sql이 모두 실행되어야 성공일 때 A와 B는 하나의 트랜잭션 안에서 실행됨 ▶️ A 또는 B 실패 시 두 sql 실행X TransactionTemplate SpringBoot에서 사용하는 Trasaction //transation @Autowired TranactionTemplate transactionTemplate; public void outTransaction(){ try{ transactionTemplate.execute(new TransactionCallbackWithoutResult(){ @Override protected void doInTransac..

IT/개발 2021.09.24

[SpringBoot] MyBatis 간단 기초

MyBatis 스프링부트에서 sql 쿼리문을 쉽게 작성하기 위한 프레임워크 xml 파일을 이용해서 일반적인 sql 작성 사용방법 1. application.properties //mapper하위 디렉토리에 모든 xml을 다 사용함 mybatis.mapper-locations:classpath:mybatis/mapper/**/**.xml 2. Mapper XML select id, pw from Login where id=#{_id} - where문 뒤에는 변수명으로 _id가 파라미터명이 됨 - resultType은 해당하는 패키지 밑에 있는 DTO가 됨 3. DAO //xml에서 같은 이름 실행 @Mapper public interface LoginDao{ List list(@Param("_id") St..

IT/개발 2021.09.22

[SpringBoot] 백엔드에서 Form 데이터 받기

목적 프론트엔드(JSP)에서 백엔드(Servlet)로 Form 데이터를 전달할 때, 백엔드에서 데이터를 활용하기 위해 파라미터로 전달받음 이 때, 전달받는 방법에 여러가지가 있어서 정리함 방법 1. HttpServletRequest 이용 // HttpServletRequest @RequestMapping("/FormData1") public String FormData1(HttpServletRequest httpServletRequest, Model model){ // httpServletRequest를 이용하여 id와 pw를 가져옴 String id = httpServletRequest.getParameter("id"); String pw = httpServletRequest.getParameter("..

IT/개발 2021.09.21