스프링 빈(Spring Bean)이란?
·
Framework(Library)/Spring(Springboot)
기존의 Java Programming 에서는 Class를 생성하고 new를 입력하여 원하는 객체를 직접 생성한 후에 사용했다. 하지만 Spring에서는 직접 new를 이용하여 생성한 객체가 아니라, Spring에 의해 관리되는 자바 객체를 사용한다. 이렇게 Spring에 의하여 생성되고 관리되는 자바 객체를 빈(Bean)이라고 한다. Spring Framework에서는 Spring Bean을 얻기 위해 ApplicationContext.getBean() 와 같은 메소드를 사용하여 Spring 에서 직접 자바 객체를 얻어서 사용한다. 빈(Bean) 재사용 가능한 소프트웨어 컴포넌트이며, 스프링 컨테이너는 하나 이상의 빈(Bean)을 관리한다. 빈(Bean)은 인스턴스화된 객체를 의미하며, @Bean 어노테..
[JAVA] 자바11 설치 / 환경변수 설정 (Window11)
·
Language/Java
1) 자바 11 다운로드 (JAVA SE JDK 설치) https://www.oracle.com/java/technologies/downloads/archive/ Looking for an Older Java Release? Access the historical java release archive that includes JRE and JDK to help developers debug issues in older systems. www.oracle.com SE는 Standard Edition으로 기본 에디션이라는 뜻으로 기본 에디션을 설치해 주면 된다. EE는 Enterprise Edition으로 기업용환경을 구성해주는 에디션이다. 2) 자바 환경변수 설정 이미 자바 8을 설치해 사용하고 있었기 때..
[SpringBoot] 이클립스에서 Test Case 만들기
·
Framework(Library)/Spring(Springboot)
package hello.hellospring.service; import java.util.List; import java.util.Optional; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; // 회원 서비스 만들기 public class MemberService { // 회원 레포지토리 private final MemberRepository memberRepository = new MemoryMemberRepository(); // 회원가입 public Long join..
[JSP] scope란?
·
Web/JSP
Application 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 Session 웹 브라우저 별로 변수가 관리되는 경우 사용 웹 브라우저별로 변수를 관리하고자 할 경우 사용한다. 웹 브라우저간의 탭 간에는 세션정보가 공유되기 때문에, 각각의 탭에서는 같은 세션정보를 사용할 수 있다. HttpSession 인터페이스를 구현한 객체를 사용한다. JSP에서는 session 내장 변수를 사용한다. 서블릿에서는 HttpServletRequest의 getSession()메소드를 이용하여 session 객체를 얻는다. 값을 저장할 때는 session 객체의 setAttribute()메소드를 사용한다. 값을 읽어 들일 때는 session 객체의 getAttribu..
[SVN] Subversion
·
Devops/Git & SVN
SVN이란? SVN은 Subversion의 줄임말로 형상관리/소스 관리 툴이다 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 툴 프로젝트 소스는 SVN 서버의 Trunk라는 곳에 위치, 자신의 Local에 Trunk의 소스를 다운받아(update) 수정 및 추가 후 다시 업로드(commit)하는 방식 자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch를 만들어 작업 후 자기 자신만 접근하여 개발하며, 완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 된다 용어 Repository - 파일들이 저장되는 원격 저장소 Revision - 0부터 1씩 증가하는 유일한 값 - 저장소 내 변경이 발생했을 때 마다 증가한다 - Merge 등을 할 때 기준이 될 수 있다 - 가..
[React] 카카오 지도 구현
·
Framework(Library)/React
React + JavaScript를 사용해 카카오지도를 구현했다. 전체코드 import React, { useEffect, useState, useMemo } from "react"; import Marker from "../components/Marker"; const { kakao } = window; export default function StudyMap() { // 현재위치 담는 곳 const [location, setLocation] = useState(""); const [map, setMap] = useState(); // 현재위치 세부조정 var options = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0, }; // 현재 위치..
Next.js 리렌더링하면 Styled-Components 적용 안됨
·
Framework(Library)/React
문제 새로고침을 했더니 'className did not match' 에러가 뜨며 css가 모두 사라져 버리는 현상 발생 이유는 서버에서 받은 해시 + 클래스명과 새로고침 후 클라이언트에서 받은 해시+클래스명이 달라서 발생하는 문제였다. 해결방법 1. 바벨 플러그인 설치 yarn add babel-plugin-styled-components 2. .babelrc설정 파일 생성 후 아래 코드 작성 { "presets": ["next/babel"], "plugins": ["babel-plugin-styled-components"] } 참고 https://velog.io/@hongdol/Next.js-TS-%EB%A6%AC%EB%A0%8C%EB%8D%94%EB%A7%81%EC%8B%9C-Styled-Compo..
[Node.js] 블로킹 / 논블로킹
·
Server/NodeJS(NestJS)
이벤트 루프를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있다 작업에는 동시에 실행될 수 있는 작업과 동시에 실행될수 없는 작업이 있는데 기본적으로 자바스크립트 코드는 동시에 실행될 수 없다 하지만 파일 시스템 접근이나 네트워크를 통한 입출력 작업은 동시에 처리될 수 있다 블로킹이란 이전 작업이 끝나야만 다음 작업을 수행하는 것을 의미하고 논블로킹은 이전 작업이 완료될 때 까지 기다리지 않고 다음 작업을 수행함을 뜻한다 논브로킹 방식이 더 짧은 시간안에 같은 작업을 처리할 수 있다(모든 작업이 동시에 처리될 수 있는 작업이라는 전제) setTime(콜백, 0)은 코드를 논블로킹으로 만들기 위해 사용하는 기법 중 하나이다 아무리 논블로킹 방식으로 코드를 작성하더라도 코드가 전부 내가 작성한 것이..
[Node.js] 이벤트 루프 (event loop)
·
Server/NodeJS(NestJS)
function run() { console.log("3초후 실행"); } console.log("시작"); setTimeout(run, 3000); console.log("끝"); 시작 끝 3초 후 실행 동작 과정 setTime의 시간이 정확하지 않을 수 있는데 이벤트 루프는 스택이 비어있을 때 만 큐에 있는 run함수를 스택에 가져오는데 스택에 함수가 너무 많다면 3초가 지난 후에도 run 함수가 실행되지 않기 때문이다