
JVM을 공부하기위해 관련된 영상(https://www.youtube.com/watch?v=AWXPnMDZ9I0)을 보던 도중 들어가자마자 소스코드를 바이트코드로 변환하는 부분부터 막혔다. 소스코드가 뭐지? 바이트 코드가 뭐지? 관련해서 검색해봤다. 바이너리 코드로 검색을 해보면서 감을 잡을 수 있었는데 소스코드는 기존에 우리가 JAVA등으로 작성한 고급 언어임을 알 수 있었고 바이트 코드는 작성한 언어를 JVM에서 실행하기 위해 가상머신이 이해하고 실행할 수 있는 0과 1로 구성된 코드를 말했다(관련 출처: https://woojoong2.tistory.com/81) 바이트 코드를 검색하다가 추가적으로 비슷한 바이너리 코드 라는 녀석이 존재했는데 얘도 똑같이 컴퓨터가 이해하고 실행할 수 있는 0과 1로..
우선 시작하기에 앞서 이 책을 읽게된 경위는 다음과 같다. 비전공자로서 프로그래밍에 대해 공부할 때 CS의 중요성에 대해서 끊임없이 피드백 받는다. 그래서 CS지식을 어떻게 쌓을 수 있을까에 대해서 많이 고민하게 되는데 구글링을 통해서 입문하기에 해당 책이 좋다는 평가를 많이 보았다. 순례길 같이 멀어 보이는 CS의 길을 이 책을 통해 한발자국 나아갈 수 있다고 생각했다. 시작이 반이라는 말이 갑자기 생각나는데 그 반을 해보자고 생각하고 책을 구매하게 되었다. 해당 책을 통해서 알 수 있는 것은 무엇일까? 목차를 통해 알아본다면 총 10장으로 구성되어 있으며 다음과 같다. 1. 컴퓨터 및 정보기술의 역사 2. 운영체제 개요 3. 컴퓨터 시스템의 동작 원리 4. 프로그램의 구조와 실행 5. 프로세스 관리 ..
파이널 프로젝트가 끝난지도 벌써 2주가 되어간다. 그 전에 프로젝트에서 했었던 일들에 대해서 정리도 하고 부족했던 부분이나 앞으로 더 해나가면 좋을 부분에 대해서 짚어보고자 회고를 한번 해보기로 결심했다! 1. 프로젝트 설명 우리 팀은 해당 구역을 산책을 하고, 산책도중에 생각나는 사진이나 메모를 기록 할 수 있고 공유하는 앱을 만들었다. 만들게 된 이유는 사실 많은 사람들이 바쁜 현대사회에서 잘 걷지 않는편이고 현재까지 나온 걷기 앱들이 '보상' 부분에 초점을 맞추어 있는데(캐시워크등...) 이런 보상이 오히려 걷기, 산책에 대한 동기를 오히려 멀어지게 한다고 생각했다. 그래서 우리 앱을 통해 걷고, 기록해나가면서 걷기에 대해 좋은 인식과 경험을 가질 수 있게 도와주고 하나의 취미까지 연장되었으면 하는..
1.오전에는 CORS문제로 프론트와 백엔드간의 소통이 있었다. 처음에는 배포 서버에 요청을 보냈으나 계속해서 CORS문제가 발생을 해서 내가 서버를 띄운 뒤 NGROK를 통해 프론트 측의 문제를 해결했다 corsConfiguration.setAllowedOrigins(List.of("*")); SecurityConfig의 cors 옵션을 다음과 같이 설정해서 해결했다. 결국 프론트 서버의 AllowedOrigin은 열어뒀지만 요청을 보내는 곳의 AllowedOrigin을 안열어서 발생한 문제인거 같다. 처음에 그래서 요청을 보내는 localhost포트를 열어주면 되는거 아닌가 했는데 동료분 말씀대로 localhost는 내 포트를 여는거지 상대방 포트의 요청을 열어버리는게 아니기때문에 별관련없는거같다 테스..
어떤 방식으로 오류코드를 만들것인가? 모든 field와 form마다 자세하게 설명하려면 범용성이 떨어짐 아래의 케이스는 어디에도 가져다 쓸 수 있는 범용적인 장점이 있음 오류코드는 자세히 만들 수 있음 -> required.item.itemName 상품 이름은 필수입니다 단순하게도 만들 수 있음 required -> 필수 값 입니다. 단순한 방법은 범용성이 좋음 여러곳에서 사용가능하지만 메시지를 세밀하게 작성하기는 어려움 반대로 너무 자세하게 만들면 범용성이 떨어짐 가장 좋은 방법은 범용적으로 사용하다가 세밀하게 작성해야하는 경우는 세밀한 내용이 적용되도록 메시지에 단계를 두는 방법이다. //errors.properties #level 1 required.item.itemName =상품 이름은 필수입니다..
https://velog.io/@wingnawing/%EC%9E%91%EA%B3%A0-%EA%B7%80%EC%97%AC%EC%9A%B4-AWS-.pem-%EA%B6%8C%ED%95%9C-%EC%97%90%EB%9F%AC-WARNING-UNPROTECTED-PRIVATE-KEY-FILE 작고 귀여운 AWS .pem 권한 에러 : WARNING: UNPROTECTED PRIVATE KEY FILE! 암호화 라인에 대한 안 좋은 추억이 있다. 예를 들면 git. git SSH를 사용하고 싶어서 2시간 정도 애쓴 적이 있는데, 이유를 알 수 없는 문제로 연결이 되지 않아 결국 포기하고 지금도 깃 토큰을 발 velog.io 우선 이분의 블로그를 참고하여 해결하였습니다 우선 배포를 위해 EC2인스턴스 설정을 마치고..

html 체크박스는 선택이 안되면 클라이언트에서 서버로 값 자체를 보내지 않음 -> 수정의 경우에는 사용자가 의도적으로 체크되어 있던 값을 체크를 해제해도 저장시 아무 값도 넘어가지 않기 때문에 서버 구현에 따라서 값이 오지않은 것으로 판단해서 값을 변경하지 않을 수도 있다. 이 문제 해결을 위해 스프링MVC는 히든 필드를 하나를 만들어서 _open처럼 기존 체크박스 이름 앞에 언더스코어를 붙여서 전송하면 체크를 해제했다고 인식할 수 있고 히든 필드는 항상 전송됨 이떄 _open만 있느냐 둘다 있느냐의 여부에 따라 true와 false를 전송함 체크박스가 체크되면 open=on&_open=on 이때는 _open은 무시해버림 체크박스가 미체크 되면 _open만 있는걸 확인하고 open의 값이 체크되지 않았..
타임리프 특징 서버사이드 HTML 렌더링(SSR) 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. 네츄럴 템플릿 타임리프는 HTML파일을 최대한 유지하는 특징이 있음 JSP같은 경우는 웹브라우저에서 해당 파일을 거치지 않고 파일을 열면 화면이 깨지고 그럼 -> 타임리프는 그냥 렌더링 되어서 보임 (최종결과는 아니지만) 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다. 협업할 떄 타임리프가 좀더 유리함 순수 HTML을 그대로 유지하면서 뷰 템플리솓 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿이라고 한다. 스프링 통합 지원 타임리프 기본 기능 사용하기 위해서는 다음을 선언하면 된다 텍스트 - text, utext 더보기 타임리프는 기본적으로 HTML 태..