[Java] Optional이란?
·
Language/Java
개발을 할 때 가장 많이 발생하는 예외 중 하나가 바로 NullPointerExeption이다 이 NPE를 피하려면 null 여부를 검사해야하는데, null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거롭다 그래서 Java 8 버전부터 등장한 것이 Optional 클래스이다 Optional은 null 값이 올 수도 있는 값을 감싸는 Wrapper 클래스로 참조하더라도 NullPointerExeption이 발생하지 않도록 도와준다 자바 공식 문서에는 다음과 같이 Optional을 만든 의도가 적혀있다 메소드가 반환할 결과 값이 '없음'을 명백하게 표현할 필요가 있고 null을 반환하면 에러가 발생할 가능성이 높은 상황에서 메소드 반환 타입으로 Optional을 사용하자는 것이 Optional을 ..
[스프링부트 입문] 시리즈 #03 회원 관리 페이지 만들기
·
Framework(Library)/Spring(Springboot)
스프링부트 입문 시리즈 #01 프로젝트 생성하기 #02 정적페이지 만들고 화면 띄우기 #03 회원 관리 페이지 만들기 👈 #04 회원 리포지토리 테스트 케이스 회원관리 페이지는 다음과 같은 순서로 만든다 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 DB: 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 스프링의 전반적인 구조를 이해하기 위해 단순한 비즈니스를 구현할 것이다 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체 ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메..
[스프링부트 입문] 시리즈 #02 정적페이지 만들고 화면 띄우기
·
Framework(Library)/Spring(Springboot)
스프링부트 입문 시리즈 #01 프로젝트 생성하기 #02 정적페이지 만들고 화면 띄우기 👈 #03 회원 관리 페이지 만들기 #04 회원 리포지토리 테스트 케이스 지난시간에는 스프링 부트 프로젝트를 생성했다 생성된 프로젝트의 폴더구조를 보면 src 폴더에 main과 test 폴더가 있다 main 폴더의 java 폴더에는 실제 패키지와 소스파일이 있고, resources에는 실제 자바 코드파일을 제외한 설정파일이 들어가게 된다 (자바 파일을 제외한 모든 파일은 resources에 들어간다고 보면 됨) test 폴더는 테스트 코드와 관련된 소스들이 들어간다 이렇게 test폴더가 따로 존재할 정도로 요즘 개발 트렌드에서 test 코드는 정말 중요하다 그 다음으로 중요하게 살펴볼 파일은 build.gradle 파일..
[Github] 이클립스(Eclips)에서 Git 연결 및 커밋하기
·
Devops/Git & SVN
회사에서는 SVN을 사용해 버전을 관리하고 있다 스프링부트를 공부하면서 이클립스로 프로젝트 하고있는데 공부한 것 들을 깃허브에 올려두고 싶어 이클립스와 깃허브를 연동하는 방법을 알아보았다 Git/Github의 개념은 👉여기에 자세히 적어두었다 1. 깃허브에서 레포지토리(Repository) 생성하기 다음과 같이 설정한 뒤 Create Repository를 하면 간단하게 레포지토리를 생성할 수 있다 README file은 있어도 되고 없어도 되는데 난 꼭 추가를 하는 편이다..ㅎㅎ 2. 이클립스에서 Git 레포지토리 연동하기 Window - Show View - Other 선택 아래와 같은 창이 뜨면 Clone a Git repository를 선택한다 Clone a Git repository를 선택하면 다..
[스프링부트 입문] 시리즈 #01 프로젝트 생성하기
·
Framework(Library)/Spring(Springboot)
스프링부트 입문 시리즈 #01 프로젝트 생성하기 👈 #02 정적페이지 만들고 화면 띄우기 #03 회원 관리 페이지 만들기 #04 회원 리포지토리 테스트 케이스 #05 회원 서비스 개발 개발환경 IDE - Eclipse Language - Java 11 SpringBoot 프로젝트 생성하기 스프링부트 프로젝트를 생성하는 방법은 아주 간단하다 옛날옛적에는... 직접 밑바닥부터 하나하나 만들었다고 하는데 요즘은 그냥 사이트에서 자동으로 뚝딱 만들어준다! 다음 사이트에 접속해 프로젝트를 생성하면 된다 👉스프링부트 프로젝트 생성 Project Gradle을 선택해준다 Gradle과 Maven의 차이는 여기에 정리해 놓았다 Language Java Spring Boot 2.x 버전을 선택해준다 3.0부터는 Java..
국가연구자번호 | 과학기술인등록번호 발급 및 조회방법
·
IT 정보
회사에서 과학기술인등록번호를 발급받아 제출하라는 요청을 받고 과학기술등록번호가 뭐지? 하고 찾아봤다 국가연구자번호란? 국가연구자번호(구 과학기술인등록번호)란 국가연구개발에 참여하는 연구자의 개인정보 노출을 최소하하기 위해 주민등록번호를 대체하기 위해서 만들어진 프로그램이다 국가 R&D 사업 및 과제에 참여하는 연구자에게 부여되는 고유번호이며 이 번호를 발급받아야 국가 R&D 과제를 신청할 수 있는 자격이 주어지고, 연구활동도 정상적으로 수행할 수 있다 NTIS에서 발급하며 국가연구자번호를 검색해 그동한 수행한 국가 R&D 과제 이력을 볼 수 있다 이처럼 한 번만 발급받으면 모든 국가 R&D 과제 신청 및 관리를 편리하게 할 수 있다! 국가연구자번호 발급받기 1. 범부처통합연구지원시스템 홈페이지에 접속 👉..
[JavaScript] var, let, const 차이
·
Language/Java Script
회사에서 개발중인 프로젝트 코드를 읽다가 변수를 선언하는데 var와 const가 섞여있는것을 보고 이 두개의 차이가 궁금해서 찾아보고 정리하는 시간을 가져보았다 JavaScript 에서는 변수를 선언할 때 var, let, const를 사용한다 모두 변수를 선언하기 위해 사용하지만 각각의 기능에는 조금씩 차이가 있다 변수 선언 var var title = 'book'; title = 'movie'; title = 'music'; 중복 선언 O 재할당 O var는 원조 변수 선언 방식으로 동일한 이름으로 중복 선언이 가능하다 즉, 마지막으로 할당된 값이 변수에 최종으로 저장된다 변수를 유연하게 사용할 수 있지만, 기존에 선언해둔 변수의 존재를 잊고 재선언 하는 경우 문제가 발생할 수 있다 간단한 테스트에는..
[React] 동기 / 비동기 통신
·
Framework(Library)/React
오늘은 동기 비동기 통신에 대해 공부했다 간단하게 동기 통신은 서버 컴퓨터가 작업이 끝날 때 까지 기다리는 통신이고 비동기 통신은 안기다리는 건데 비동기 통신은 요청(request)들이 서로 기다릴 필요가 없을 대 사용한다. 비동기 통신이 더 효율적이며 동기 통신은 필요할 때 사용하면 된다. JavaScript는 기본적으로 동기적으로 작동하지만, 최신 라이브러리(설치해서 쓰는 애들)들은 기본적으로 비동기로 작동한다. (비동기가 더 효율적이기 때문에) VS code에서 동기 / 비동기 통신 사용하기 실습을 위해 아래 페이지의 API를 사용할 것이다 https://koreanjson.com/ Korean JSON { Korean JSON } Super simple JSON API in Korean. Requ..
[Spring] 빌드 관리 도구 : Maven과 Gradle의 차이
·
Framework(Library)/Spring(Springboot)
Spring 프로젝트를 생성하는데 빌드 도구를 Maven으로 할지, Gradle로 할 지 선택을 해야되는데 이 두개의 차이가 뭔지 궁금해서 찾아보고 정리하기로 했다 1. 빌드(Build)란? 소스코드 및 프로젝트에 쓰인 각각의 파일 및 자원 등을 JVM이나 WAS가 인식할 수 있는 구조로 패키징하는 과정 및 결과물을 말한다. 2. 빌드 관리 도구(Build Tool) 란? 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램 소스코드를 실행 가능한 어플리케이션으로 만들어주는 도구이다 계속해서 늘어나는 라이브러리, 프로젝트 진행 중 라이브러리 버전 동기화의 어려움을 해소해준다. 즉 빌드 과정을 자동화하여 관리해주는 역할을 한다! 특징 빌드 도구의 특징은 개발자가 스크립트를 작성하여 다양한 작..