전체 글(43)
-
TypeScript 공부하기
타입스크립트란 무엇인가? 여기 를 누르면 타입스크립트 공식 홈페이지로 이동할 수 있다. 기본적으로 자바스크립트는 1995년 넷스케이프사의 브렌던 아이크가 Navigator2 브라우저에 탑재하기 위하여 만들어진 스크립트 언어이다. 원래 목표가 웹페이지의 보조적인 기능을 수행하기 위함이였고, 초기 브라우저는 서버로 전달받은 html과 css를 렌더링하는 수준이였다. 점차 웹기술이 발전하면서 많은 역할과 기능들을 웹페이지에서 보여주어야 했다. JavaScript의 가장 큰 논리적 장점은 개발자의 머릿속에서 구현하고 싶은 프로그램이 빠르게 프로토타이핑된다는 것 인데 이런 부분이 규모가 거대해지는 웹 어플리케인을 견고하게 하지 못하는 부분도 있다고 생각한다. JavaScript 에는 "프로젝트가 진행될수록 Jav..
2023.11.29 -
스프링 AOP 공부하기
스프링 AOP란? AOP ( Aspect-oriented-programming )은 OOP를 보완하는 수단이며 대칭하는 개념이 아니다, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법 위 그림을 살펴보자 각 클래스에 비슷한 기능을 하는 요소들을 Aspect로 묶어서 어디에서 동작해야하는지를 표기해주는 것이다. AOP 용어 AOP를 공부하다보면 용어때문에 헷갈리는 경우가 많다, 모든 AOP용어를 완벽하게 이해해야 하지는 않다. 큰 흐름과 의미만 알고있으면 된다. Aspect : 묶인, 모여있는 모듈화 되어있는 기능이다. Advice: 해야할 일들, 기능이다. Pointcut: 어디에 적용해야 하는지의 정보, 예를들어 클래스A에 register 라는 메서드를 호출할 때 에만 특정 어드바이스를 적용하..
2023.11.28 -
Node.js - sequelize ORM 알아보기
sequelize란 sequelize는 node 환경에서 사용하는 node 에서 사용하는 ORM이다. mysql을 node 환경에서 javascript 문법으로 편리하게 사용할 수 있도록 해준다. 처음에는 sequelize가 SQL 문법을 잘 모르는 상황에서나 사용하는 것이고 순수SQL문법보다 한번 wrapping되는것이라 성능에서도 떨어진다고 알고있어서 약간은 부정적(?)으로 생각하는 부분도 있었는데 위메프에 경우 sql문이 1,000줄이 넘는경우도 있고 회사에서 참여한 sping-boot 코드랩에서 ORM을 사용하는것이 나쁜것이 아니라는 의견과 그에대한 내용을 보면서 그냥 선택의 문제인 것 같다. npm i sequelize mysql2 npm i -g sequelize-cli sequelize를 사..
2023.11.26 -
Node.js 로그인 구현하기 (passport)
passport란 passport는 npm 모듈이며 로그인처리 및 session 관리를 편리하게 도와준다. passport는 독특하게 Strategy(전략)이라는 개념을 사용한다 passport-local은 로그인을 직접 구현할 때 사용하고 passport-google-oauth, passport-facebook, passport-twitter, passport-kakao, passport-naver 등등 oauth를 통해 SNS가입을 관리하는것도 지원한다. localStrategy 구현하기 npm i passport passport 모듈을 다운로드 받는다. App.js - Root 파일 const passport = require('passport'); const passportConfig = requ..
2023.11.25 -
Mybatis 간단 사용법 익히기
Mybatis란? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. Mybatis 적용해 보기 application.properties에 mybatis 등록 #mybatis - mybatis/mapper 하위에 있는 모든 디렉토리에 모든 xml파일을 사용한다는 의미, 대신 @Mapper와 namespace가 자기이름과 같은것을 매핑한다. mybatis.mapper-locations=classpath:myb..
2023.11.21 -
JPA 학습하기 (2편)
영속성 전이(CASCADE)와 고아 객체 영속성 전이는 부모객체가 영속성에 추가될때 자식객체도 자동으로 영속성에 추가되게끔 하는 것이다. 프록시나 즉시로딩,지연로딩과는 전혀 관계가 없는 별개의 주제인데 오해하는 경우가 많다. 중요한 코드만 작성하고 그외 필드나 getter,setter같은 코드는 생략하였다. @Entity public class Parent{ @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "parent") private List childList = new Array(); public void addChild(Child child){ // 편의 메서드 childList.add(child); child.setParent(this);..
2023.11.20