전체 글

· Spring
Spring의 DI 컨테이너 BeanFactory 만들어보기BeanFactory는 스프링이 빈을 생성하고 의존관계를 설정하는 기능을 담당하는 가장 기본적인IOC 컨테이너를 말한다. 이 BeanFacotry를 구현한 많은 컨테이너를 제공하고 있고개발자는 원하는 컨테이너를 선택해 빈을 관리하면 된다.그 중 많이 선택하는 방식이 @Annotation기반에   @Controller, @Service, @Inject 등을 붙인 방식이다. 여기서는 Reflections를 이용해  @Controller, @Service, @Inject 가 붙은 클래스들을 DI 방식을 통해 빈 등록하는 걸  구현해본다.  DI는 생성자 DI만 생각한다.스프링에서처럼 다양한 기능을 제공하는 것이 아닌 단순히 빈을 생성하는 기능만 구현한..
· 기타
이전 글https://brilliantdevelop.tistory.com/206 에서 Local에서 간단한 git 사용을 해봤다.명령어를 통해서 git을 관리할 수도 있지만,git을 좀 더 쉽게 화면으로 관리할 수 있게 해주는 GUI tool이 존재한다.대표적으로는 source tree, git gui 등이 있다.여기서는 Git Kraken을 통해 좀 더 쉽게 Git을 관리해보려고 한다.또  Local뿐만 아니라 원격에서도 관리하기 위해서 Github를 사용할 것이다.    깃허브와 깃 크라켄 연동하기git 초기화하기다음과 같이 폴더에 작업내용을 만들고 git init으로 초기화한다(git kraken은 git init이 되어있지않으면 연동할 수 없다.)  git kraken과 Local Reposito..
· 기타
서론https://inpa.tistory.com/category/GIT같은 블로그를 보면 Git에 대한 자세한 내용을 익힐 수 있다.git의 개념이해와 git 명령어에 대한 정확한 이해와 사용법도 잘 정리되어있다.그래서 이 글은 git에 대한 설명을 하기보다는처음 git을 사용하는 사람들한테 필요한 명령어소개와 merge 충돌상황에 대해 간단한 예제를 보여준다.   Git 작동구조   처음쓰는 Git 기본 명령어  git init :- 현재 폴더에서 git을 사용하겠다는 명령어. Git이 현재 폴더를 working directory로 인식.  현재 폴더에 .git 폴더가 생성된다. git status : - 현재 working directory의 파일 상태를 보여줍니다 git log  - 지금까지의 co..
· Spring
HttpEntityEntity의 사전적 의미는 개체로서 하나 이상의 속성(정보)로 구성됩니다.HttpEntity는 Http 통신의 속성들을 가지고 있는 개체입니다.이 때 속성이라하면 headers, body입니다. 즉 HttpEntity는  HTTP 요청, 응답의  속성들을 가지고 있는 개체입니다.실제 요청(HttpRequest) , 응답(HttpResponse)객체가 아니라그에 관한 속성들을 나타내는( represent) 클래스입니다.  다음은 예제코드에 사용될 Dto입니다.@Datapublic class StudentDto { private Long id; private String name; private int age;}  ResponseEntity HttpEntity를 상속받은 ..
· Spring
@RequestParam @RequestParam은 1개의 HTTP 요청 파라미터를 받기 위해서 사용한다. @RequestParam의 required 속성은 기본값이 true이다. 요청 파라미터의 값이 없다면, 에러가 발생한다. 요청 파라미터가 필수가 아닌 경우에는 required 속성을 false로 한다. 이때는 파라미터의 값이 없다면 에러가 발생하지 않고 null값이 들어간다. int, long 등 null값이 들어갈 수 없는 변수일 경우도 에러가 난다. @RequestMapping("/studentView") @ResponseBody public String studentView(@RequestParam(required = true) Long id){ //요청에 파라미터가 없으면 에러가 난다. re..
· 기타
1) dependencies 추가 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-devtools' } 2) Run/Debug Configurations 에서 설정 편집 2-1) 상단에 Application 에서 Edit Configurations 를 클릭하여 “Run/Debug Configurations” 설정 창을 띄웁니다. 2-2) 좌측에서 Spring Boot - Application 선택 2-3) Build and run 항목에서 Modify options 클릭하여 아래 옵션들을 추가 2-4) On ‘Update’ action: Update classed and resources 추가 2-5) On ..
· 기타
HTTP 통신 HTTP 통신은 다음과 같은 특징을 가진다. 대부분의 파일 형식 전송 가능 클라이언트 - 서버 구조 Stateless Connectionless 대부분의 파일 형식 전송 가능 HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가지지만, 오늘날에는 거의 모든 파일 형식을 HTTP 통신을 이용해 전송 가능하다. 특히 우리가 자주 사용하는 JSON, TEXT, IMAGE 파일은 물론 음성 파일 등도 HTTP를 통해 전송이 가능해졌다. 클라이언트 - 서버 구조 클라이언트 - 서버 구조 클라이언트의 요청이 있을 때 서버가 응답하는 단방향 통신이다. HTTP는 클라이언트에서 서버에 요청을 하는 단방향 통신이다. 서버는 클라이언트에 요청..
NumberFormatException mybatis에서 if,when 태그에서 비교값을 쓸 때 어떤 값이 문자열과 같은지 비교할 때 NumberFormatException이 발생했다. AND bo_title LIKE '%'||#{searchWord}||'%' AND bo_title LIKE '%'||#{searchWord}||'%' searchType은 String이다. 첫번째 경우 mybatis가 String searchType 과 String "T"값을 비교한다. 두번째 경우 mybatis가 String searchType 과 char 'T' 값을 비교한다. 자바는 char를 비교하려 할 때 'T'를 숫자로 바꿔서 비교한다. 'T'는 ASC코드표에서 116이다. 그리고 비교를 위해 String도 숫..
this의 잘못된 사용 버튼클릭이벤트 함수내에서 $(this), this는 버튼태그 자체를 가리킨다. 근데 함수내에서 ajax를 쓸 경우 success함수내에서(ajax성공 후) $(this),this는 버튼태그가 아니라 success함수 자체를 가리킨다. $("button").on("click", function(e){ e.preventDefault(); //$(this)는 내가 클릭한 버튼 console.log(this); // 버튼태그가 찍힌다. $.ajax({ url : "url" ,success: function(){ console.log(this); // success함수가 나온다. //$(this).closeset("div"); 등은 에러가 난다. // ajax 성공함수에서 내가 선택한 버튼..
· Spring
Person 클래스@Getter@Setter@ToStringpublic class Person { private String name; private int age;}    태그에서  데이터를 전달해보자.    @RequestParam,@ModelAttribute,@RequestBody 차이스프링에서 객체-파라미터 매핑은 요청상황이나 응답상황 모두 MessageConverter가 담당한다.상황에 따라 스프링이 적절한 MessageConverter의  구현체를 통해 객체-파라미터 매핑을 한다.요청에서 @RequestParam, @ModelAttribute가 붙은면 FormHttpMessageConverter가,@RequestBody가 붙으면 MappingJacksonHttpMessageCon..
한창희
기발개발