개발/Web
-
RSA 공개키 방식과 AWS EC2개발/Web 2023. 12. 30. 16:23
EC2 인스턴스를 생성하고 나서 접속을 위한 개인키를 다운받을 수 있고, 이 개인키를 이용해 터미널에서 ssh 접속을 한다. 접속을 해서 .ssh 폴더를 가보면 공개키도 확인된다. RSA 공개키 방식은, 공개키로 메세지를 암호화하고 개인키로 암호화된 메시지를 복호화한다. 이 둘은 한 쌍이다. 만약 어떤 이유로 이들을 변경해야 한다면 새로 생성한 키를 추가하거나 대체하면 된다. 터미널에서 .pem 확장자로 파일을 만들어 개인키를 넣어주고, aws 터미널에 공개키를 추가하거나 새로 넣어준다. 접속할 때 새로운 개인키로 접속하면 된다. 만약 개인키의 권한 문제로 접속이 안 된다면 chmod 600 혹은 chmod 400로 권한 변경을 해주자. 공개키는 추가하는 방식으로 해도 된다.
-
[SVG] viewBox개발/Web 2022. 8. 2. 13:07
다음 예제에서 svg를 그릴 영역을 컨테이너라고 하겠습니다. 크기 width 300px, height: 300의 노란색 영역이 컨테이너가 될 겁니다. const App = () => ( ); export default App; viewBox 0 0 200 200에서 앞에 두 요소는 min-x, min-y로 시작점을 의미합니다. 뒤의 두 요소는 width, height입니다. 설명 원의 1/4만 2 사분면에 나와 있습니다. 원의 중심인 cx, cy 속성을 따로 지정해주지 않았으므로 0입니다. 원의 중심이 컨테이너의 (0, 0)에 위치합니다. 크기는 어째서 절반이 나왔을까요. 컨테이너의 크기는 분명 300px * 300px이고 원의 반지름을 100으로 했는데, 출력된 원의 반지름은 150px입니다. view..
-
[Spring Framework] @RequestBody, @RequestParam개발/Web 2020. 10. 16. 16:22
공식 문서를 봐도 명확히 이해가 안 됩니다. 지금 깊게 정리할 시간이 부족해 간단하게 기록용으로 남깁니다. form 태그를 이용하여 데이터를 보낼 때는 @RequestParam을 이용해서 받으면 됩니다. 당장 테스트할 수 있는 시간이 안 돼서 불확실하지만 String 변수 하나로 받아서 파싱하거나 클래스를 정의해서 받으면 될 겁니다. 데이터가 많을 때 일일이 파라미터를 써주는 것은 불편하니까요. 일하면서 사용한 방법은 자바스크립트에서 fetch를 이용해 post 방식으로 데이터를 보내는 것인데요. Content-Type은 applicatio/json으로 명시하고 body에는 데이터를 문자열로 만들어서 넣습니다(body:JSON.stringify(data)). 문자열로 감싸서 json 형태로 보내기 때문에..
-
[Spring Security] static resource와 로그인 성공 후 error page에 관해개발/Web 2020. 10. 8. 13:51
스프링 부트: 2.3.4 스프링 시큐리티: 5.3.4 커스텀 로그인 페이지를 만들었는데 css가 먹지 않은 페이지가 떴습니다. /css(resources/static/css)가 적용되지 않은 것이고 경로 문제가 없었기 때문에 css에 접근을 못하면 루트(static) 밑에 있는 다른 폴더와 파일에도 접근을 못할 겁니다. 해당 경로에 접근할 수 없어 생기는 문제이기 때문에 이를 허용하는 코드를 넣습니다. 구글링을 하다 보면 위 코드 대신에 아래와 같은 방법도 가능하다고 나오는데요. 두 번째 코드는 권장하지 않습니다. 스프링이 static resource를 제대로 찾지 못하는 문제입니다. 이런 경우, 로그인을 성공해도 리다이렉트 URL에 error url이 들어오면서 다음과 같은 오류 페이지가 나옵니다. s..
-
[Spring boot] SpringBootApplication annotation + no explicit mapping for /error개발/Web 2020. 9. 11. 14:27
내부 톰캣 서버를 실행하는 진입점이라고 할 수 있는 @SpringBootApplication를 작성한 클래스는 패키지의 최상단 혹은 동일한 레벨에 위치해야 합니다. @SpringBootApplication은 여러가지 어노테이션 기능을 합친 어노테이션입니다. 그 중 하나가 @ComponentScan입니다. 이 어노테이션의 기능은 현재 위치에서 시작해 서브 패키지를 훑으면서 클래스를 스캔합니다. 엉뚱한 패키지에 작성하면 컨트롤러를 못 찾기 때문에 404 에러가 발생하죠. This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Sep 11 14:20:17 KST 2020 There was an u..
-
[Spring boot] TilesConfig + tiles.xml개발/Web 2020. 9. 10. 14:00
TilesConfig @Configuration public class TilesConfig { @Bean public TilesConfigurer tilesConfigurer() { TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesConfigurer.setDefinitions(new String[] {"/WEB-INF/tiles.xml"}); tilesConfigurer.setCheckRefresh(true); //ViewPreparer에서 Autowired가 가능하게 하는 설정 tilesConfigurer.setPreparerFactoryClass(SimpleSpringPreparerFactory.class); return tilesCon..
-
[Spring boot] JSP view resolver + web socket + dev tools개발/Web 2020. 9. 10. 12:31
build.gradle developmentOnly 'org.springframework.boot:spring-boot-devtools' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' implementation 'org.springframework.boot:spring-boot-starter-websocket' implementation 'org.webjars:stomp-websocket:2.3.3'
-
[Libraray] RXTX for Java개발/Web 2020. 8. 28. 10:09
실행환경 윈도우10 64bit pro, 인텔리제이 Maven Repository에 올라와있는 것은 32bit용 라이브러리고 대부분 이클립스로 설정합니다. 저는 인텔리제이를 쓰기로 했기 때문에 64비트 라이브러리를 따로 찾아야했고 외부 라이브러리를 추가하는 방법이 이클립스랑 많이 달라서 애를 조금 먹었습니다. fizzed에 들어가서 Windows-x64 버전을 다운로드합니다. 인텔리제이에서 다운받은 라이브러리를 넣어봅시다. 스프링 프로젝트이기 때문에 gradle을 사용해야 합니다. 프로젝트로 가서 lib 폴더를 하나 만들고 다운받은 RXTXcomm.jar을 넣어줍니다. build.gradle에서 dependencies에 다음과 같은 코드를 추가합니다. Ctrl + Shift + O를 눌러 변경사항을 반영합..