본문 바로가기

분류 전체보기

(84)
MusicSheetsCommunity project MusicSheetsCommunity project 개발 일지프로젝트 제목MusicSheetsCommunity개발 일자2024.06~07개발 목적iframe 사용,게시판, 사용자 관리자 기능 기술 구현기술Java 17, Gradle, Spring, JPA, Git Actions, Docker, AWS Ec2, AWS S3, H2(local),My sql , Bootstrap, Javascript, JQuery설명youtube에 업로드된 영상 악보를 저장 및 관리하고 공통 관심사를 가진 사용자끼리 소통하는 커뮤니케이션 형성아쉬운 점초반에 웹 디자인을 직접 구현한다고 시간을 많이 소비함.참조 코드에 따라 JavaScript와 JQuery를 혼용해서 사용throw exception 사용으로 인한 excepti..
NGINX 기초 개념웹 서버 소프트웨어로 리버스 프록시, 로드밸런서 등의 기능을 수행함 정보master와 workers 프로세스 구성프로세스의 갯수는 설치 환경의 cpu에 알맞게 설정/etc/nginx/nginx.conf에서 확인 기본 로직클 -> master -> worker1 -> worker2 -> 처리  설정 파일directives함 (simple/block)- simple ex) root ... ;  - block ex) location / { ... } 기본 위치- etc/nginx/nginx.conf- include로 설정 파일 분리 ex) include /etc/nginx/conf.d/*.conf; server block-listen 80  (80포트로 받겠다)- server_name ex) server..
JsonEOFException 문제사항Json 예시 [{ "id":1 , "name":"Lucy" }]  Json을 역직렬화하려는 도중 계속해서 오류가 났다 ㅠㅠcohttp://m.fasterxml.jackson.core.io.JsonEOFException: Unexpected end-of-input: expected close marker for Object (start marker at [Source: (String)"{"id":14"; line: 1, column: 1]) at [Source: (String)"{"id":14"; line: 1, column: 9] 문제 코드@Test public void testSingleObjectJsonParsing(List jsonList) throws IOException { ..
Spring security6와 CSRF 사이드 프로젝트 개발 도중 .. Ajax로 Delete 요청을 하는데 자꾸 access-denied가 떴다 처음에는 admin, user 권한 때문인줄 알았지만 Spring Security에서 CSRF 공격 방지를 하기 위한 설정 때문이었다.  CSRF란?사이트 간 요청 위조(cross site request forgery)라는 뜻의 웹사이트 취약점 공격의 하나로, 사용자 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정웹사이트에 요청하게하는 공격이다  Spring Security와 CSRFSpring Security는 기본적으로 CSRF 공격을 방지하기 위해 CSRF 토큰을 사용한다. 해당 프레임워크를 사용할때 form 태그에 내가 추가하지 않은 값이 들어 있는 경우있다.바로 아래 사진의 input..
2024 정보처리기사 1회차 실기 합격 후기 정보처리기사 실기 합격 후기 입니다 ㅎㅎ  전공여부관련 전공 졸업생공부 기간총 4개월시험 횟수4번째취업취준생 우선 저는 이번 1회차 시험이 필기 만료 전 마지막 시험이고 4번째 실기 도전이었습니다 .. 🥹 매번 점수도 아슬아슬한편도 아닌 항상 2~30점대를 유지했습니다 그냥 포기하고 나중에 다시 할까 고민도 했습니다. 그치만 또 필기시험을 치기 너무 너무 싫어서,, 그래서 이번엔 인강의 도움을 받았습니다 제가 선택한 강의는 흥달쌤 강의였습니다https://www.youtube.com/@HeungSsaem 흥달쌤흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관..
메세지, 국제화 인코딩 오류 spring 국제화 적용을 할 때 인코딩 등 다양한 문제로 사진과 같은 에러를 경험한 적이 있을 것이다. 인터넷을 샅샅이 뒤져가며 IntelliJ의 이곳저곳에 encoding 적용을 해도 해결이 안될 경우 !  src/main/resources에서 messages.properties 파일이 있는지 확인해보자!!!! ...ㅎ ㅎ 본인의 경우 messages_en.properties, messages_ko.properties  만 추가하니까 맨 위 사진과 똑같은 에러가 생겼다 messages.properties 를 추가하니까 간단하게 해결됨! spring에서 기본적으로 messages.propeties 파일을 자동으로 로드하고 추가로 로케일에 맞는 파일을 로드하기 때문이라고 한다. 🤣
Enum과 Thymeleaf Enum 클래스 정의Enum의 상수를 이용해서 메세지, 국제화를 적용 시켜보기국제화의 기본 설정은 이미 다 되었다고 가정 Lunph.javapublic enum LunPh { NEW_MOON(0, "달이 태양과 같은 방향에 있어 보이지 않음", "🌑"), WAXING_CRESCENT(1, 6, "오른쪽에서부터 달이 보이기 시작함", "🌒"), FIRST_QUARTER(7, "달의 오른쪽 절반이 밝음", "🌓"), WAXING_GIBBOUS(8, 13, "오른쪽 절반 이상이 밝음", "🌔"), FULL_MOON(14, "달이 완전히 밝음", "🌕"), WANING_GIBBOUS(15, 20, "왼쪽에서부터 달이 점점 어두워짐", "🌖"), LAST_QU..
APSharing project APSharing project 개발 일지 프로젝트 제목APSharing(Astronomical Phenomenon Sharing)개발 일자2024.06.08~ 24.06.16개발 목적Open API 공부기술Java, Gradle ,Spring boot,Spring web, Thymeleaf,Git, Github, Aws Ec2,Linux, Nginx, Certbot, FileZilla, , Bootstrap설명오늘 또는 이달의 천문 현상(24절기, 달의 모양, 월식 등의 천문 현상, 오늘의 천문 사진)을 공유 목적아쉬운점분명 이정도면 괜찮겠지? 하고 깃허브에 올려도 종종 코드 리팩토링할 소스코드가 보인다. 로직을 제대로 분리하지 못한 부분들에 대한 아쉬움이 있다.다음에는 도커를 활용한 배포를 시도해야겠..
역직렬화 후 추가 가공 기존 JSON 데이터 구조와 원하는 데이터 구조 기존 Json의 items[ item1,item2, ... , item5] 구조가 Thymeleaf로 바인딩할 때 마음에 들지 않아서 날짜 기준으로 그룹화하기로 했다기존 구조원하는 구조"item" :{[{             "astroEvent": "화성 - 해왕성 최대근접(0°14′)",             "astroTime": "06:00",             "astroTitle": "",             "locdate": 20150120,             "seq": 1           }, {             "astroEvent": "합삭",             "astroTime": "22:15",        ..
reset/revert Git의 명령어 reset과 revert는 커밋 기록을 변경하는 명령어다 Reset Reset은 사용자가 지정한 커밋으로 이동시키는 명령어다git reset --hard 커밋_해시값  커밋 순서가 1 - 2 - 3 - 4 - 5 - 6 - 7이고 4로 돌아가고싶을때 reset을 쓰면1 - 2  - 3 - 4 로 돌아간다 사진처럼 나 4로 돌아가고 싶어 라고 git에게 얘기하면 그래 다 지워줄게 이러고 지워준다   Reset은 주로 혼자 작업하는 로컬에 쓰인다(협업에는 추천하지 않음) Revert Revert는 되돌리기 라는 뜻이다. 저장된 커밋의 변경사항을 반영한 새로운 커밋을 만드는 명령어다 git revert 커밋_해쉬값//revert 중단git revert --abort 커밋 순서가 1 - 2 - ..