본문 바로가기

WEB개발

(43)
[JS] 모듈(module, import, export) : 개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 여러 개로 분리해야 하는 시점이 옵니다. 이때 분리된 파일 각각을 '모듈(module)'이라고 부르는데, 모듈은 대개 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된 라이브러리 하나로 구성됩니다. 모듈은 단지 파일 하나에 불과합니다. 스크립트 하나는 모듈 하나입니다. 모듈에 특수한 지시자 export와 import를 적용하면 다른 모듈을 불러와 불러온 모듈에 있는 함수를 호출하는 것과 같은 기능 공유가 가능합니다. export 지시자를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근할 수 있습니다(모듈 내보내기). export let mlet = "mlet"; export function mfnc1() { console.l..
[JS] Deferred $.deferred Promise와 Deferred는 비슷한 목적을 가지고 있으며 비동기 작업을 처리하는 데 사용되는 기술이지만, 사용 방식과 개념적인 차이가 있습니다. Deferred는 jQuery 라이브러리에서 사용되는 개념이고, Promise는 기본 JavaScript의 표준 내장 객체입니다. Deferred는 Promise의 이전 버전과 비슷한 역할을 합니다. Promise: Promise는 ES6(ECMAScript 2015)에서 표준 내장 객체로 추가되었습니다. JavaScript 비동기 처리를 위해 사용되는 객체로, 비동기 작업이 완료되거나 실패했을 때 결과를 처리하는 방법을 제공합니다. Promise 객체는 세 가지 상태를 가질 수 있습니다: "대기 중(pending)", "이행됨(fulf..
[WEB기본] Gradle, Maven Maven과 Gradle은 둘 다 Java 프로젝트 빌드를 자동화하기 위한 도구입니다. 이들의 가장 큰 차이점은 Maven이 XML을 사용하여 프로젝트를 구성하고 빌드하는 반면, Gradle은 Groovy 또는 Kotlin DSL을 사용하여 프로젝트를 구성하고 빌드합니다. 이러한 차이점으로 인해 각각의 장단점이 있습니다. MAVEN Ant는 비교적 자유도가 높은 편(Ant : 전처리 / 컴파일 / 패키징 / 테스팅 / 배포 가능)이나 Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전반적인 프로젝트 관리 기능까지 포함. (Build Tool + Project Management) Maven의 장점: XML 구문이 간단하고 명확하여 이해하기 쉽습니다. Maven은 중앙 저장소에서 의존성을 다운로드..
[SPRING] AOP Spring AOP AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것이다. 예를 들어 핵심적인 관점은 비즈니스 로직이 될 수 있고, 부가적인 관점은 핵심 로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있다.   AOP는 흩어진 관심사(Crosscutting Concerns)를 모듈화 할 수 있는 프로그래밍 기법이다    이때 예를 들어 클래스 A의 주황색 블록 부분을 수정해야 한다면 클래스 B, C의 주황색 부분도 일일이 찾아 수정해야 한다. 이런 식으로 소스 코드상에서 계속 반복해서 사용되는 부..
[SPRING] BEAN 1. BEAN : Spring에서 POJO(plain, old java object)를 ‘Beans’라고 부른다.Beans는 애플리케이션의 핵심을 이루는 객체이며, Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성된다.Beans는 우리가 컨테이너에 공급하는 설정 메타 데이터(XML 파일)에 의해 생성된다.컨테이너는 이 메타 데이터를 통해 Bean의 생성, Bean Life Cycle, Bean Dependency(종속성) 등을 알 수 있다.애플리케이션의 객체가 지정되면, 해당 객체는 getBean() 메서드를 통해 가져올 수 있다. 2. Spring Bean 정의 주요 속성class(필수): 정규화된 자바 클래스 이름id: bean의 고유 식별자scope..
[JS] Async, Await, Fetch, PromiseAll async와 await async와 await라는 특별한 문법을 사용하면 프라미스를 좀 더 편하게 사용할 수 있습니다. async 함수 async 키워드부터 알아봅시다. async는 function 앞에 위치합니다. async function fetchData(url) { try { const response = await fetch(url); // API 요청 보내기 const data = await response.json(); // JSON 데이터 파싱하기 return data; // 데이터 반환 } catch (error) { console.log('Error:', error); } } // fetchData 함수 호출하기 fetchData('https://jsonplaceholder.typico..
[Spring] 주석2 (Annotation) @Resource, @Autowired, @Inject, @Qulifier, @Configuration, @PropertySource   @Resource, @Autowired, @Inject, @Qulifier  @Resource@Inject@Autowired의존JavaJavaxSpring사용 가능 위치- 필드- 파라미터가 한 개인 setter- 필드- 생성자- setter- 필드- 생성자- setterBean 검색우선순위이름 -> 타입타입 -> 이름타입 -> 이름Bean 강제 지정@Resource(name="ID")@Inject@Named("ID")@Autowired@Qualifier("ID")Bean 없을 경우예외 발생예외 발생@Autowired(required=false) 처리하면 예외 발생 방지..
[WEB기본] forward vs redirect forward vs redirect 얼핏 보면 forward의 기능이 redirect와 비슷해보인다. 하지만 이 둘은 분명한 차이점이 있다. 1. 리다이렉트는 url 주소가 달라지고, 포워드는 url 주소가 달라지지 않는다. 리다이렉트는 클라이언트가 서버에게 요청을 보내면 서버는 어떠한 일을 처리하고 클라이언트에게 새롭게 요청할 곳을 알려준다. 그래서 리다이렉트의 결과는 실제 실행한 뒤에 url 주소가 달라진다. 반면, 포워드는 클라이언트가 요청을 보냈을 때 서버 쪽에서 혼자 처리하는 것이 아니라 또 다른 back에게 일을 넘기는 것이다. 포워드의 경우 클라이언트는 서버에서 서블릿이 혼자 일을 처리했는지, 다른 서블릿에게 일을 위임했는지 알 필요가 없다. 그래서 포워드가 실행되면 url주소는 바뀌지 않는..