- [로드맵] Pick a Language2024-11-13 11:12:23Java는 이식성, 견고성, 확장성으로 유명한 고급 객체 지향 프로그래밍 언어이다.Sun Microsystems(현재 Oracle)에서 개발한 Java는 "한 번 작성하면 어디서나 실행" 원칙을 따르므로 Java Virtual Machine(JVM)이 있는 모든 기기에서 코드를 실행할 수 있다. 대규모 엔터프라이즈 애플리케이션, Android 모바일 앱, 웹 서비스를 구축하는데 널리 사용된다. Java는 자동 메모리 관리(가비지 컬렉션), 방대한 표준 라이브러리, 강력한 보안 기능을 갖추고 있어 백엔드 시스템, 분산 애플리케이션, 클라우드 기반 솔류션에 널리 사용된다. https://roadmap.sh/java
- OSIV 옵션에 대해 설명해주세요.2024-11-12 11:01:44OSIV(Open Session In View)OSIV(open session in view)는 영속성 콘텍스트를 뷰까지 열어둔다는 의미입니다. 영속성 콘텍스트가 살아있으면 엔티티는 영속 상태로 유지될 수 있어, 뷰에서도 지연 로딩을 사용할 수 있어요. OSIV의 핵심은 뷰에서도 지연 로딩이 가능하도록 하는 것입니다. 가장 단순한 구현은 클라이언트 요청이 들어올 때 필터나 인터셉터에서 트랜잭션을 시작하는 방법인데요. 이를 트랜잭션 방식 OSIV라고 합니다. 하지만, 트랜잭션 방식 OSIV는 표현 계층에서도 엔티티를 수정할 수 있기 때문에 유지보수하기 어려운 코드를 만들 수 있습니다.트랜잭션 방식의 OSIV의 문제는 어떻게 풀어볼 수 있을까요? 🤔최신 방식의 OSIV는 트랜잭션 방식의 문제를 해결합니다...
- [로드맵] Internet2024-11-12 10:15:55백엔드 로드맵 과정을 밟아가며 기본적인 정보를 학습하려고 한다. How does the internet work?인터넷은 표준화된 프로토콜, 주로 TCP/IP를 사용하여 통신하는 상호 연결된 컴퓨터의 글로벌 네트워크이다.웹페이지를 요청하면 기기가 인터넷 서비스 공급자(ISP)를 통해 DNS 서버로 데이터 패킷을 보내면 DNS 서버에서 웹 사이트의 도메인 이름을 IP 주소로 변환한다. 그런 다음 패킷은 다양한 네트워크(라우터 및 스위치 사용)를 통해 대상 서버로 라우팅 되고 대상 서버에서 요청을 처리하고 응답을 다시 보낸다.이러한 왕복 교환을 통해 웹페이지, 이메일, 파일과 같은 데이터를 전송할 수 있어 인터넷을 글로벌 커뮤니케이션을 위한 동적이고 분산된 시스템으로 만든다. What is HTTP?HTTP..
- [Git] git push 하는데 HTTP 400 error??2024-10-21 21:53:05문제 상황원격 레포지토리에 .gif 파일 하나를 push 하니까 갑자기 아래와 같은 에러메시지가 떳다.Push failed Total 8 (delta 2), reused 0 (delta 0), pack-reused 0 RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 send-pack: unexpected disconnect while reading sideband packet the remote end hung up unexpectedly 이 오류는 Git에서 푸시를 시도할 때 발생하는 문제로, HTTP 400 에러는 잘못된 요청을 의미한다.찾아보니 레포지토리 url 연결이 잘못되어있거나 push 할 파일의 용량이 클 때 발생할 수 ..
- [1주차] 커밋(Commit) 컨벤션2024-10-16 19:15:31Git의 커밋 단위는 앞 단계에서 README.md 에 정리한 기능 목록 단위로 추가한다.Angular JS Git Commit Message Conventions을 참고해 커밋 메시지를 작성한다 1. 커밋 메시지 컨벤션의 필요성우테코에서 제공된 링크에서는 커밋 메시지 컨벤션의 규칙을 지켜야하는 이유를 세 가지로 이야기한다.1. script를 이용한 CHANGLOG.md 파일 자동 생성2. git bisect 를 이용한 중요하지 않은 커밋 무시3. 더 나은 이력 정보 제공 지금까지는 당연하게도 협업 또는 유지보수를 위해 커밋 메시지에 제대로 된 정보를 가독성 있게 담아야 한다고 생각했다.그런데 CHANGLOG.md 파일을 스크립트로 자동 생성 할 수 있다는 내용은 호기심을 자극했습니다.먼저, 어떻게 커밋..
- [트러블 슈팅] JwtFilter와 Security Config의 동작 순서2024-10-16 15:08:461. 문제 상황첫 번째 문제: 현재 JwtFilter에서 헤더에 토큰 유무와 유효성 검사를 통해 예외 처리를 하는 코드를 작성하였는데Security Config에서 설정한 화이트 리스트 api 들도 JwtFilter를 거치면서 토큰이 없는데 유효성 검사가 동작하게 되면서헤더에 토큰이 없는 회원 가입 상태에서도 에러가 던져졌다.해결 시도.addFilterBefore(new JwtAuthenticationFilter(jwtTokenProvider,objectMapper), UsernamePasswordAuthenticationFilter.class)인증필터 전에 JwtFilter를 실행시키도록 설정해서 그런가 하고 .addFilterAfter()로 실행해 보아도 결과는 같았다. 1. addFilterAfte..
- [트러블 슈팅] S3 HTTPS(443) 접근 문제2024-10-13 22:45:17문제상황S3에 올려둔 이미지 파일에 접근하는 로직을 구현 했었는데 개발서버에서는 접근이 안되는걸 확인로컬에서 테스트 결과 접근이 되는 것을 확인 추측현재 개발 서버가 라이트세일 내부에 구성되어 있음, 해당 라이트세일은 다른 팀원분이 관리하지만 s3는 내가 관리 중, 그렇기 때문에 혹시 EC2 보안그룹 설정에서 아웃바운드 규칙에 443 포트에 접근 허용이 안되어 있을거라 판단-> 하지만 얘기를 들어보니 라이트세일 자체에서 방화벽으로 모든 포트를 접근 허용해놨기 때문에 문제가 없다고 판단 해결도커 컨테이너를 한번 바꾼적이 있는데 이전에 쓰던 서버 컨테이너를 호스트모드가 아니라 브릿지네트워크로 컨테이너끼리 묶어놓기만해서 외부 api 호출이 안되었던 것-> 브릿지 네트워크로 묶어놓기만 했던 이유는 컨테이너 내부..
- [트러블 슈팅] ios랑 서버 연동 과정에서 401에러 발생2024-10-11 16:44:07requestHeader에 있는 AccessToken 을 받아오는 과정에서 401 에러가 발생해본 방법- requestHeader를 못받아오는지 확인 차 requestParam 으로 헤더 넘겨서 실행해봄 : X- 헤더에 Authorization: Bearer TOKEN 으로 되어있는데 공백 부분에서 인코딩 인식 문제인가 하고 Bearer- 으로 수정 : X 결론401 에러가 뜨려면 보통 토큰 인증 문제나 requestBody 쪽에서 문제가 있다는 건데헤더 쪽은 문제가 없는걸로 판단하여 Body를 살펴보니 문제를 발견하였다. 코드를 짤 때 Entity에 컬럼 길이를 따로 설정 안해놔서 디폴트 값으로 256자가 됐는데Json 코드 중 456자나 되는 값을 발견하였다.......다음부턴..length 설정을 ..