일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- class-transformer
- Mac
- 프로그래머스
- REST
- Java
- 프로젝트 여러 개
- JavaScript
- javascript error
- flutter mac 설치
- DART
- TypeScript
- db
- MySQL
- Aspect
- 인텔리제이
- eqauls-hashcode
- tecoble
- svn
- oracle
- 봤어요처리
- 코어자바스크립트
- SQL
- node.js
- Stream
- maven
- InteliJ
- @RequestBody
- datagrip 한글깨짐
- ojdbc6
- Spring
- Today
- Total
목록Dev/Java & Spring (22)
개발자가 되고 싶은 개발자
Preface동일성과 동등성은 객체를 비교할 때 중요한 개념입니다.Java에서는 equals() 메서드와 == 연산자를 통해 구분할 수 있습니다.Spring에서는 lombok의 @EqualsAndHashCode 어노테이션을 이용합니다.equals() 메서드와 == 연산자의 차이객체 비교 대상에서의 차이가 존재합니다.eqauls() 메소드는 객체의 내용을 비교하고, == 연산자는 객체의 참조를 비교합니다.따라서 두 객체의 내용이 같더라도, 서로 다른 객체라면 eqauls()는 true를,== 연산자는 fasle를 반환합니다.동등성평가의 대상인 객체의 내용이 같은지를 비교하는 개념입니다.자바에서는 equals()메서드를 사용하여 객체의 동등성을 비교합니다.class Team { private List ..
문제 Spring Initializr에서 생성 후 프로젝트 실행 시 서버가 구동되지 않고 바로 종료되었습니다. 원인 및 해결방법 build.gradle에 아래 의존성을 추가 후 refresh 하시면 됩니다. implementation 'org.springframework.boot:spring-boot-starter-web' InteliJ의 Gradle탭에서 해당 의존성을 살펴보면, Spring Boot에서 사용하는 내장 톰캣이 spring-boot-starter-web과 연관돼 있는 것을 보실 수 있습니다. 해당 라이브러리가 없어서 발생하는 문제이고, web 모듈을 받아주면 됩니다. 가끔 프로젝트를 의존성 없이 생성한 후 실행이 안돼서 무지성으로 검색부터 할 때가 있어 기록합니다.
API 문서와 소스를 통해 스택 자료구조가 작성되어 있는 Stack 클래스를 분석해보도록 하겠습니다. Java Platform SE 8 docs.oracle.com Stack 클래스의 구조 Stack 클래스란? public class Stack extends Vector 스택 클래스는 객체의 LIFO 스택을 표현합니다. 스택 클래스는 백터를 스택으로 취급할 수 있게 해주는 다섯 가지 작업로 백터 클래스를 확장합니다. push와 pop 작업이 제공되고, 스택의 상단 요소를 찾기 위한 메서드와, 스택이 비어있는지 확인할 수 있는 메서드, 그리고 요소를 찾을 수 있는 메서드와 상단으로부터 얼마나 떨어져 있는지 찾기 위한 메서드가 제공됩니다. 더 완전하고, 일관된 LIFO 스택 작업의 set은 Deque 인터페..
문제 ajax 통신으로 데이터 전송 시 서버측에서 해당 오류 발생 원인 put 메서드 이용 시 json 형식으로 요청하여야 하는데, 사용하는 라이브러리에서 text데이터를 보내고 있었음. 해결방법 JSON.stringify(item) json형식으로 변환하여 전송하여 해결함. 참고 Spring post method "Required request body is missing" @PostMapping(path="/login") public ResponseEntity loginUser(@RequestBody Map userData) throws Exception { return ResponseEntity.ok(userService.login(userData))... stackoverflow.com
먼저, JVM이란 - JVM은 Java Virtual Machine의 약자로 자바 가상머신을 의미합니다. - 우리가 작성한 자바 코드는 컴파일러를 통해 자바 바이트 코드 즉, class 확장자 파일로 컴파일됩니다. - 해당 파일을 JVM위에서 동작시킴으로서 JVM만 설치되어 있다면 운영체제에 구애받지 않고 프로그램을 동작할 수 있습니다. 위 그림의 3번인 Runtime Data Area가 알아보고자 하는 JVM의 메모리 영역입니다. 운영체제 위에서 JVM이 실행되면서 할당받는 메모리 영역입니다. 5개의 영역이 존재합니다. 메소드, 힙, 스택 영역에 대해서만 알아보도록 하겠습니다. 메소드 영역(Method Area) 스택 영역(Stack Area) / 힙 영역(Heap Area) Reference 마로의 ..
Java에서의 정렬 자바에서 데이터를 정렬해야 할 때, 기본적인 정렬은 java.util 패키지에 정의되어 있는 Arrays와 Collections의 sort메소드를 사용합니다. int[] randomNum = {3, 4, 6, 3, 2}; Arrays.sort(randomNum); String[] fruits = {"apple", "banana", "kiwi"}; Arrays.sort(fruits); ArrayList alphabetList = new ArrayList(Arrays.asList("C", "A", "B", "a")); Collections.sort(alphabetList); 위의 예시대로 작성한다면, 기본 정렬인 오름차순으로 정렬하게 됩니다. 기본적으로 제공되는 기능들로 오름차순, 내림차..
상황 API를 호출하여 컨트롤러에서 @RequestBody 어노테이션을 사용하여 데이터를 받아왔습니다. 하나의 데이터를 제외한 나머지는 정상적으로 받아오고, 특정 값만 받아오지 못하여 문제가 되었습니다. 해결책 "Spring mvc uses jackson to parse json by default. It is guessed whether the field name of the entity class is changed when the field name is converted to json." Spring은 json파싱을 위해 기본값으로 jackson 라이브러리를 사용한다고 합니다. 필드명을 아래와 같은 형태로 작성하게 되면 IDE혹은 Lombok에서 자동생성해주는 Getter/Setter의 메소드명은..
최근 몇 개월간 배치 프로그램 개발을 맡아서 진행하였는데, 반복적인 업무를 자동화 할 수 있다는 점에서 굉장히 흥미로웠습니다. 아직은 경험해 본 범위 내에서만 활용할 줄 알기때문에, 다른 사람들과 기업에서는 어떻게 활용하고 있는지, 추가적인 기능은 없는지 찾아보며 Spring Batch에 관하여 정리해보려 합니다. Spring Batch란 A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. 엔터프라이즈 시스템의 운영에 필수적인 강력한 배치 애플리케이션을 개발할 수 있도..
스트림이란? - 여러 자료에 대한 처리 기능을 미리 구현해 놓은 클래스 스트림 연산 - 종류: 중간 연산 / 최종 연산 - 중간 연산: 자료를 거르거나 변경하여 또 다른 자료를 내부적으로 생성 - 최종 연산: 중간 연산에서 생성된 내부 자료를 소모하며 연산을 수행 - 따라서 최종 연산은 마지막에 한 번만 호출됨 - 최종 연산이 호출되어야만 중간 연산의 결과가 만들어짐 자주 사용되는 중간 연산(filter, map) - filter( ): 조건을 넣고 그 조건에 맞는 참인 경우만 추출하는 경우에 사용 public static void main(String[] args) { int[] array = {1,2,3,4,5}; // 3 이상의 값만 출력 Arrays.stream(array).filter(i -> ..
목적 - Log4j2에서의 PatternLayout의 속성에 관하여 숙지 정의 - 패턴 문자열로 구성 가능한 유연한 레이아웃. (A flexible layout configurable with pattern string.) 사용법 - 각 변환 지정자는 (%) 기호로 시작하고, 뒤에 선택적 형식 지정자와 변환 문자가 옴 (Each conversion specifier starts with a percent sign (%) and is followed by optional format modifiers and a conversion character. ) 속성(기본적으로 사용되는 속성만 기록함) - p: 로깅이벤트의 우선순위를 출력하는데 사용됨 (Used to output the priority of the..
Maven Update 후 서버 구동 시 오류가 발생하였습니다. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 1. 오류 나는 프로젝트 우클릭. 2. Deployment Assembly. 3. Add. 4. Java Build Path Entries. 6. Maven dependency를 추가. Maven Update를 하니, 해당 라이브러리가 사라졌습니다. 정확한 원인은 찾지 못하였습니다.
객체(Instance) 객체는 Instance를 포함하는 일반적인 의미입니다. Car 클래스에서 Car를 생성하면 Car는 Car 클래스의 객체(인스턴스). 클래스 변수/인스턴스 변수 클래스 변수(static 변수) 모든 인스턴스가 하나의 저장공간을 공유하므로 항상 같은 값을 갖습니다. 인스턴스를 통해 호출하지 않고, 변수로 접근해서 사용할 수 있습니다. 인스턴스 변수 인스턴스가 생성될때마다 생성됩니다. 각기 다른 값을 유지할 수 있습니다. class Example { static int test = 500; public static void main String(args[]) { Example ex1 = new Example(); Example ex2 = new Example(); System.out...
if(!sessionCd.equals("EX")) {...} ▼ if!("EX").equals(sessionCd)) {...} 비교할 땐 되도록 고정된 값을 앞으로. 변수값이 없을 경우 에러 발생.
안녕하세요, 이번 포스팅에선 스프링의 주요 개념인, IoC와 DI에 대해서 알아보도록 하겠습니다. 💡우선, DI란 무엇인지 알아보겠습니다. Dependency Injection. 해석하면 의존성 주입, 의존 주입이라는 뜻이 됩니다. 의존성을 갖는다는 것은 어떤 뜻인지 알아보도록 하겠습니다. class Command { public static void run() { System.out.println("Running"); } } class Robot { public static void basic() { System.out.println("Walking"); } } public class test { public static void main(String args[]) { Robot.basic(); } }..
안녕하세요, 전자정부 프레임워크의 공통 컴포넌트의 DB정보를 변경하는 방법을 알아보겠습니다. 공통 컴포넌트를 생성한 후입니다. Oracle DB 기준입니다. 아래 위치의 파일을 열어봅니다. 파일을 열면 위와 같은 형태의 내용들이 작성되어 있습니다. 수정해야 할 부분은 OsType DbType #oracle 이 세 가지입니다. 저 같은 경우는 초기에 컴포넌트 생성 시 UNIX라고 되어 있었습니다. (템플릿 프로젝트는 또 다릅니다.) DbType은 본인이 사용하시는 DB를 입력하시면 됩니다. #oracle아래의 빨간 박스 안의 내용을 환경에 맞게 수정해주시면 됩니다. 다 맞게 입력했는데 안되시는 경우는 아래 링크의 2번 내용을 확인해보시길 바랍니다. [Oracle] Issue 안녕하세요, 자주 까먹는 에러를..
안녕하세요, 지난 포스팅에서 AOP의 개념에 대해서 알아보았습니다. [SPRING] AOP 개념 안녕하세요, 스프링의 주요 개념인 AOP에 대해서 알아보도록 하겠습니다. " AOP란?? " Aspect Oriented Progrmming. 관점 지향 프로그래밍. 관점? 관점이 의미하는 바는 무엇일까요?? 우선, 사전의 뜻을 찾아보도.. fullth.tistory.com 이번 포스팅에서는 AOP의 용어를 알아보고 예제를 통해 확인해보도록 하겠습니다. (예제는 아직 작성중입니다.) 아직 AOP가 익숙치 않기 때문에, 여러 포스팅을 참고하였습니다. 1. AOP란 무엇인지 다시 복습해봅시다. Aspect Oriented Programming의 약자. 직역하면 관점 지향 프로그래밍 입니다. 위키백과에 정의되어 있..
안녕하세요, Spring Boot에서 Oracle DB를 연결해 보도록 하겠습니다. 우선 저의 환경입니다. Spring Boot :: (v2.2.5.RELEASE) Gradle :: 3.0 Oracle :: 11g application.properties 설정 처음 스프링 부트 프로젝트를 생성 후에 실행 시키면 아래와 같은 오류가 발생합니다. Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 데이터 소스를 구성하지 못했다는 오류입니다. DB에 관련된 의존성을 추가했는데 구성하지 않았기 때문입니다. 아래 내용을 추가해줍니다. spr..
안녕하세요, 스프링의 주요 개념인 AOP에 대해서 알아보도록 하겠습니다. " AOP란?? " Aspect Oriented Progrmming. 관점 지향 프로그래밍. 관점? 관점이 의미하는 바는 무엇일까요?? 우선, 사전의 뜻을 찾아보도록 하겠습니다. 횡단 관심사 (cross-cutting concern)의 분리를 허용함으로써, 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. https://ko.wikipedia.org/wiki/%EA%B4%80%EC%A0%90_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D 관점 지향 프로그래밍 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨팅에서 관점 지향 프로그래..
안녕하세요, SPRING에선 메이븐 등을 이용하여 pom.xml 필요한 dependency를 추가합니다. 그중 오라클 Ojdbc6를 설정하는 법에 대해서 말씀드리겠습니다. com.oracle ojdbc6 12.1.0.2 위와 같은 형식으로만 추가하면 오류가 납니다. 오류 메시지도 친절하지 않고, 자주 설정할 일이 없다 보니 매번 속이 터져서 적어두려 합니다. Maven과 Oracle의 저작권 문제로 인해, 아래와 같이 저장소를 따로 추가해줘야 합니다. oracle http://maven.jahia.org/maven2 pom.xml의 dependencies태그 위에 설정해주면 됩니다.
안녕하세요, 오늘은 실무에서 자주 사용되는 BufferedReader에 대해 알아보겠습니다. 주로 입력 받을 때 사용하는 Scanner에 비해 상대적으로 빠른 속도를 보여줍니다. 버퍼란 무엇일까 버퍼링이라는 말 덕분에 버퍼라는 단어는 많이 들어보셨을 거라 생각됩니다. 컴퓨팅에서의 '버퍼'는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안, 일시적으로 그 데이터를 보관하는 메모리의 영역을 의미합니다. 다른 말로는 '큐'라고도 표현합니다. https://ko.wikipedia.org/wiki/%EB%B2%84%ED%8D%BC_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 버퍼 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨..
안녕하세요, JSP에서 HttpSession Interface를 이용하여 간단한 로그인을 구현해보도록 하겠습니다. " login.jsp " Login login버튼을 누르면 auth.jsp에 전송되도록 하겠습니다. (각 input 태그 별 name을 지정해주셔야 합니다. ex. userID, userPW, id, pw ) 참고로 필드 셋 태그를 이용하시면 저렇게 예쁘게 감싸실 수 있습니다. " auth.jsp " login.jsp에서 현재 파일로 데이터를 전송했습니다. userID에 input 태그에서 아이디를 전송한 name속성과 매칭 시켜 userID를 저장합니다. 저는 간단하게 조건문으로 그냥 어느 값이던 들어왔으면(null이 아니면) 세션 값을 저장했습니다. 실제로는 DB의 회원 정보와 비밀번호가..
안녕하세요, 오늘은 egoing님의 강의를 참고하여, 배열과 리스트의 특징을 동시에 갖는, ArrayList의 사용법에 대해서 알아보겠습니다. Collections Farmework (컬렉션즈 프레임워크) ArrayList를 말씀드리기 앞서, 컬렉션즈 프레임 워크에 대해 살펴보겠습니다. 컬렉션즈 프레임워크는 컬렉션(Collection)과 맵(Map)으로 나눠집니다. 컬렉션은 다시 Set, List, Queue로 나눠집니다. 눈치채셨듯이, 자료구조를 공부할 때 많이 보셨던 용어들입니다. 컬렉션은 자바에서 자료구조를 구현한 클래스들을 칭하는 용어입니다. 저희가 알아볼 ArrayList는 List에 속합니다. (정확하게는 ArraList등의 클래스에 의해 List인터페이스가 구현되는 것입니다.) 컬렉션즈 프레..