전체 글(47)
-
SpringBoot + Next.js 프로젝트 회고
이 글에서는 전 회사에서 Next.js + SpringBoot + JPA 로 진행하는 프로젝트를 개발해 가면서 몰랐던 새로 알게되는 전반적인 내용들을 기록하려 한다. 회사에서 진행하는 프로젝트이다 보니 예제코드는 example로 변경해서 기록되어 있기에 정확하지 않을 수 있다. 잘못된 설명이나 오타에 대한 피드백 감사합니다. 쿠키 발급이 안되는 문제 시나리오 기존에는 accessToken과 refreshToken을 localStorage에 보관했었다. 알고보니 token을 localStorage 같은 곳에 보관하면 확장프로그램이나 기타 XSS공격과 같은 심각한 보안문제가 발생한다고 한다. 결과적으로 refreshToken은 HTTP 세션에 보관하고 accessToken은 redux 같은 메모리에만 보관하..
2024.01.11 -
Docker(도커) 공부하기 1편
참고 (에러상황)원래 docker terminal이 잘 실행되었는데 20.07.21 퇴근후 집에서 해보려고 하니 실행이 안되고있다. Error getting IP address: Something went wrong running an SSH command 이런 에러가 발생하는데 왜 IP를 얻지 못하는지 모르겠다. 리니지m 때문에 블루스택 업데이트를 했는데 블루스택 안드로이드 업데이트가 영향을 주었나 의심스럽다.docker-machine rm defaultdocker-machine create --driver virtualbox default위 코드로 해결 되었다.도커란 무엇인가?도커의 이미지는 고래가 컨테이너를 쌓고있는 모습이다. 기본적인 컨셉이 그러하다 고래가 도커이고 그위에 컨테이너가 있다 컨테이너..
2024.01.10 -
SpringBoot 공부하기 2편
리플렉션 모든 클래스의 정보는 JVM 안에 있는 클래스로더가 읽어와서 메모리의 어딘가에 두는 것이다. 클래스 로더가 읽어온 클래스 정보가 곧 거울에 비친 모습과 같은 것이다. 이런 정보를 가지고 여러가지 여러가지 행동을 할 수 있다 예를들어 어노테이션이 붙어 있으면 특정 행위를 실행 한다거나 테스트를 할 때 추가 행위를 한다거나 특정 네이밍을 검색해 치환 한다거나 모두 리플렉션 덕분에 가능한 행위다. 무긍무진하게 활용될 수 있다. // 클래스 정보를 가져온다. (레퍼런스를 가져온다) Class aClass = Class.forName("me.whiteship.hello.ChineseHelloService"); // constructor를 가져온다. aClass에서 바로 newInstance()를 사용하지..
2024.01.09 -
팀 어번 - The AI Revolution (엘론 머스크, 스티븐 호킹 등 많은 유명인들이 인공지능을 경계하라고 호소하는가?)
이 글은 Tim Urban 의 The AI Revolution를 번역하신 coolspeed님의 글을 요약한 글입니다. 저자: Tim Urban 원문링크: Part I: The AI Revolution: The Road to Superintelligence Part II: The AI Revolution: Our Immortality or Extinction 번역: coolspeed 내가 생각하던 인공지능 이라는 주제 글쓴이가 2015년쯤 인터넷에서 뉴스를 읽을때 어떤 유명기업에서 생산, 배송과정을 90%이상 자동화 하겠다는 기사를 읽었었다. 그당시에는 별로 현실성이 없는 이야기며 기업에서 늘 목표주가를 높이 발표하는것 처럼 희망사항정도로 생각했었다. 하지만 2020년 까지 1년남은 지금, 벼농사의 90%..
2024.01.07 -
linux 얕게 공부하기 (1편)
리눅스란 무엇인가? 리눅스는 1991년 핀란드의 개발자 Linus Torvalds에 의해 개발되었다. Linux Distro Debian : Debian, Ubuntu, KNOPPIX(CD Linux) Red Hat: Fedora, RedHat Enterprise, CentOS, Vine Linux(Japan) Slackware: openSUSE(Novell), SUSE Linux Enterprise 용어 정의하기 Kernel Management the Memory, File System, CPU, Device, etc. Infra 와 OS단계 사이에 커널이 존재한다, 메모리상에서 매니지먼트하고 CPU나 디바이스, 파일시스템을 관리한다. 하드웨어를 제어하는 소프트웨어를 펌웨어인데 펌웨어와 비슷한 개념으로..
2024.01.06 -
윈도우에서 Bash Shell사용하기
윈도우에서 linux 환경을 설정해 사용하다 보니 여러가지 불편한 점이 많다, 그냥 아이맥이나 맥북을 하나 사는게 나은 것 같다. 개발자들은 왜 맥북을 선호할까? 아주 주관적인 개인적 의견이다. 개발자들에게 맥북이 필수품(?) 처럼 느껴지는 분위기가 있는 것 같다 꼭 그렇진 않지만 개발자가 윈도우를 쓴다고 하면 좀 안어울리는 것 같기는 하다. 어쨋거나 왜 개발자들은 맥북을 선호할까? 여러가지 자신들 만의 이유가 있겠지만 내가 생각하는 가장 큰 이유는 환경 때문인 것 같다. 기본 OS가 linux를 베이스로 한다는 것, 이 자체가 큰 차이를 만들고 특히 서버개발자 들이 맥북을 선호하는 이유가 되지 않았을까 싶다 만약 이 글을 읽는 당신이 개발을 한다면 반드시 로컬 -> 서버로 배포하는 과정을 겪을 것이다...
2024.01.05