본문 바로가기
반응형

전체 글322

[Java] 입출력(I/O)과 버퍼(Buffer) 서론 ByteArrayOutputStream과 BufferedOutputStream의 차이점에 대한 질문을 받았다. 내가 Java의 입출력 시스템과 buffer에 대한 이해도가 떨어진다는 상태를 자각하게 되었다. 이를 공부하는 내용을 작성하려고 한다. 목차 stream이란? InputStream & OutputStream InputStreamReader & OutputStreamWriter buffer란? BufferedInputStream & BufferedOutputStream BufferedReader & BufferedWriter Java의 입출력 java에서의 입출력은 Stream을 통해 이루어진다. 1. stream이란? 데이터를 운반하는데 사용되는 연결 통로 stream 이름의 어원: 데이터.. 2022. 9. 5.
[우테코] 레벨3 인터뷰 우아한테크코스에서 진행되는 레벨 로그(모의 인터뷰)의 경험을 기록한 글입니다. 목차 1. 레벨 로그 2. 피드백 📚 레벨 로그 제출한 레벨 로그를 바탕으로 좀 더 디테일하게 풀어냈다. 프로젝트 이슈 모든 요구사항을 한 엔드포인트로 처리하는 방법 👉 https://yeonyeon.tistory.com/246 LocalDateTime.now() 테스트하기 👉 https://yeonyeon.tistory.com/258 외부 서비스에 종속적인 서비스의 테스트 👉 Classic TDD VS Mockist TDD 적용 기술 GitHub로 협업하기 issue, PR, projects 활용 👉 https://yeonyeon.tistory.com/247 PR draft로 리뷰 막기 👉 https://yeonyeon.ti.. 2022. 9. 5.
[IntelliJ] gradle project 생성 시 불필요한 파일들이 생기는 현상 IntelliJ에서 gradle project를 생성했는데 위와 같은 불필요한 폴더들이 막 생겨났다. 좀 더 정확히 말하자면 gradle project를 생성했을 때까지는 괜찮았는데 프로젝트를 build시키는 시점에서 이상한 폴더들이 생겨났다. 알고보니 Gradle user home이 제대로 설정되지 않아서 발생한 문제였다. 문제 원인은 Gradle user home이 프로젝트 경로로 설정되어 있어서이다. 해당 경로를 수정하면 해결된다. (아래에서 추가 설명) 그렇다면 위 폴더들은 왜 생겨나는걸까? project를 build시켜 gradle이 동작되면 gradle에 대한 캐시가 생긴다. 그래서 일반적으로는 프로젝트와 무관한 특정 위치에서 이 캐시들을 한꺼번에 관리한다. 이 위치는 별도로 지정하지 않았다면.. 2022. 9. 2.
OAuth vs OpenID 예제로 자주 등장하는 `줍줍`은 현재 진행되고 있는 프로젝트 명으로 슬랙 메시지를 백업해주는 서비스입니다. 이 글을 읽기 전에 인증과 인가의 차이를 알고 있다면 훨씬 이해하기 편합니다. 인증; authentication: 사용자의 신원을 확인 인가; authorization: (신원이 확인된 사용자에게) 자원에 접근할 수 있는 권한 부여 🧾 OAuth 🧾 인가 / authorization 서버 자원 소유자가 클라이언트에게 서버 자원에 대한 액세스 토큰 제공 ex: Slack이 줍줍에게 access token을 발급 해당 액세스 토큰을 통해 리소스 서버에 액세스 가능 ex: access token을 통해 줍줍이 Slack에게 사용자 정보 조회 요청 ✅ OAuth 1.0 vs OAuth 2.0 OAuth 2.. 2022. 8. 31.
[Java] 날짜, 시간 API 😎 서론 최근 LocalDateTime과 같이 날짜나 시간과 관련한 로직을 작성할 일이 많았다. ZoneOffSet? Instant? 부끄럽게도 뭐가 뭔지 모르고 사용했던 것들이 많아 이를 알아보는 시간을 가지려 한다.🙂 😊 Java의 날짜와 시간 API 🔹 time 패키지 ISO 기반 (24시간 시계 시스템 hh:mm:ss) 불변 + thread-safe 🔹 LocalDate / LocalTime / LocalDateTime 시간대 (ZoneOffset, ZoneRegion)에 대한 정보 미포함 LocalDate: 날짜에 대한 정보 LocalTime: 시간에 대한 정보 LocalDateTime: 날짜 및 시간에 대한 정보 `Local... `는 ZoneOffset과 ZoneRegion를 포함하지 않음 .. 2022. 8. 30.
[인프콘 후기] Hello INFCON! 제가 인프콘 다녀온 사람처럼 보이시나요? 🥰 네 맞습니다 🥰 🥳 참가 준비 🥳 사실 나는 인프콘에 떨어졌던 사람이다. 인프콘 신청이 오픈되자마자 바~로 신청을 했지만 아쉽게도 높은 경쟁률로 인해 낙첨되었다. 아쉬운 마음에 트위터에서 열리는 이벤트에 정성껏 참여했고 이번에는 당첨될 수 있었다. 😊 참가 전에 듣고 싶은 세션을 열심히 정리했다. 정리하면서 너무 빡빡한데? 이거 다 들을 수 있을까? 나 지금 대학교 새내기의 헤르미온느 시간표를 만드는건가...? 라는 생각을 했었다. (이 예상이 적중할 줄은...) 결과적으로 아래 세션 중에서 들은건 4개 뿐이었다. 왜냐면 인프콘에서 세션 외에도 준비한 이벤트가 정말정말 많았다. 세션은 나중에 유튜브로 올라오지만 이벤트는 여기서만 즐길 수 있다는 생각에... 이.. 2022. 8. 30.
[글또콘 후기] 2022 글또콘 😄 서론 8월 25일 글또콘을 다녀왔다.😄 마침 방학이겠다~ 설레는 마음으로 부담없이 참여했다. 도착하니 한 70명 정도? 많은 사람들이 모여있었다. 아는 사람이 거의 없던 터라 쭈뼛쭈뼛하며 백엔드 쪽 테이블에 합류했다. 총 4가지 발표가 진행되었는데 목차는 아래와 같다. (슬랙에서 공유해주셨던 이미지를 가져왔습니다 ㅎㅎ) 📕 1. 변성윤님의 삶(철학) 어디로 가야하나 '내가 잘 성장하고 있는가?'에 대한 고민 👉 내가 가는 길. 삶의 지도 만들어보기 과거, 현재 어떤 일들을 했는지 어떤 일이 나에게 영향을 주었는지 지도처럼 그려보기 자신을 되돌아볼 수 있음 현재, 과거를 통해 미래를 설계할 수 있음 깨달음이란 자신의 무지함의 정도를 깨닫는 것 야생의 학습 새로운 것을 빠르게 습득하고 하나씩 실행해보기 .. 2022. 8. 27.
[우테코/줍줍] 4차 스프린트 회고 개발 일지 리마인드 기능 개발 LocalDateTime.now() 테스트하기 Exception 패키지 구조 변경 ssh 명령어 편하게 쓰기 있었던 이야기 김범준님의 특강 마광휘님의 특강 써머, 브라운과 식사 타임 레벨3 마무리 외부 서비스에 종속적인 프로젝트 방학 계획 레벨4 계획 1. 개발 일지 🎉 💛 리마인드 기능 개발 나중에 고치자, 일단은 돌아가게 하자! 라는 마인드로 리마인드 기능을 개발했다. 10분마다 DB에서 리마인더 데이터를 조회하고, 데이터가 존재한다면 슬랙 메시지를 전송해주는 기능이다. 이때 10분마다 로직을 실행하도록 만들기 위해 Spring의 @Scheduled를 활용했다. (현재 Spring을 사용하고 있기 때문에 어노테이션으로 간단하게 만들었지만 Java의 Timer, Timer.. 2022. 8. 24.
ssh 명령어 편하게 쓰기 🤗 서론 나는 ssh 명령어 치는게 너무 귀찮다! 현재 진행하는 프로젝트에서는 백엔드 개발서버, 백엔드 운영서버, Jenkins 서버, SonarQube 서버 등등등 여러 인스턴스를 접속할 일이 많다. `ssh -i 키.pem ubuntu@IP주소`에서 key 경로를 입력하는 것도 인스턴스마다 IP 주소가 뭐였는지 찾는 것도 너무너무 귀찮았다. 우테코 크루인 봄이 편하게 쓰는 방법을 알려줬다. 🥰 😎 설정 이 방법은 Windows / Mac 상관 없이 사용 가능합니다. 1. ~/.ssh/config 파일 생성 vi 명령어 실행 직후 i를 눌러 편집 모드로 변경 하단의 Host ~~~ 내용 입력 후 esc를 눌러 편집 모드 종료 :wq 를 이용해 파일 저장 후 나가기 이전에 설정한 적이 없다면 파일이 존재.. 2022. 8. 17.
반응형