1. 인텔리제이 환경변수 설정 이슈
- 지난번에 결국 yml에 값 때려박고 환경변수는 사용하지 않음으로써, 근본적으로는 해결하지 못 했던 문제지만, 역시 눈에 보이면 다시 한 번 시도해보기 마련이다.
- https://devlog-wjdrbs96.tistory.com/363
위 블로그에서 인텔리제이의 Edit Configuration에서도 환경변수를 입력할 수 있다고 한다. 그렇게 했더니 환경변수 경로를 잘 찾음!
- 여전히 왜 시스템인 MacOS에 있는 환경변수는 인식하지 못하는지 의문이지만,,(터미널에는 잘 나오는데 말이지..)
- 환경변수가 아닌 외부 파일을 가져다가 yml 파일에 적용하는 방법도 있다고 하니, 나중에 프로젝트할 때 고려해봐야겠다.
2. 인텔리제이와 아파치 서버의 포트 겹침 이슈
- 나는 학습 컨텐츠에 나와있는대로, 아래 링크를 따라 아파치를 homebrew로 설치했을 뿐이고..
https://www.javatpoint.com/how-to-install-apache-on-mac
- 처음에는 프론트엔드를 구성하는 html 파일을 어느 폴더에 담아야 아파치 서버에 반영되는지 모르겠어서 경로를 찾아봤다. 그런데 라이브러리 폴더에 WebServer 폴더가 없는 게 아닌가?
https://hayjo.tistory.com/16
- 그래서 동기들 스터디홀에 물어봤다. (환경변수 이슈로 삽질 5시간 한 후부터 낯짝도 두꺼워지고 절박해졌는지, 이제 스터디홀에 질문하는 게 전혀 두렵지 않다.)
- 동기 2분이 각각의 경로를 알려주셨다.
- /opt/homebrew/var/www 폴더에 html파일 넣기
- /Library/WebServer/Documents
- 여기서 문제는, 내가 2개의 폴더에 모두 html 파일을 넣었다는 것..?
처음에 첫 번째 경로로 넣었는데 서버에 반영이 안 되는 것 같아서, 두 번째 경로에도 html 파일들을 넣었다.
- 두 번째 경로의 경우, macOS 내장 아파치를 사용하는거라서, 파일을 생성하거나 수정할 때 sudo 명령어를 사용해야 한다.
- open . 명령어도 유용하게 썼다.
- 그렇게 설정 다 하고, 인텔리제이 실행하고, 아파치 서버 돌렸는데, 포트가 겹친다고 에러가 떴다.
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using YOUNGRONGui-MacBookPro.local. Set the 'ServerName' directive globally to suppress this message
(48)Address already in use: AH00072: make_sock: could not bind to address [::]:8080
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:8080
no listening sockets available, shutting down
AH00015: Unable to open logs
- 인텔리제이와 아파치 서버의 포트가 8080으로 겹친다고 하니, '포트를 바꿔주면 되나?' 하고, 인텔리제이 포트를 9090으로 바꿔보았으나, 문제는 해결되지 않았다.
그리고 여기서 인텔리제이와 서버의 포트가 다른데 어떻게 하나의 페이지로 연결되지?, 하는 궁금증이 생겼다.
-> 각각 back과 front로, 같은 도메인의 다른 포트를 사용하여 송수신.
- 중간에 ServerName 설정하라는 에러도 뜨길래 그것도 구글링해서 설정해봤으나, 해결되지 않았다.
- 아파치 서버네임 오류 해결법
https://e2xist.tistory.com/535
- 맥에서 apache 설정 파일인 httpd.conf 파일의 경로
https://solbel.tistory.com/1467
- 결국 동기님께 또 SOS 쳤음..
- 아파치 기본 포트가 80인데 왜 나는 8080이 겹친다고 하는가?
httpd.conf 파일에 직접 포트 설정을 80으로 하는 등, 거의 40분을 삽질하다가 알아낸 원인은, 바로 현재 내 맥북에 아파치 서버가 2개라는 것.
- which apachectl 명령어를 통해 현재 실행 중인 서버를 보니, 내가 homebrew로 설치했던 아파치 서버가 돌아가고 있었고, 그것의 포트가 8080이었나보다. 뭔가 서버가 2개이면서 혼선이 생긴 듯.
- 그래서 homebrew에서 설치했던 아파치 서버를 uninstall하고 문제 해결..!
난 그저 컨텐츠에서 하라는대로 했을 뿐인데ㅠㅠ mac이랑 친해지기 어렵다,,
brew search apache, brew uninstall apache2
- sudo lsof -i :8080 명령어를 통해 해당 포트로 돌아가는 프로세스를 찾아서,
sudo kill -9 13253 과 같이 PID값을 넣어서 직접 해당 포트 사용을 중단하도록 삭제하기도 했다.
- https://jink1982.tistory.com/72
- https://velog.io/@gillog/MacOS-%EC%82%AC%EC%9A%A9%EC%A4%91%EC%9D%B8-Port-%EC%A3%BD%EC%9D%B4%EA%B8%B0-Port-Kill
- HelloHomeController를 통해서 OAuth2 인증 받으면 html 페이지 리다이렉트하는 것만 구현해놨으므로, OAuth2MemberSuccessHandler에서 repository에 정보 저장하는 부분에서 에러가 났다.
애초에 요청받은 컨트롤러가 MemberController가 아니라서, 필요한 dto, entity의 정보가 없어서 오류가 난 것으로 보인다.
- 일단은 OAuth2 인증 과정이 중요하므로 정보 저장 부분은 주석처리 하고 넘어갔다.
<느낀 점>
오늘도 엄청난 삽질과, 모두의 도움으로 많이 배운 하루였다.
정말 감사합니다, 동기님들🌹
나의 삽질은 아이러니하게도, 대부분 macOS에서 오는 삽질이다.
나는 오타는 별로 안 내는 편이라서(틀린 그림 찾기 어렸을 때부터 좋아했고, 잘 하는 편이라서 보고 따라 적는 건 잘한다.), 내가 잘못 적어서 그런 건 없고, 뭔가 시스템 설정 문제가 많은 듯 ㅠㅠ
다들 내게 '게시판 만들기' 해보라고, 혼자서 하는 사이드 프로젝트를 적극 추천해주셔서, 해야겠다는 생각이 들었다.
지금까지는 진도 따라가기도 벅차서, 어떻게 사이드 프로젝트를 하나~, 라는 생각이었는데, 주말에 시간을 좀 더 갈아넣어서 공부할 필요가 있다.
앞으로 2주 뒤에 팀 프로젝트 시작이니까, 다른 사람들에게 민폐가 되지 않으려면 2주 사이에 열심히 해야겠다.
동기님들께 도움도 받고, 배우고, 조언도 들으면서, 여러가지로 동기부여도 되고 스스로 반성도 하게 된 날이었다.