전체 글(102)
-
Ubuntu Linux Server에서 apache Tomcat을 이용해 웹 띄우기
AWS에서 서버를 띄우는 것은 인스턴스의 이미지를 뭘 선택하느냐에 따라 달라지지만 일반적으로는 Ubuntu를 사용한다. 따라서 ubunut 서버를 가상환경(VM)에 띄우고 로컬에서 서버를 띄우는 것을 실습한다. - 가상환경 선택(VirtualMachine) 도커나 UTM, Parrels와 같은 OS 가상환경을 제공하는 어플리케이션을 사용한다(필자는 Parrels 사용) - 실습환경 Mac OS 13(Ventura OS) M1 Air(2020) Intel X OS를 가상환경에 설치하기 위해서는 Ubunut 공식 사이트에서 iso파일을 다운받아야 한다. 이 때 본인의 운영체제에 맞는 이미지 파일을 다운받아야 설치가 정상적으로 진행된다. https://ubuntu.com/download/server Get U..
2023.10.16 -
[Java, JavaScript] 웹 소켓을 이용해 다중 1대1 채팅방 구현하기(DB 연동)
개발 환경 : Spring boot 2.7.6 (JPA), mysql, javascript(ajax) 팀 프로젝트 중 채팅을 구현해야 할 일이 생겼다. 채팅을 간단하게 1대 다 혹은 1대1 로만 구현하는 것은 굉장히 쉬워보였으나 내가 원하는 기능은 '1대1 대화가 서로 서로 가능한 채팅방 구현'이었다. 이게 된다면 1대다, 다대다도 비슷한 원리로 모두 가능하다. 그러나 우선은 내가 필요한 기능은 1대1로 서로 구분된 채팅을 하는 것이었다. 이를 위해서 우선 socket의 원리에 대해 이해해야 했다. 내 막연한 상상으로는 하나의 포트번호에서 여러개의 소켓으로 서로 다른 통신을 한다는 것이 불가능해보였기 때문이다. 그러나 엔드포인트를 다르게 둔다면 같은 포트에서도 충분히(당연한건지 모르겠으나) 가능한 일이었..
2023.09.20 -
[Mac] bash_profile로 환경변수 설정하기
Mac에서 환경변수를 제대로 설정해본 기억은 별로 없는듯하고 아직도 텍스트 편집기(vi, nano)에 익숙하지 않기 때문에 관련 내용을 정리해보고자 한다. 다음과 같은 순서로 명령어를 입력한다. $ cd $ ls .bash_profile $nano .bash_profile 이까지 완료했다면 터미널에서 텍스트 편집기가 열릴 것이다. 그리고 설정하고자 하는 환경변수 경로를 등록한다. PATH:등록하고자 하는 경로명 의 형태로 작성한다. ex ) PATH:User/test/java-11/bin 그리고 컨트롤 + x -> Y -> enter 를 입력하면 편집기를 빠져나올 수 있게 된다. 아직 변경사항이 적용된 것은 아니기 때문에 다음과 같이 명령어를 한 번 더 입력한다. $ source ~/ .bash_prof..
2023.09.02 -
[github] GitHub 여러개의 브랜치로 분기시키는 법
* 병합전 *병합후 * main branch * feature1 branch 학원에서 진행하는 파이널 프로젝트 진행중 팀원들과 함께 merge를 해야할 일이 생겼다. 처음 repository를 생성하고 각자의 branch에서 작업하다가 이제 병합해야하는 과정을 거쳐야만 했는데 저장소를 생성하고 branch를 만든 것부터 내가 잘못했던 것 같아 다시 개념을 정리하고자 한다. git clone은 git init + git remote add origin + git pull origin 을 합쳐놓은 것과 같다. 즉 해당 저장소(repository)의 브랜치(git branch -b로 설정안할시 default branch main/mastr)가 가지고 있는 파일을 모두 내 로컬 저장소에 가지고 오는 것이다. g..
2023.08.28 -
[Spring-Boot] 쿼리메서드 사용 시 주의점 및 네이밍 방법
기존에는 직접 sql 문을 작성해 쿼리문을 날리곤 했었지만 spring-boot로 프로젝트를 진행함과 동시에 jpa를 사용하게 되면서 쿼리 메서드와 JPQL을 사용하게 됐다. 그러나 쿼리메서드 사용시 스네이크 케이스의 '_' 를 인식하지 못하는 탓인지 프로젝트를 실행할 때 계속 bean객체 생성에 실패하며 오류가 발생했다. Entity 클래스의 @Column으로 설정한 필드명들을 카멜케이스로 바꾼 후 다시 쿼리메서드의 이름을 카멜케이로 지정하니 오류가 해결됐다. 일반적으로 java에서는 카멜케이스를 사용할 것을 권장한다고는 한다. 현재는 팀 프로젝트가 많이 진행되지 않았기에 db의 필드명들을 모두 바꾸는 작업을 진행해줘도 되지만 만약 그렇게 하기 힘들 경우에는 @Query메서드를 이용해 JPQL을 사용하..
2023.08.20 -
[Spring-Boot] gradle 프로젝트 리소스 파일 수정 후 변경사항 적용 안되는 문제 해결
내가 일반적으로 알고 있던 방법은 dependency에 devtools를 추가하는 것이었다. 그러나 프로젝트를 maven으로 생성했을 때는 이상없었으나 gradle로 생성한 이후로는 devtools 라이브러리가 java source는 컴파일 하는데 정적 리소스를 컴파일 하지 못하는 문제가 발생. 따라서 다음과 같이 설정해보길 권한다. run > edit configuration 설정창에 접속 한 후 위와 같이 설정을 진행한다. 업데이트가 있을 시, 혹은 화면의 포커스가 프로젝트 창이 아닌 다른 창으로 옮겨졌을 경우 리소스와 클래스들을 업데이트 한다는 뜻이다(자바 소스는 컴파일 되지 않고 리소스만 적용된다. 자바 소스는 dev tools로 처음부터 소스가 재빌드 돼야함)
2023.08.19