본문 바로가기

전체 글

(69)
[210805] 진행현황 . 현재 이미지 첨부 task 구현을 완료한 상태다. 블로그에 글을 정리한 뒤에 태그 기능 구현을 시작하려 했으나, 사정이 있어서 프로젝트 일정을 또 미뤘다. 토익 성적이 만료된 걸 깨달아서 급하게 시험을 치기도 했고, 다른 친구와 또 다른 프로젝트를 시작하게 되었다. 안드로이드 프로젝트인데 AWS와 노드를 사용한다. 어제 express에 대해 처음으로 공부했는데, HTTP 메소드를 굉장히 직관적으로 사용할 수 있길래 감탄했다. 공부를 한 건 좋지만... 기존에 진행하던 프로젝트를 잠시 쉬느라 잔디밭이 끊긴 게 또 마음 아프다. 앞으로 할 일은 아래와 같다. ① 다중 이미지 구현 과정 블로그에 정리: 내가 구현하고 싶은 부분을 모두 구현하는 게 힘들었다. 인터넷에 내가 원하는 기능을 하나부터 열까지 모두..
[210726] aws ec2, amplify 개념 정리 AWS란? 클라우드 컴퓨팅 서비스를 제공하는 플랫폼 클라우드 컴퓨팅이란? 사용자가 직접 관리할 필요 없이, 데이터 스토리지나 컴퓨터 시스템 리소스를 필요 시 바로 제공(on-demand) 하는 것을 말한다. (웹 호스팅 / 서버 호스팅 / 클라우드 차이점 : https://library.gabia.com/contents/infrahosting/1311/ ) 클라우드 장점 기술적 환경 세팅이나 데이터 분석을 빠르게 할 수 있다. 필요한 만큼 리소스를 유동적으로 확장하거나 축소할 수 있다. ↑로 인해 그만큼의 비용이 절감된다. 기존 서버는 사용자가 많든 적든 똑같은 유지비를 내야 했는데, 클라우드의 경우 사용자가 적다면 그만큼 적은 비용을 낼 수 있다. 빠른 배포가 가능하다. AWS 특징 클라우드 서비스 시..
[210713] 프로젝트 기능을 구현하고 있다. 내가 진행한 프로젝트를 보여주는 기능이다. 게시판에 기본적으로 필요한 CRUD 기능은 문제 없이 추가했다. 남은 기능은 다음 세 가지이다. 이미지 : 글을 작성할 때 프로젝트에 사용된 이미지를 첨부하고, 사용자가 글을 읽을 때 이미지를 확인할 수 있다. 이때 이미지는 다중으로 첨부될 수 있어야 한다. 태그 : 프로젝트에 태그를 붙여서 프로젝트에 사용된 기술이나 특징을 간단하게 분류해서 볼 수 있다. 검색 : 제목, 내용에 들어간 키워드를 사용해서 프로젝트를 검색할 수 있다. 지금은 이미지 구현에서 막혀있다. 하나의 이미지를 업로드하는 건 성공했으나, 이미지를 읽어오는 게 되지 않는다. 페이지에 넘겨주는 url이 일치하지 않는 것 같다. 절대 경로를 사용한다면 바로 해결되겠..
[210703] . 7월이 되었다. 프로젝트를 생각보다 오래 끌고 있다. 내가 시간을 투자하지 않아서 그런 것 같기도 하고, 너무 완벽하게 하려고 해서 그런 것 같기도 하다. 그런 것 치곤 퀄리티가 완벽한 것도 아니지만... 하루에 최소 2시간은 프로젝트 진행에 투자하고 있다. 요 며칠은 개인적인 사정으로 진행하지 못했다. 그렇게 며칠을 프로젝트에서 멀어지고 나니, 중간 정리를 해야겠다는 생각이 들었다. 현재 업데이트 게시판을 구현하는 것까지 마쳤다. 테스트 코드를 작성하는 방법은 익혔으나, 메소드를 구현할 때마다 테스트를 작성하는 버릇이 안 되어있다. 차차 익혀가고 싶다. 여전히 스프링은 잘 사용하지 못하고 있다는 생각이 든다. 이번 단계를 마치면 스프링 강의를 다시 들어보고 싶다고 생각하지만, 또 너무 시간이 지체될..
[210624] mysql server timezone 시차 문제 해결 . 데이터베이스에 저장된 시간과 java에서 데이터를 읽어온 결과의 시간이 다른 문제가 있었다. https://offbyone.tistory.com/318 MySQL(MariaDB) 서버 타임존 설정하기 Java에서 MySQL 서버에 연결하니 다음과 같은 에러가 발생하였습니다. ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.. offbyone.tistory.com 위 포스팅을 보고 my.ini 파일을 수정해서 해결할 수 있었다.
[210623] spring boot - error page 만들기 . 고객에게 서비스를 하는 웹 서비스는 에러가 발생했을 때 에러 문구를 그대로 출력해서는 안 된다. 보안 상으로 문제가 생길 수 있기 때문이다. 그래서 지금 진행하는 프로젝트에서도 whitelabel error page를 그대로 출력하는 대신, 커스텀 된 에러 페이지를 출력해야겠다고 생각했다. jsp에서는 web.xml에 error page를 등록하고, page 디렉터브의 errorPage 속성을 사용해서 에러 페이지를 설정할 수 있었다. Spring에서는 방법이 다르다. 1. proerties에 아래 속성을 추가한다. server.error.whitelabel.enabled=false 2. error.html을 생성하고, 에러가 발생했을 때 출력할 페이지를 작성한다. Error page 에러가 발생했습..
[210620] junit Assertions - Method org.junit.jupiter.api.Assertions Assertions에는 JUnit 테스트를 위한 메소드가 있다. 테스트를 할 때 상태를 확인하기 위한 메소드를 제공한다. Method assertAll(Executable... excutables) 모든 표현식을 수행하고, 에러를 발생시키지 않는지 확인한다. @Test public void assertAllTest(){ Assertions.assertAll(()->{ System.out.println("first"); }, ()->{ System.out.println("second"); }, ()->{ System.out.println("third"); }); } assertArrayEquals(Object[] expected, Object[] ..
[210617] org.springframework.validation.BeanPropertyBindingResult - typeMismatch . org.springframework.validation.BeanPropertyBindingResult 문제가 발생했다. 게시글 수정 기능을 구현하던 중, POST로 VO 객체를 넘기도록 했는데, VO를 읽어오지 못하는 오류가 났다. 타입이나 변수-id의 이름이 다른가 싶어서 열심히 들여다봤으나... 한참동안 답을 못 찾았다. 원래는 writerUid의 value 값을 th:value="${updatePost.writerUid}" 로 설정해두었는데, 여기서 ""를 빼고 위 사진처럼 만들었다. 그러니까 해결되었다. writerUid가 int값을 가져와야 해서 그랬나 하는 생각이 든다. 그렇지만 같은 int 타입인 uid는 ""를 붙여도 값을 읽어오던데... 잘 모르겠다. 해결하기 곤란한 에러인 것 같다.