프로그래밍 19

[DB] 설계한 schema 기반의 SQL 생성하기

오늘은 어제 점검했던 문제 중 한가지인 DB Foreign key를 연동하기 위해  DB 스키마의 SQL문을 작성할 것이다. 처음에는 springboot의 Entity로 스키마를 생성할 때, fk를 자동생성해주는 코드를 짜려고 했는데, 생각보다 정상적으로 만들어지지 않아 MySQL workbench에서 일일히 fk를 연결해줬었다. 근데 개발자가 이런 반복적인 일을 하나하나 수행한다는게 너무 비효율적이라고 생각되서 그나마 현재로서 Entity 정의되어있는건 건들지 않고 자동 생성해주는 방법은 SQL문을 작성하고 이를 실행하는 방법인 것 같다고 생각했다. 따라서 내가 설계한 ERD를 기반으로 FK 설정이 포함된 SQL문을 작성했다.  -- Table: workspaceCREATE TABLE workspace..

프로그래밍 2024.11.25

[Web 개발] 아이들의 음악교실 'Let's Note' - 기능 문제 파악

직접적으로 Let's Note 홈페이지의 기능 문제를 파악하고 고쳐나가보지. 1. 악기 별 시각화 및 연주 기능 문제 이 기능의 목적은 해당 탭을 이용하여 특정 악기만 display하도록 해서 협업시 상대방의 편집이 내 작업에 지장이 가지 않도록 하는 것이었다. 근데 해당 기능은 현재 드럼만 가능하며, 피아노와 기타는 피아노의 버튼으로 같이 on/off 되고 있다. 그리고 해당 display는 연주에는 적용되지 않고 모두 On 상태로 플레이 되고 있다. 더보기# 특정 악기만의 연주 소리를 듣는 것이 필요한가?나는 필요하다고 생각한다. 퀄리티가 낮아보이더라도 필요한 기능들이 있어야 사용할 수 있다고 생각하고 드럼의 소리를 듣기 위해 플레이했는데 피아노 소리에 묻힌다면 불편함을 느낄 수 있다고 생각했다.근데..

프로그래밍 2024.11.24

[Web 개발] 아이들의 음악교실 'Let's Note' 운영 재개

지난번에 ssl을 적용하여 운영중이던 프론트엔드 서버와 연결하여 웹이 다시 정상적으로 돌기 시작했다.  https://letsnote.co.kr Let's Note www.letsnote.co.kr 아직 부족한 점이 많지만 해당 사이트를 리뷰하며 어떤 개발을 적용했는지, 그리고 현재 미흡한 점은 무엇인지 파악하는 시간이 되겠다.  먼저 사이트에 접속하면 회원가입을 한다.  아이디와 닉네임, 비밀번호, 확인 이 네가지 입력값이 있는데 각각 몇글자 이상이라던가, 중복 불가 등의 조건이 있다.  근데 몇글자 이상이어야 하는 조건을 따로 개별 alarm으로 구현해놓지 않아서 위처럼 나타난다.(현재 아이디를 h 한글자로 입력하여 실패한 상황) 따라서 이 부분 수정이 필요하다.  로그인 하면 내 작업공간으로 이동한..

프로그래밍 2024.11.23

Springboot에 ssl 인증서 발급하여 https 포트 개방하기 - certbot 활용

드디어...!!! 해냈다...ㅠㅠㅠ acm으로 load balancer 설정하여 인증받으려고 설정했지만 실패했었다. 그래서 좌절하고 그동안 감을 잡은 도메인 개념으로 다시 certbot 인증서 발급을 시도했다. 해당 방법은 이후 프로젝트에도 사용하기 위해 기록용으로 작성하겠다.  서론 처음엔 certbot을 통해 인증서를 발급받는 과정이 잘 이해되지 않았지만 다들 이렇게 진행하나보다 하고 웹 상에서 떠도는 방법으로 진행했다. 하지만 다들 된다는데 나만 안됨.. 계속 시도했지만 잘 안됬는데 그때마다 생각하지 못한 게 하나 있다. 인증을 한다는건 지금 인증서를 요청하는 내가 도메인의 주인이라는 것을 증명해야 한다. 근데 도메인에 certbot 명령어를 날린다고 내가 그 도메인 주인이라는 걸 어떻게 증명하지?..

프로그래밍 2024.11.20

[웹서버 개발] ACM으로 HTTPS 인증 적용

지난 시간동안 내 웹 서비스의 백엔드 서버를 HTTPS 인증 받기 위해 갖가지 노력을 했지만 알 수 없는 에러 때문에 번번히 실패 했다. 이전에 진짜 힘들게 했던 것 같은데 기록이라도 해두면 좋았을텐데.. 뭔가 해결하면 항상 꼭 기록해두기로 다짐하게 됨 현 상황은 certbot을 실패해서, ACM이라는 AWS의 인증서 발급 방식으로 HTTPS를 적용하는 방법을 시도해보려 한다. 어저께 AWS에 도메인을 호스팅 해주는 Route 53 서비스를 사용하여 도메인을 호스팅 했고,HTTPS 인증을 받기 위해 ACM에서 인증서를 발급받아놨다. 해당 내용은 여러 포스팅을 참고했다.  ACM을 AWS 서비스 내에서 인증 절차를 자동으로 수행하기 위해서는 Load balancer를 사용해야 한다. 로드 밸런서는 클라이언..

프로그래밍 2024.11.19

ssl 인증서 받기

오늘은 ssl 인증서 받는 방법을 바꾸어서 AWS 서비스에서 방법을 찾아보려했다.  ACM 서비스 사용해서 인증서 발급받고   가비아 도메인을 Route 53 에 네임서버를 연결한 뒤, 방법을 더 찾고 있는데 잘 안되서 절차를 다시 정리해야 할 것 같다. ACM 인증서 받아서 properties 디렉토리에 저장한 다음에 해당 설정으로 반영해주면 되지 않을까 생각하고 있는데 아직은 좀 막막하다.. 원래 이렇게 복잡했나ㅠㅠ 담주부터 또 다시 한번 계속 해볼예정임

프로그래밍 2024.11.17

Springboot 웹서버 인증서 발급하여 HTTPS 443 포트로 백엔드 실행하기

HTTPS의 프론트 서버를 연동하려면 이 서버와 연결되어있는 백엔드 서버도 HTTPS 443 포트의 ssl인증을 받은 웹서버여야 한다. 그래서 항상 개발을 해서 ssl 인증을 받을때면 이 복잡한 방법을 매번 찾아서 수행하는데, 귀찮아서 기록해두고 새 프로젝트 할때마다 따라하며 수행하려 한다.   먼저 SSL은 해당 웹 서버의 IP가 신뢰할 수 있는 서버인지 검증하는 절차를 수행하기 때문에,발급받는 key도 당연히 배포하는 서버에서 받아야 한다. 따라서 만약에 EC2 인스턴스에서 SSL 키를 발급받으려고 한다면 인스턴스 안에서 발급받은 뒤에 해당 키를 Springboot 프로젝트가 있는 컴퓨터로 옮기던지 해야 함.  나는 EC2 우분투 OS 환경에서 배포하고 있기 때문에 우분투 환경의 터미널에서 certb..

프로그래밍 2024.11.16

[웹개발일지] ubuntu 원격 서버에 docker 이미지 배포하기

도커 이미지를 빌드하는 OS와 배포하는 OS가 다르면 빌드시 플랫폼을 특정해줘야 함. $ docker build --platform linux/amd64 -t your_image .  -> docker build --platform linux/amd64 -t songarden/letsnote:v1.0.x  그후 push 후 tag까지 수행 그러고 docker pull (이미지명) 그리고 docker 실행 시 명령어 -> docker run --name letsnote(컨테이너명) -d -p 8080:8080 songarden/letsnote:v1.0.x sleep infinity sleep infinity는 도커 중지되지 않도록 하는 명령어

프로그래밍 2024.11.15

[웹서버 개발 기록] docker 설치

개발할 때, 요즘은 docker를 사용하는게 워낙 편하다보니까 많이들 사용한다. mysql, 웹서버 자체 배포등.. 컨테이너로 관리할 수 있는 이점이 좋은 듯 하다. 게다가 demon으로 실시간으로 실행할 수 있고 또 포트도 임의로 변경할 수 있는 점도 편한 것 같다. 오늘은 가볍게 그냥 docker 설치하는 방법 메모해두고 마무리하겠다. 오늘부터 이제 조금씩 시간을 투자해서 아이들의 음악교실인 Let's Note 웹서버 개발을 다시 이어가려고 한다. 이후 초등학교에서는 가상의 피아노로 음악 공부를 하게 될 것이고,태블릿이 교과서 역할을 수행하게 되면서 웹을 활용한 수업이 보편화 될것이라고 예상했다. 그래서 올해 초에 음악을 작업하고 나만의 악보를 저장하고 또 노래를 같은 방에 모여 음성통화하며 만드는 ..

프로그래밍 2024.11.15

[Gitistory] github에서 로컬 서버로 요청 연동하기 (feat. Github Webhook)

오늘은 블로그에 포스팅하도록 Google Chrome driver 코드를 짰기 때문에 이제 Gitistory 프로젝트의 두번째 목적인 github의 레포지토리의 PR이 올라오는 순간 해당 코드를 작동시키도록 Github와 코드를 연동하는 것을 진행했다. 원래는 EC2 인스턴스를 통해서 24시간 코드를 돌리려 했는데, 인스턴스의 메모리가 너무 작아서flask의 가상 환경이 memory를 가득 잡아먹는 탓인지 CPU가 메모리 가상화하는데 점유를 다해서 문제가 발생했다. 이 문제는 docker로 구워서 가동시키면 해결 될 수도 있을 것 같은데 flask를 docker로 구워서 실행시키는 것보다 일단 로컬에서 코드를 다 짜고 해당 방법으로 조금 개선하도록 프로젝트를 진행하려 한다..  웹 상의 github we..

프로그래밍 2024.08.02