본문 바로가기

분류 전체보기260

React - require vs import (22.11.09 TIL) vscode 로 작업을 하던 도중, import 를 시도하면 자꾸 require 로 불러와졌다. 강의대로 import 를 사용하긴 했지만 require 와 import 의 차이점은 알고 싶어 정리하는 글이다. require / exports 는 NodeJS에서 사용되고 있는 CommonJS 키워드이고 Ruby 언어 스타일과 비슷하다. import / export 는 ES6(ES2015)에서 새롭게 도입된 키워드로서 Java나 Python 언어 방식과 비슷하다. 원래 기존까지는 Node.js 개발 환경에서 모듈을 불러올 때 기존의 자바스크립트가 지원하는 방식대로 require / exports 를 사용했었다고 한다. require / exports 는 각각 불러오고(require) 내보내는(exports).. 2022. 11. 9.
controller 간단하게 만들기 (22.11.08 TIL) 오늘 아샬님의 금요 지식회 같은 특강에서 나온 부분 중 일부 정리! Controller 간단하게 만들기 일반적으로 컨트롤러는 presentation layer 에 속한다고 한다. UI 가 변경될 때 같이 변경되어야만 하는 대상은 대체로 presentation layer 이다. 서비스 레이어는 도메인 모델을 묶어서 이 애플리케이션에서 사용 가능한 핵심 작업을 설정한다. 핵심작업은 아래와 같다. 이 애플리케이션이 수행해야 하는 작업은 무엇인가? 이 애플리케이션에 내릴 수 있는 명령은 무엇인가? 보통 도메인 모델의 비즈니스 로직 하나를 호출하는 것만으로는 복잡한 작업을 처리할 수 없다. 도메인 모델을 불러와 요청을 가공하고, 응답을 조정해서 (dto 로의 변환을 요청한다든지 등) 또 다른 비즈니스 로직을 호출.. 2022. 11. 8.
Java - 내부 클래스(중첩 클래스), 익명 클래스 (22.11.07 TIL) 다시 돌아온 자바 개념서 정독 시간 ~_~ 1. 내부 클래스 (Inner class) 1) 클래스 안의 클래스. 중첩 클래스 라고도 함. 선언 위치에 따른 분류 선언 위치 설명 멤버 클래스 인스턴스 멤버 클래스 class A { class B { ... } } A 객체를 생성해야만 사용할 수 있는 B 중첩 클래스. 주로 외부 클래스의 인스턴스멤버들과 관련된 작업에 사용될 목적으로 선언됨. 정적 멤버 클래스 class A { static class B { ... } } A 클래스로 바로 접근할 수 있는 B 접근 클래스. 주로 외부 클래스의 static 멤버, 특히 static 메서드에서 사용될 목적으로 선언됨. 로컬 클래스 class A { void method() { class B { ... } } } .. 2022. 11. 7.
성공적인 자체 워크샵 (22.11.06 TIL) '하루만 쉬고 싶다'를 입에 달고 살던 요즘, 아무래도 환기가 필요하다는 생각에 Boni, Jules (a.k.a Boni's sister)와 함께 2주 전부터 계획한 '자체 워크샵(겸 호캉스) 떠나기'를 오늘 드디어 실행했다. 비록 멀리 떠난 것도 아니고 서울 한복판에 있는 호텔에서 단출하게 1박 2일을 보내는 것이지만 그래도 또 친구와 함께 있으니까 확 리프레쉬되는 게 기분이 참 좋은 하루이다. 아무래도 '바쁘다 바빠 현대사회!'를 외치는 취준생 2명에 현업 디자이너 한 명이 모이다보니 호캉스를 와서도 놓을 수 없는 현생이었지만 놀러만 온 것은 아니라서 집중해서 작업하다가도 재미있는 이야깃거리로 수다 떨고, 알면 좋은 알좋신잡이 있으면 공유하기도 하고, 또다시 집중해서 작업하는 등 알찬 하루를 보냈다.. 2022. 11. 6.
11월 첫 번째 주간 회고 📚 221031-221104 이번 주 배운 것 이번 주는 스프링 부트를 이용해 회원가입/로그인/인가를 배우는 주차였다. 회원가입 파트에서는 user를 가입시킨 후 user 객체를 레포지토리에 저장한다. 로그인 파트에서는 hash를 이용해 레포지토리에 저장된 user에게 필요한 암호를 암호화하고 jwt를 이용해 user 정보가 담긴 토큰을 발급한다. 인가 파트에서는 Spring security에서 제공하는 기능을 이용해 받아낸 토큰으로 인가를 받는다. jwt 를 이용해 토큰을 발급하면 서버 입장에서는 이 토큰으로 사용자를 찾게 된다. 그냥 무작정 controller에 던져서 찾는 것이 아니라 interceptor를 만들어야 한다. interceptor는 컨트롤러에 전달하는 데이터를 중간에가로채서 처리하기 .. 2022. 11. 6.
옵셔널 체이닝 '?.' (22.11.05 TIL) 이번 12주차는 리액트를 배우는 주차! 그 중 아샬님이 최신 문법이라고 하시며 알려주신 옵셔널 체이닝. const id = (latestTask?.id || 0) + 1; 한 번에 봐서는 무슨 문법인 지 알 수 없다. 일단 먼저 공식문서를 살펴보자. 옵셔널 체이닝 (optional chaining) ?. 을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있다고 한다. 옵셔널 체이닝이 필요한 이유 사용자가 여러 명 있을 경우, 그 중 몇명은 주소 정보를 가지고 있지 않다고 가정할 때 user.address.street 으로 주소 정보에 접근하면 에러가 발생할 수 있다. let user = {}; // 주소 정보가 없는 사용자 alert(user.address.street); // un.. 2022. 11. 5.