본문 바로가기
반응형

분류 전체보기337

[Eclipse] war 파일 lib 폴더가 없을 경우 war 파일 내부에 /WEB-INF/lib 안에 일부 jar 파일만 필요한 경우였다. export 했던 war 파일을 압축 해제만 하면 되는데 lib 폴더 자체가 없었다. 프로젝트 우클릭 - properties - deployment assembly add 해서 연결된 프로젝트나 라이브러리 추가 위 방법이 안되면 아래 방법으로도 시도해볼 것 프로젝트 우클릭 - properties - java build path - order and export 체크하고 apply and close 2021. 1. 15.
역할, 책임, 협력 관점으로 객체지향 살펴보기 객체 : 상태, 행동, 식별자를 지닌 실체 - 상태: 특정 시점에 객체가 가진 정보의 집합. 객체의 구조적 특징을 표현. - 행동: 외부의 요청에 응답하기 위해 동작하고 반응하는 활동. - 코딩을 할 때 상태가 아닌 '행동'에 초점을 맞추는 것이 좋다. 행동이 상태를 결정한다. - 값은 불변 상태이지만 객체는 가변 상태이다. 행동을 통해 상태를 변경한다. ( ex: 이상한 나라의 앨리스에서 앨리스는 '케이크를 먹음'으로서 '키'라는 상태가 작아진다. ) - 자율적인 객체란, 상태와 행위를 함께 지니며 스스로 자기 자신을 책임지는 객체다. 또한 객체에게 할당되는 책임이 자율적이어야 한다. 지나치게 추상적이거나 지나치게 구체적인 책임은 문제가 된다. - 책임이 자율적일 수록 적절하게 추상화되며, 응집도가 높.. 2021. 1. 15.
[Java] 시간 구하는 방법 비교 Java에서 현재 시간을 구하는 방법은 3가지가 있다. System.currentTimeMillis() new Date() Calendar.getInstance().getTime() System.currentTimeMillis()와 new Date()의 속도 자체는 크게 다르지 않다. 다만 Calendar.getInstance().getTime()의 경우에는 객체 생성부터 윤달 같은 여러 상황을 고려해 계산하기 때문에 상대적으로 느리고 복잡하다. 또한, 10월의 숫자가 '9'이기 때문에 혼란을 야기한다. System.currentTimeMillis()는 객체를 만들지 않고 new Date()는 GC를 이용한다는 점에서 분명 System.currentTimeMillis()가 더 우수한 성능을 보인다. (G.. 2021. 1. 14.
eclipse 단축키 기능 단축키 선택 라인 위/아래로 복사 ctrl+alt+↑, ↓ 선택 라인 위/아래로 이동 alt+↑, ↓ 키워드가 포함된 파일들 찾기 ctrl+H 파일명으로 파일 찾기 ctrl+shift+R jar 파일 안에 존재하는 class 파일 찾기 ctrl+shift+T 현재 열려있는 파일에서 키워드 찾기 ctrl+F 함수를 호출하는 함수 찾기 ctrl+shift+G 선택 라인 삭제 ctrl+D getter/setter 자동 생성 alt+shift+S -> R 현재 위치 ~ 다음 줄 이전까지 내용 삭제 ctrl+shift+Delete 줄 맨 앞으로 이동 Home 줄 맨 뒤로 이동 End 선택 라인 주석 추가/제거 ctrl+shift+C /* */ 추가 ctrl+shift+/ /* */ 제거 ctrl+shift+.. 2021. 1. 13.
[Spring] JPA로 database 다루기 JPA를 사용하는 이유? 우리 회사는 현재 MyBatis + SQL Mapper를 통해 db를 다룬다. SQL을 다루는 시간이 꽤 길고 단순 반복 작업을 반복하게 되는데 '객체지향'과는 약간 거리가 있는 느낌이다. JPA는 이런 SQL에 종속적인 개발을 피하기 위해 나온 것으로, Springboot + JPA 조합을 사용하는 기업들이 늘고 있다. JPA란? : 인터페이스로서의 자바 표준 명세서. - 인터페이스인 JPA 사용을 위해 구현체가 필요한데 Hibernate, Eclipse Link 등이 있으나 Spring에서는 이를 직접 다루진 않는다. 구현체들을 좀 더 쉽게 사용하고자 추상화시킨 Spring Data JPA를 이용하는데, JPA 2021. 1. 11.
짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. str re.. 2021. 1. 11.
튜플 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음과 같이 집합 기호 '{', '}'를 이용해 .. 2021. 1. 11.
[Spring] 테스트 코드 작성하기 Application 생성 먼저 패키지랑 가장 기본이 될 java 파일 하나를 만들자. com.spaws.book.springboot 패키지를 만들고 그 안에 Application.java라는 파일을 생성했다. 보통 패키지명은 웹 사이트 주소의 역순으로 정한다. (ex: admin.spaws.com -> com.spaws.admin) spaws는 책이 spring boot와 aws 어쩌구라서 지은거고 이름이 달라도 상관 없다. Application.java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }.. 2021. 1. 8.
[Spring] Gradle Project를 Spring boot로 변환하기 Gradle Project를 생성하고 Spring boot로 전환하려고 한다 애초에 이니셜라이저로 프로젝트를 만들었다면 훨씬 간단하고 편리하지만, 이후에 dependencies 추가하는 방법에 대해 알아야하므로 수동으로 전환한다. ( 이니셜라이저로 프로젝트 만드는 법: blog.naver.com/white_la/222134955580 ) 코드 프로젝트 내 build.gradle 파일이 있다. (주석 제거한 상태) apply plugin: 'java-library' repositories { jcenter() } dependencies { api 'org.apache.commons:commons-math3:3.6.1' implementation 'com.google.guava:guava:23.0' test.. 2021. 1. 8.
반응형