일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 타임존설정
- 오라클오류
- jdbc연결안됨
- IT기본지식
- 크리스탈리포트이미지삽입
- lombok
- 크리스탈레포트누끼
- 롬복
- 크리스탈레포트그림
- api문서만들기
- ResponseBody
- 타임존
- Ajax
- 서버기본
- openaddressing
- 이미지누끼
- 스토리지기본
- git
- 자료구조
- JDBC
- RequestBody
- 크리스탈레포트이미지
- 게시판댓글
- 크리스탈리포트이미지
- import안될때
- 서블릿용어
- 추상클래스
- fcmwebpush
- EC@
- @RunWith
- Today
- Total
목록분류 전체보기 (94)
엠마의 개발공부일지
a java runtime environment (jre) or java development kit (jdk) must be available in order.. [원인] 해당에러는 컴퓨터에 설치된 자바가상머신(JVM)과 이클립스가 접근하려는 JVM과 달라서 서로를 인식하지 못하기때문. [해결방법] 1. 이클립스아이콘 마우스 오른쪽 버튼클릭 > 속성 - 아래와같이 파란색부분(eclipse)까지 복사해서 아무 폴더주소창에 붙여넣기해서 들어간다. 2. eclipse.ini 파일에(아래의 노란부분) 3. vm부분에 위의 eclipse.ini파일 경로를 다시 넣어준다. [경로써주는 위치] openfile - vmargs사이에 쓴다! [경로] C:\Program Files\Java\jdk-11.0.9\bin 4..
서비스/리포지토리/도메인을 작성하고, 스프링에서 DI를 이용하여 초기세팅을 할때 SOLID의 DIP(구현체가아닌 인터페이스에 의존)가 지켜지도록하기위해 생성자로 구현체를 넣어주었다. 이 코드만으로도 너무 깔끔하지만, 한단계 더 편하고 깔끔하게 코드를 정리할 수 있다. 생성자 주입하려는 클래스에 @RequiredArgsConstructor를 추가하면 윗부분에 Lombok라이브러리가 추가된다. 이 상태에서는 @RequiredArgsConstructor부분에 빨간줄이 그어지는데, 이는 밑에 @Autowired가 붙은 생성자가 있기때문이다(중복) @RequiredArgsConstructor는 final이 붙은 필드들의 생성자를 자동으로 만들어주는기능이다. 그래서 생성자와 충돌이되기때문에 빨간줄이 뜬다 아래와 같..
[싱글톤의 필요성] : 웹개발의 경우 다수의 요청을 받아서 처리해야한다. 요청마다 새 객체를 만든다면 낭비가 많은 코드일것이다. 그래서 1개의 객체를 만들어 공유해서 쓰는 싱글톤방식을 써야한다. [싱글톤 패턴] static영역에 객체 1개를 생성 public영역에 readonly메서드를 사용하여 공유하여 사용 private영역에 생성자를 사용하여 새로 객체생성못하게! [싱글톤 컨테이너] : spring container는 객체 인스턴스를 싱글톤으로 관리. : spring container를 사용하므로써 고객요청이 새 객체를 만드는게아닌, 이미만들어진 객체를 활용하게 함 (스프링컨테이너에서 만들어진 객체를 sout해보면 같은객체가 만들어진것을 알 수 있음) [싱글톤 사용방법] 스프링설정정보에 @config..
Java JUnit 테스트에서 assertThat구문은 어떤조건이 참인지 확인하는 구문이다 [사용예시] assertThat구문에서 많이 사용하는 메서드인 isEqualTo 와 isSameTo를 비교해보겠다. [isSameTo] 일반 Primitive type의 변수는 값을 저장한다 a에는 5라는 값이 저장된다 int a = 5; 반면 일반타입의 변수는 값의 주소를 저장한다. car에는 새로만든 Car객체의 주소값이 저장되어있다. Car car = new Car(); isSameTo는 주소값을 비교하는 메서드이다. String a = "apple"; String b = a; 이 경우 a에는 apple문자값의 주소가 저장되어있고, b에는 a의 주소값이 똑같이 저장된다. 이경우 아래와 같이 표현된다 asser..
*지네릭스란? : 다양한 타입의 객체를 다루는 메서드나 컬렉션 클래스에, 컴파일 시의 타입체크를 해주는 기능 : 클래스 or 인터페이스에 어떤타입의 변수를 넣고싶은가? 를 먼저 생각해봐야한다. : 타입을 파라미터로 가지는 클래스 or 인터페이스, 컴파일시 구체적인 타입이 결정됨. public class 클래스명 {....} public class 인터페이스명 {....} *지네릭스의 필요성 장점 : 타입안정성 제공, 타입체크와 형변환 생략이 가능하므로 코드가 간결해진다 Car 클래스 Main클래스 - car클래스의 멤버변수 object는 타입이 Object형(최상위 클래스, 그래서 모든타입을 다 저장가능) - 그래서 main클래스에 String타입도 object타입도 모두 담을 수 있지만, 꺼낼때 형변환..
실제 현업에서의 개발자들은 서비스에 적용될 코드보다 테스트코드를 작성하고 테스트하는데 많은 시간을 쓴다고 한다. 정상동작하는 코드부터, 오류가 날 코드까지 미리 다 테스트를 해보는데 그 코드를 JUnit으로 돌려본다고하니 엄청 중요한것같다. 그래서 일반 JAVA코드랑 JUnit코드를 비교해 보려고한다. 1. 일반Java로 작성한 Test : 가입(join)한 정보와, 저장소에 저장된 정보를 가져와서 동일한지 확인해보는 test [결과] : 내가직접 println해서 어떤값이 들어왔는지 text를 확인해 봐야한다(test라고 하기엔 무리가있는 느낌이다) 코드가 간단하니 text확인이 간단하지만, 코드가 복잡해진다면 text를 일일이 확인하기엔 어렵다. 2. JUnit Test사용 : Test에서는 1)주어..
* 데이터 흐름 * 1. 정적컨텐츠 : 주소창에 열고자하는 html파일명을 입력하면, 해당 컨트롤러(Getmapping을 받을 컨트롤러)부터 찾고 없으면 resources에서 html파일을 찾아 출력 2. MVC와 템플릿 엔진 : Getmapping으로 연결되는 Controller가 있다면 톰캣서버는 그 컨트롤러로 연결하고, model에 있는 데이터를 ViewResolver에 옮겨서 화면에 출력 3. API : @ResponseBody를 사용 @ResponseBody의 특징 1. Body는 html과 관련된게 아닌 http의 body부분에 출력하라는 뜻 2. viewResolver대신 HttpMessageConverter가 동작 * 반환타입이 기본타입일 경우 =>StringHttpMessageConver..
cmd창 띄우기 (난 shift + 마우스R버튼 = PowerShell사용) 실행하려는 프로젝트로 접근 후 빌드! gradle.bat build (윈도우는 이렇게) ./gradlew build (mac은 이렇게) 3. 빌드하고나면 빌드파일이 생김. 그안에 libs로 들어간다 4. dir로 현재 파일 조회해보면 약 18메가정도하는 jar파일이 생성된것을 볼 수 있다 이로써 빌드성공! 나중에 배포할때 저 파일명 부분을 복사해서 서버에 넣어주면 된다. > 인텔리제이로 빌드하는것도 좋지만, 난 개발자가 될꺼니까 cmd창으로 빌드하는 습관도 들여놔야겠다 > 다음포스팅은 자주쓰는 인텔리제이 단축키랑, cmd명령어를 정리해야겠다.