| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Vue.js
- e-HR
- react
- 대문자
- 웹 개발 면접 질문
- 첫 리액트
- MySQL
- 백준알고리즘
- 뷰 리액트
- URL입력
- 뷰
- SBS 개발
- 쟈스
- 경력직
- IT시스템개발
- SBS 본사
- 면접
- 오라클
- 리액트
- 뷰 리액트 비교
- 첫 React
- 알고리즘
- 사내시스템
- 프로젝트 후기
- 백준
- 간단 프로젝트
- CompositionAPI
- 자바
- 1차면접
- 트리
- Today
- Total
목록분류 전체보기 (88)
리주의 프로그래밍 공부
RESTful한 코드를 위해 상품 수정 부분을 수정하면서 수많은 에러를 만났다. >> 결론은 파일 전송은 PUT으로 사용하지 못한다는 것이다. 여러 검색을 통해, 웹브라우저가 PUT(과 DELETE)을 인식하지 못하여, httpMethodFilter 설정을 통해 put과 delete를 처리해주는건 일찍 알게 됐다. 이 설정을 해둔 뒤에, putmapping으로 등록된 상품 수정을 하기 위한 코드 수정을 계속 해왔다. 하지만, 이상하게도 프론트엔드에서 보내는 form Data에는 값이 잘 들어가 있는데, 백엔드로 오면 값이 다 사라져 있었다. 이걸 해결하고자 여러 코드들을 참고하여 수정해봤지만, 돌아오는건 에러 또는 비어있는 객체뿐... 오늘에서야 다른 분이 아래 참고 사이트를 보여주셔서, 여태까지 한 일..
distinct >> 중복된 데이터 제거후 출력 Select ~ 로 데이터를 조회했을 때, 조건에 따라 중복된 레코드가 나올 경우가 존재한다. 이 때에는 Select distinct ~ 를 적으면 중복된 레코드가 제거되어 출력된다. 주의 : distinct는 함수가 아닌 키워드 비교) Group by : distinct + 정렬 기능이라 생각하면 쉽다.
Entity와 DTO의 구분 Entity : DB와 1대1 매칭 DTO : View를 위함 고민 그렇다면 Entity는 dao에서만 사용해야하는가 Controller와 Service까지는 DTO를 쓰고, dao에서는 Entity를 DTO로 변환시켜줘야하나 Mybatis에서는 큰 의미 없고, JPA에서는 기능때문에 구분해서 사용하는게 중요하다고 한다. 결론 Mybatis를 사용하는 지금은 적절히 사용하자. 실시간 검색어 기능 구현 ajax를 사용하여 비동기적으로 검색가능하게 구현했다. 문제 입력을 빨리했을 경우에는 이전 검색목록이 사라지지 않고, 누적된다. Async를 사용해보면 어떨까란 생각이 들었다.
네이버 도서 검색 API를 사용했습니다. developers.naver.com/docs/search/book/ // 도서명과 페이지를 넘겨 받고, 한글이 깨지지 않기 위함 @GetMapping(value="/writing/search/{name}/{page}", produces = "text/plain; charset=UTF-8") @ResponseBody// xml 출력을 위함 public String search(@PathVariable String name, @PathVariable int page) { String clientID = "{어플리케이션 등록 후 확인}"; String clientSecret = "{어플리케이션 등록 후 확인}"; try { // 검색어를 주소에 넣기 위한 인코딩 St..
RESTful하게 코드를 수정하려다보니, 하루종일 에러만 보는것 같다. >> PUT Method를 사용하려다 onClick="submit()"이라는 생각치 못한 복병을 만나 오늘 아침을 날렸다. 위와 같은 방식으로 스크립트의 함수명을 submit으로 하게되면 태그로 인해 스크립트의 submit이 아닌, form의 submit으로 실행된다. 따라서 함수명을 달리해주거나, 버튼을 태그 밖으로 위치시켜야한다. 으로 날리는게 아닌, ajax를 사용해 값을 전달하고자 했다. >> 하지만 상품 수정의 경우에는 파일까지 같이 들어가기에, serialize를 사용하는 대신, 하나씩 append를 해줘야했다. 하지만 결과적으로는 에러가 나서 다시 내일 수정해야한다.
RESTful 을 적용하여 코드를 수정중이다. >> @PathVariable를 사용해서 url의 값을 가져올 수 있다. 유저의 정보를 가져올 때에 /user/{userID} 이 나을지, /user 해서 스프링시큐리티로 저장된 정보를 불러올지, 뭐가 나은지 모르겠다. put, delete는 form:form 태그를 사용해서 hidden type으로 보내줘야했다. redirect 시에 뒤에 따라오는 parameter를 숨기기위해, redirectView를 선언해서 setExposeModelAttributes를 false로 설정해줬다. 기존 코드를 바꾸려하니 힘든게 아니다. 내가 짠 코드지만, 확실히 규칙이 없어서 읽기도 복잡했다. 수정과 삭제 부분을 위해 다른 사람의 코드를 더 찾아봐야겠다. >> PUT 과..
인증 이메일을 좀 더 빨리 보내고, 이메일을 보냈다는 팝업을 빨리 띄우게 하기위해서 async를 사용했다. >> 스프링을 사용중이라 @Async를 쓰면되지만, 단순히 이것만 쓰면 안되고, taskExecutor를 @Bean으로 만들어줘야했다. 아직도 async를 완벽히 이해하지는 못해서 계속 찾아보면서 공부해야겠다. 회원가입 페이지의 css부분이 마음에 들지 않는다. >> 최근 프론트엔드 개발자들과 협업하고 있는 프로젝트를 통해서 그나마 css를 조금은 볼줄 알게되었지만, 아직 이부분까지 수정할정도로 시간이 여유롭지 못하다. 아쉬운 부분이다. 협업을 시작하면서 느낀거지만, 백엔드와 프론트엔드의 명확한 구분선이 있을까?라는 생각이 들기 시작했다. >> 혼자서 쇼핑몰 홈페이지를 구현해보면서 자바스크립트에 대..
Spring Security 로 회원가입/로그인/로그아웃을 구현했다면, 권한에 따라 정보를 보여줄지 말지 쉽게 설정할 수 있다. jsp에서 다음 태그를 추가한다. 권한에 따라 숨기고 싶은 부분을 다음 코드로 감싸준다. // 인증된 사용자만 // 인증된 사용자 중에 ROLE_USER 권한을 가진 사용자만 //ROLE_USER 권한 //가진 사람에게만 //보여질 내용 //ROLE_ADMIN 권한 //가진 사람에게만 //보여질 내용