일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Elasticsearch
- 애자일
- database
- ES
- framework
- API
- 개발자
- 읽기쉬운코드
- Java
- 자바
- 엘라스틱서치
- cleancode
- 프레임워크
- 그리디
- 클린코드
- 백준
- Baekjoon
- JPA
- 애자일기법
- 코드
- 알고리즘
- 스프링
- 코딩
- Spring
- 데이터베이스
- 코딩테스트
- 개발
- 그리디알고리즘
- 애자일프로그래밍
- spring boot
- Today
- Total
목록전체 글 (173)
튼튼발자 개발 성장기🏋️
spring을 사용하려면 spring docs는 필수로 보아야하고, 어떤 라이브러리들이 있는지, 어떻게 가져다 사용하는지 정도는 기본으로 알고 있어야한다. 그래서 spring 관련 홈페이지를 끄적여본다. 1. spring docs : https://docs.spring.io/spring/docs/ 사용하는 버전에 맞는 docs 참고할 것. 2. MyBatis : https://mybatis.org/mybatis-3/ko/ 3. database reference : https://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm 4. jQuery docs : https://api.jquery.com/ 5. W3C : https://www.w3schools.c..
나는 실제로 서버 개발자로서 한 직장에 다니고있다. 여러 서버를 만져보았지만 validation check(유효성 검사)를 하지 않는 서버는 단 하나도 없었다. client가 요청한 데이터를 server는 필히 유효성을 체크해야 하기 때문이다. 직장에서 가장 많이 들었던 이야기 중 하나는 이것이다. "서버는 그 어떠한 것도 믿으면 안된다." 우린 서버에 요청이 들어오면 항상 하는 일 중 하나가 바로 유효성 검사라는 것이다. spring에서는 Controller에서 유효성 검사를 하게되는데, BindingResult라는 녀석을 제공해준다. 코드를 보자. @RequestMapping("/") public ModelAndView home(Member member, BindingResult bindingResu..
우리는 때때로 요청한 URL과 다른 결과가 나올 때가 종종있다. 접속할 URL을 치고 엔터를 땅! 치는 순간 URL이 바뀌면서 다른 페이지가 뜰 수 있게 설정할 수 있다는 것이다. 이것이 바로 리다이렉트(redirect) 기능이다. 특히 HTTP 통신에서는 서버의 응답으로 302 status가 발생했을 때, Location header 값으로 리다이렉트를 많이 사용하는데 지금 다룰 리데이렉트는 조금 다르다. 다음 코드를 보자. @RequestMapping("/") public String home(HttpServletRequest request) { String id = request.getParameter("id"); if(null != id && id.equals("abc123")) { return ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/xn08m/btqDXtDj4gY/6iI0DVKtPcauFsDiK4EBzk/img.png)
HTTP method 중에 가장 기본이 되는 것은 GET과 POST이다. HTTP method에 대해서는 HTTP RFC를 참고하자. 그 중에 GET과 POST일 때, Client가 전달한 데이터를 가지고 오는 방법을 알아보자. - GET method HttpServletRequest는 java EE API를 참고하자. 간단하게 이야기 하면 client가 요청한 데이터 뿐만 아니라 header 정보도 함께 알 수 있다. GET method 이므로 http://localhost:8080/dotori/?id=abc123&userName=dotori 로 요청하면 query의 id값와 userName이 출력되는 것을 볼 수 있다. 다른 방법으로, 어노테이션을 사용하는 방법이 있다. 동일한 동작을 하지만 어노테이..
Client의 요청이 들어오게되면 Controller에서 가장 먼저 로직이 실행되게 된다. 컨트롤러 작업이 마췬 뒤, 컨트롤러의 return된 view 페이지로 데이터가 전달됩니다. 기본 생성되는 컨트롤러를 살펴보자. @Controller public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); /** * Simply selects the home view to render by returning its name. */ @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Loc..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cypW7B/btqDRx1HIr3/YBm15uzXHtttgxk3BL9tK1/img.png)
MVC 기반의 spring project를 생성하면 기본적으로 다음과 같은 디렉토리 구조를 볼 수 있다. 가장 먼저 servlet-context.xml에 대해 알아보자. 대체적으로 spring container 설정을하는 파일이다. 어노테이션 사용 가능하도록하는 태그 spring resource path와 범위 설정 때때로 image 혹은 css, js 등과 같은 파일들이 모여있는 resource들을 이 태그를 이용해 적용한다. view역할을 할 파일들의 위치 및 범위 설정 태그를 사용하여 path와 파일명을 지정할 수 있다. controller를 찾을 클래스의 기본 패키지 설정 다음은 root-context.xml 파일에 대해 알아보자. 기본 설정은 아무것도 되어 있지 않는다. 왜냐하면 초기에는 사용하..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpdZxK/btqDTjNUXlu/VMcgSR2YdTk9EE3MVNKFmk/img.png)
문제 기출 : [https://www.acmicpc.net/problem/1911] 풀이 방법 [그리디알고리즘] 접근 생각하는 것을 코딩하는 것은 정말 쉬운일이 아닌 것 같다..하핳 1. index 값에 편하고 빠르게 접근하기 위해 객체 정렬을 진행한다. 2. 덮을 수 있는 널빤지의 index 기반 범위를 구하고 해당 범위에 널빤지길이를 더해 나아가면서 널빤지를 카운팅하기만 하면 된다. 문제 풀이 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { StringTokenizer tokens = new Stri..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Fhnym/btqDSjtXwUS/XN9K0lXInuavQrW8jsXOvK/img.png)
java를 공부했다면 OOP(Object Oriented Programming : 객체지향 프로그래밍)에 대해서 공부했을 것이다. AOP는 Aspect Oriented Programming으로 직역하면 관점지향 프로그램으로써 어떤 프로세스에서 어느 시점을 바라보고 있느냐에 따라 다르게 프로그래밍이 되는 것이다. 어렵다. AOP가 나온 계기를 살펴보자. 우리는 개발하다보면 항상 공통적인 기능이 많이 나온다. 이런 기능을 하나로 묶기위해 상속을 사용한다. 하지만 다중상속이 불가능하고 코어기능과 공통기능이 섞여있는 등 효율성이 떨어질 수 있다. 이러한 문제점들을 보완하여 나온 것이 AOP이다. 코어 기능과 공통 기능을 완벽하게 불리시켜놓고 코어 기능에서 공통기능이 필요할 때마다 가져다 사용하는 방식이다. sp..