sosow0212의 등록된 링크

 sosow0212로 등록된 네이버 블로그 포스트 수는 868건입니다.

E-Market #1 - 프로젝트 시작 및 템플릿 자동화 및 CI 스크립트 작성하기 [내부링크]

서론 어떤 프로젝트인지 템플릿 자동화 Github Actions를 통한 CI 스크립트 작성 안녕하세요. 오랜만에 블로그 글을 작성하는 것 같습니다! 그동안 CS와 알고리즘 공부하느라 요즘 스프링에 소홀했습니다. 오랜만에 캡스톤에서도 이어서 사용할 프로젝트를 하나 하려고 생각을 했습니다. 어떤 주제를 할까 고민하다가 아주 예전에 블로그 포스팅으로 올렸던 Community 프로젝트의 연장판인 프로젝트가 좋겠다고 생각했습니다. Community 프로젝트의 연장선인 프로젝트를 만들고자 하는 이유는 예전에 만든 프로젝트의 아쉬움과 더불어서 여러가지 기술적 챌린지도 시도해보고, 기존 Community 프로젝트를 블로그에서도 많은 사람들이 참고를 해주셨기 때문에 도움이 될 것 같아서 생각해봤습니다. (기존 프로젝트는 아래 링크를 따라서 쭉 보시면 어떤 프로젝트였는지 확인하실 수 있습니다!) https://github.com/sosow0212/community https://blog.naver.c

E-Market #2 - 테스트 격리 자동화 등등 여러가지 Helper 추가 및 QueryDSL 및 종속성 변경하기 [내부링크]

안녕하세요. 지난 번에 이어서 오늘도 마찬가지로 프로젝트를 진행하기 위한 뼈대를 만들었습니다. 테스트에 도움이되는 Helper 클래스들 추가와 종속성 일부를 변경해봤습니다. 작업물은 아래 PR 링크로 확인하실 수 있습니다! https://github.com/sosow0212/electronic-market/pull/4 feat: 종속성 변경 및 테스트 자동화 유틸 생성 by sosow0212 · Pull Request #4 · sosow0212/electronic-market Summary Querydsl 설정 추가 Spring 3.x에서도 작동되도록 Jasypt 라이브러리 버전 변경 통합 테스트 환경에서 테스트 격리 자동화하는 클래스 추가 영속성 계층 통합 테스트를 위한 테스트 격리 어노테이션 추가 RestDocs prettyPrint와 클래스 명을 자동으로 해주는 기능 추가 컨트롤러 테스트에서 컨텍스트 ... github.com 테스트 격리 자동화 등등 테스트 관련 Helper

E-Market #3 - 로그인 구현과 고민한 부분, 새로운 목표 [내부링크]

안녕하세요. 오늘은 로그인 기능 구현을 진행했습니다. 진행하면서 고민 점들이 몇 가지 있었는데 진행사항과 함께 적어보도록 하겠습니다. 진행한 작업은 아래 링크에서 확인하실 수 있습니다. https://github.com/sosow0212/electronic-market/pull/7 feat: 로그인 기능을 구현한다 by sosow0212 · Pull Request #7 · sosow0212/electronic-market Summary Member 도메인 생성 회원가입 및 jwt 로그인 기능 구현 HandlerArgumentResolver 구현 테스트 및 문서 작성 c More 외부 라이브러리 추가 시에 회원 가입 후 메일 전송이 늦어지는 경우는 어떻게 처리할 지 고민 필요 -> 트랜잭션이 길어지는 문 close #6 github.com Member 도메인 설계 및 Auth 기능 구현 간단 설명 1번 과정을 진행하면서 어떤 고민을 했는지 새롭게 추가하고 싶은 기능과 해결해야할 부분

E-Market #4 - 가입 메일 이벤트 처리 고도화 및 실패 메일 다루기 [내부링크]

안녕하세요. 지난 번에 이어서 오늘은 가입 메일 처리를 다뤄보았습니다. 먼저 회원가입 시 환영 메일로 쿠폰을 보내게 됩니다. 여기서 문제점은 다음과 같습니다. 회원가입 시 AuthService 와 MailService 참조 문제 (응집도 저하) 이벤트로 분리 시에 회원가입과 메일 전송 기능이 동기처리가 되어서 트랜잭션이 길어지는 문제 만약 외부 기능인 메일 전송 기능이 오래 지연된다면 사용자도 결과를 오래 기다려야한다. 메일을 비동기로 처리한다면 메일 전송이 실패했을 땐 어떻게 재전송을 해야하는지 이런 문제점들을 오늘은 어떻게 해결했는지 작성해보도록 하겠습니다. 틀린 내용이 있을 수도 있다면 댓글로 피드백 부탁드립니다! 작업내용은 아래 링크에서 확인하실 수 있습니다. https://github.com/sosow0212/electronic-market/pull/9 ++ 24.01.19 트랜잭션 전파 설정을 변경하였습니다. https://github.com/sosow0212/2024-e

E-Market #5 - 게시글 기능 구현과 도메인 서비스로 이미지 처리하기 [내부링크]

안녕하세요. 오늘은 사용자들끼리 소통할 수 있는 게시글 기능을 구현했습니다. 게시글에 필요한 기능은 기본적인 포스팅을 할 수 있고, 댓글들과 이미지들 그리고 좋아요 기능이 있어야합니다. 이번엔 [게시글, 이미지] 기능만 구현했고, [좋아요, 댓글]은 따로 구현할 예정입니다. 어떤 고민을 했고, 어떤 식으로 게시글과 이미지를 구현했는지 알아보도록 하겠습니다. 작업한 내용은 해당 링크에서 확인하실 수 있습니다! 틀린 정보는 피드백 부탁드립니다 :) https://github.com/sosow0212/2024-electronic-market/pull/14 feat: 게시판 기능을 구현한다 by sosow0212 · Pull Request #14 · sosow0212/2024-electronic-market Summary Board 테이블 생성 Image 테이블 생성 게시글 기능 구현 c More 이미지 도메인 서비스로 책임 분리 close #11 github.com 고민한 점 사실 이번

E-Market #6 - 좋아요 기능의 동시성 문제 해결하는 여러가지 방법 [내부링크]

안녕하세요. 저희 서비스 중 게시글의 추천 기능이 있습니다. 추천 기능은 쉽게 인스타그램 Like 버튼과 비슷하게 구현하고 했습니다. 사용자가 한 번 누르면 좋아요 처리가 되고, 한 번 더 누르면 취소 처리가 되도록 구현을 하였습니다. 오늘은 해당 기능을 구현하면서 겪은 동시성 문제와 어떻게 해결하고 다른 문제점은 없는지 확인해보도록 하겠습니다. 작업한 PR은 아래 링크에서 확인하실 수 있습니다 :) https://github.com/sosow0212/2024-electronic-market/pull/21 refactor: 게시글 좋아요 동시성 처리를 한다 by sosow0212 · Pull Request #21 · sosow0212/2024-electronic-market Summary 게시글 추천 역정규화 좋아요 기능 API 구현 추천 동시성 제어 구현 c More close #13 github.com 틀린 내용이 있을 수 있는데 언제든지 피드백은 환영입니다 ! 도메인 설명 동

E-Market #7 - 상품의 조회수 치팅 방지 구현하기 [내부링크]

안녕하세요. 일단 기능을 빠르게 구현하고 성능 개선을 진행할 생각인데 할 것이 아직 많이 남았네요.. 지금까지 올라온 PR의 코드는 전반적으로 뼈대코드라고 생각해주시면 될 것 같습니다! 일단 오늘은 상품의 조회수 기능을 구현했습니다. 조회수 증가만을 구현하는 건 쉽지만 부가적으로 신경쓸 부분들이 있었습니다. 만약 한 명이 같은 상품을 반복적으로 들어가면 조회수가 계속 증가한다. (치팅) 많은 사용자로부터 동시 요청이 오면 조회수에서 동시성 문제가 생긴다. 2번은 지난 포스팅에서 다뤘으므로 오늘은 1번 문제를 집중적으로 어떻게 해결했는지 작성해보도록 하겠습니다. 피드백은 언제나 환영입니다 :) 해당 PR 링크입니다. https://github.com/sosow0212/2024-electronic-market/pull/29 feat: 상품의 조회수 기능 및 치팅 방지 기능 구현 by sosow0212 · Pull Request #29 · sosow0212/2024-electronic-m

E-Market #8 - Jenkins를 이용한 CI/CD 파이프라인 구축하기 1편 [내부링크]

안녕하세요. E-market 프로젝트에서 개발이 어느정도 진행이 됐고, 문서화 공유를 위해서 슬슬 배포를 진행해야했습니다. 그래서 어떤 과정으로 배포하였는지 적어보도록 하겠습니다. 1편에서는 Jenkins를 이용하여 빌드하여 Jar 파일을 Prod 서버에 전송하고 실행시키는 과정을 다룹니다. 서버 아키텍처 서버는 AWS EC2 인스턴스를 2대 사용하고, 각각 Infra, Prod 서버로 사용하게 됩니다. Infra 서버에서는 Prometheus, Grafana를 이용한 모니터링 및 Jenkins를 띄우고 Prod 서버에서는 서버를 실행시킬 목적으로 사용합니다. 그림으로 보면 위와 같습니다. 플로우 깃허브 특정 branch에 push가 일어난다. Infra 서버에 Jenkins에서 webhook을 받는다 Jenkins에서 git clone을 한 후, 빌드를 하고 Jar로 만들어서 Prod 서버로 보낸다. Prod 서버에서 Jar를 실행한다. (추후 도커로 변경 예정) Prometheu

Chat-Univ API Server #3 - 통합 테스트 환경에서 테스트 격리와 테이블 초기화 자동화하기 [내부링크]

안녕하세요. 오늘은 사이드 프로젝트로 제작하고 있는 Chat-Univ 프로젝트에 테스트 격리를 진행했습니다. 우테코에서 진행하고 있는 Car-ffeine 프로젝트에도 적용하고자 미리 시도를 해봤습니다. 코드는 아래에서 확인하실 수 있습니다. https://github.com/sosow0212/ChatUniv/tree/feat/test-separation {"payload":{"allShortcutsEnabled":false,"path":"","repo":{"id":650064466,"defaultBranch":"master","name":"ChatUniv","ownerLogin":"sosow0212","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-06-06T09:00:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6321348.

우테코 Car-ffeine #3 - 주기적인 데이터 요청으로 받은 데이터를 효율적으로 업데이트 및 삽입하기 [내부링크]

안녕하세요~ 우테코 카페인 팀의 제이입니다. 오늘은 카페인 팀의 프로젝트를 진행하면서 어떤 문제를 겪고 해결했는지 적어보도록 하겠습니다. * 배우는 단계이다 보니 틀린 부분이 있을 수 있는데, 피드백 부탁드립니다 :) https://github.com/woowacourse-teams/2023-car-ffeine GitHub - woowacourse-teams/2023-car-ffeine: 실시간 전기자동차 충전소 지도 및 사용 통계 조회 서비스️ 실시간 전기자동차 충전소 지도 및 사용 통계 조회 서비스️. Contribute to woowacourse-teams/2023-car-ffeine development by creating an account on GitHub. github.com 먼저 글을 쓰기 전에 문제 상황에 대해 간단하게 말씀드리겠습니다. 문제 상황 카페인 팀에서는 전기차 충전소 공공 API를 활용하여 충전소의 혼잡도 제공 및 여러 서비스를 제공합니다. 이런 서비

[우테코] 레벨3 3주차 생활기 [내부링크]

안녕하세요. 벌써 레벨 3이 시작되고 3주가 지났습니다. 그 사이에 첫 번째 데모데이도 잘 마쳤고, 피드백을 바탕으로 부족한 부분은 설문조사도 하고 회의도 하면서 팀의 방향성 또한 잘 잡혀져 가는 것 같습니다. 레벨 3에 오면서 느낀 점은 미션이 사라지고, 프로젝트를 진행하는 과정에서 스스로 모든 것을 직접 확인해보면서 개발을 해야해서 자유롭지만 그만큼 책임을 져야한다는 점입니다. 또한 지금은 리뷰어가 아닌 크루들끼리 코드리뷰를 하면서 개발을 진행하고있는데요. 저 또한 누군가에게 리뷰어가 되기도 하는 이런 상황에서 얕은 지식을 바탕으로 리뷰한다면 상대에게는 큰 도움이 되지 않을 것 같습니다. 결국 개발과 코드리뷰 모두 크루들의 재량으로 이뤄지기 때문에 더욱 깊은 공부를 할 필요가 있다고 느꼈습니다. 정해진 가이드라인이 없어지다보니 지금까지 어영부영하기도 하고 한 부분에 집중하지 못하고 여러가지를 얕게 보고 공부했습니다. 이런 방법으로는 한계가 있다고 생각이 드는 한 주였습니다. 단순

우테코 Car-ffeine #4 - 카페인 팀의 CI/CD [내부링크]

안녕하세요~ 카페인 팀의 제이입니다. 오늘은 저희 팀에서 CI/CD는 어떻게 진행되는지 작성하겠습니다. https://github.com/woowacourse-teams/2023-car-ffeine GitHub - woowacourse-teams/2023-car-ffeine: 실시간 전기자동차 충전소 지도 및 사용 통계 조회 서비스️ 실시간 전기자동차 충전소 지도 및 사용 통계 조회 서비스️. Contribute to woowacourse-teams/2023-car-ffeine development by creating an account on GitHub. github.com CI (지속적 통합) 카페인 팀에서는 지속적 통합 즉 CI를 진행하기 위해서 위에 사진과 같이 Github Actions를 사용합니다. main, develop 브랜치에 Push, Pull Request 요청이 들어간다면 이벤트가 발생하고, Github Actions를 통해 저희가 작성해둔 스크립트가 실행

우테코 Car-ffeine #5 - 필터링 기능 구현과 인덱스 이용한 조회 속도 개선하기 - 1 [내부링크]

안녕하세요~ 우테코 카페인 팀의 제이입니다. 오늘은 필터링 기능 구현 및 인덱스를 이용한 조회 속도 개선하는 작업을 진행했습니다. 모든 코드는 아래 팀 깃허브에서 확인하실 수 있습니다. https://github.com/woowacourse-teams/2023-car-ffeine/pull/218 feat: 서버에서 충전소 정보들을 필터링 하는 기능을 만든다 by sosow0212 · Pull Request #218 · woowacourse-teams/2023-car-ffeine Summary 충전기 필터링 기능 구현, 인덱스 설정, 몇 가지 객체 추가를 했습니다. c️ Actual Time of Completion c More 현재 좌표에 해당하는 전체 충전소를 조회하는 기능에 필터링 기능이 추가 되었습니다. 필터는 [충전소 회사 이름, 충전 타입, 충전 용량] 으로 세 가지입니다. JPQL로 2^3 = 8개의 ... github.com 요구 사항과 기능 구현 목록 카페인 팀은 전

[우테코] 3차 데모데이까지 [내부링크]

정말 정신 없이 보내고 있는 하루입니다. 최근에는 바쁘다는 핑계로 회고록을 작성하지 못했습니다. 2월 우테코 시작부터 회고록을 매주 빼먹지 않고 썼는데, 역시 한 번 빼먹을 땐 어려웠지만 그 다음부터는 쉬운 것 같습니다. 벌써 3차 데모데이까지 마무리가 되었습니다. 우테코에 들어오고나서부터 가장 바빴고, 가장 빠르게 지나간 레벨이 있다면 지금인 것 같습니다. 방향이 잡히지 않았던 초반에 비해서 지금은 비교적 어떤 것을 학습할지 방향이 잡힌 것 같습니다. 요즘은 데이터베이스 공부를 주로 하고 있습니다. 예전에는 이해를 못해서 "언젠가 미래의 내가 하겠지"라고 생각하고 넘겼던 것들을 모두 지금 하고 있습니다. 성장을 했고 용어를 알아듣는다는 소리겠죠? 그렇게 재미 없었던 데이터베이스가 또 하다보니깐 재밌는 것 같습니다. 락과 인덱스에게 매일매일 부셔지고 있지만, 언젠가는 큰 힘이 될 걸 알기에 열심히 하고 있습니다. 카페인 팀의 프로젝트도 잘 만들어가고 있는 것 같고, 매주 새로운 토픽

[우테코] 이번 주 개발 일기 [내부링크]

벌써 다음주면 레벨3가 끝납니다 c 정말 시간은 왜이리 빨리 갈까요? 저희 팀은 이번 주에 모든 기능 구현을 완료하자고 얘기를 했습니다. 그래서 이번 스프린트에서 제가 구현한 부분에 대해서 간단하게 작성해보고자 합니다. 이번에 저희는 사용자 개인화가 필요해서 크게 세 가지의 기능을 만들었습니다. 존재하는 전기차 차량 등록 및 유저의 차량 선택 기능 구현 전기차 별로 기본 필터 값을 세팅하는 기능 구현 사용자가 원하는 커스텀 필터셋 기능 구현 https://github.com/woowacourse-teams/2023-car-ffeine/pull/464 feat: 차량 관리 기능과, 유저의 차량을 등록할 수 있는 기능을 구현한다 by sosow0212 · Pull Request #464 · woowacourse-teams/2023-car-ffeine Summary 차량 개인화를 위해 Car 테이블을 만들었습니다. 차량 정보는 어드민 페이지에서 추가할 수 있습니다. 또한 차량에 해당하는

우테코 Car-ffeine #6 - EC2 서버 추가와 동시에 Dev, Prod 환경 분리하기 [내부링크]

안녕하세요. 카페인 팀의 제이입니다. 오늘은 저희가 EC2 인스턴스를 받으면서, 어떻게 dev, prod 배포 환경을 분리했는지 적어보려고 합니다. 기존 카페인 팀의 EC2 구조는 여기서 보실 수 있습니다. 기존 상황과 문제점 카페인 팀에서는 기존에 3대의 EC2 인스턴스가 있었습니다. 각각 [infra, dev, db] 역할을 하는 인스턴스로 존재하고 있었습니다. 저희는 release 브랜치를 통해 dev서버에 배포를 한 후 검증이 된다면, 실제 사용자들이 사용하는 prod 서버에 배포하고 있습니다. 문제는 기존의 3대의 인스턴스 중에서 dev 서버에 있었습니다. 기존 dev 서버는 총 4개의 서버를 배포하고 있었고 배포하는 서버는 다음과 같습니다. [prod-BE, prod-FE, dev-BE, dev-FE] 그리고, 기존 dev 서버에서는 환경을 분리해주기 위해서 Nginx를 통해서 포트 포워딩은 다음과 같이 해주었습니다. prod-BE = 8080 prod-FE = 3031

[우테코] 레벨 3가 마무리 하면서 [내부링크]

지난주에 우테코 레벨 3가 마무리 되었습니다. 원래 같았으면 바로 회고록을 작성했을 것 같지만, 다른 일이 있어서 바로 작성하지 못했습니다. 우테코를 들어올 때 가장 기대했던 프로젝트가 끝났습니다. 레벨 3 기간을 저는 가장 기대 했었습니다. 막상 지금 이 시기에 오니깐 그때는 보지 못했던 기술적인 것들도 있지만, 그래도 지금 생각해보면 작년에 비해 매우 빨리 저는 많이 성장한 것 같습니다. 기술적인 깊이로도, 튜닝할 게 보이는 지금 시각으로서도 엄청 많이 성장한게 느껴집니다. 단순히 누군가 공부를 시켜서 그런 것이 아닌 같은 크루들과 열심히 해서 배운 것도 많고 시각이 넓어진 것이겠죠. 작년에 저는 단지 이런 모든 것이 우테코만 들어가면 해결 되는 줄 알았고, 우테코만 들어가면 이렇게 되는 줄 알았습니다. 지금 생각해보면 그때 한 생각은 건방진 생각인 것 같습니다. ㅎㅎ 다시 생각해보면 좋은 크루들 덕분이 아닐까요? 전반적으로 다들 열심히하는 좋은 환경 덕분에 지금 보면 많이 성장

우테코 Car-ffeine #7 - 혼잡도 조회 속도를 개선해보기 [내부링크]

안녕하세요. 카페인 팀의 제이입니다. 저희 서비스에서는 충전소의 요일과 시간대 별로 충전소 혼잡도 정보를 제공을 차별적인 기능으로 제공하고 있습니다. 이를 구현하기 위해서 공공 데이터에서 정보를 수집하고있습니다. 혼잡도를 조회하기 위해서는 약 23만 건의 충전소 * 7일 * 24시간 * 2(급속, 완속) = 약 8000만 건의 데이터 중에서 조회를 하는 형식으로 되어있습니다. 너무 많은 데이터가 있다보니 조회 속도가 많이 느린데요. 오늘은 이를 어떻게 개선했는지 작성해보도록 하겠습니다. 참고로 해당 글의 성능 측정에 이용한 데이터의 수는 약 20만 건입니다. 저희 서비스 코드는 아래 깃허브에서 보실 수 있습니다. https://github.com/woowacourse-teams/2023-car-ffeine GitHub - woowacourse-teams/2023-car-ffeine: 실시간 전기자동차 충전소 지도 및 사용 통계 조회 서비스️ 실시간 전기자동차 충전소 지도 및 사용

우테코 Car-ffeine #8 - 서비스를 직접 써보고 개선해보기 [내부링크]

안녕하세요! 카페인 팀의 제이입니다. 카페인 서비스를 배포를 하고 여러 사이트에 홍보를 많이했습니다. (혹시 카페인 팀의 서비스가 궁금하다면?! https://carffe.in/) 첫 번째 배포 후 초기 피드백은 느리다는 점이었고, 이 부분은 프론트와 함께 작업을 하며 실사용이 가능한 정도로 개선을 했고, 다시 한 번 홍보 후에 피드백을 받았습니다. 두 번째 피드백에서는 저희가 예상하지 못한 부분들도 많이 있었습니다. 사용자 관점을 많이 고려하고 만들었다고 생각해도 그러지 못했던 것 같습니다. 아무래도 저희는 전기차주가 아니기 때문에 실질적인 사용자 입장에서의 불편함과 어려움을 알 수 없었던 것 같습니다. 저희 팀은 개발자 관점이 아닌 사용자 입장에서 경험을 해보고자 짧은 전기차 여행을 다녀왔습니다. 짧은 전기차 여행이었지만 어떤 부분을 느꼈고, 어떻게 개선을 하고자 하는지 작성해보도록 하겠습니다 해당 글은 짧은 여행기와 개선기를 다루고 있습니다. 자세한 여행 기록기가 궁금하시다면

우테코 Car-ffeine #9 - 카페인 팀의 무중단 배포 [내부링크]

안녕하세요! 카페인팀의 제이입니다. 저희 카페인 팀에서 무중단 배포를 진행했습니다. 어떤 과정으로 진행을 했는지 작성해보도록 하겠습니다! 기존 배포 방식과 문제점 먼저 카페인 팀의 기존 배포 방식은 다음과 같습니다. Target branch에 push가 되면 Github Actions가 작동합니다. Target branch의 소스 코드가 빌드되어서 Docker Hub에 올라가게 됩니다. Github Actions의 self-hosted runner를 통해 infra 서버에서 prod 서버로 접근하여서 기존에 띄워진 서버를 다운 시킵니다. Docker Hub에 업로드한 Docker image를 pull해서 서버를 가동시킵니다. 이런 과정으로 배포 스크립트가 작성되어 있습니다. 하지만 이 방법은 기존 서버를 다운 시키고 새로운 서버를 띄울 때 다운 타임이 존재한다는 문제점이 있습니다. 사용자 입장에서는 잘 사용하고 있는데 갑자기 서비스가 작동되지 않는다면 서비스에 대한 신뢰성이 낮아질

[우테코] 뒤늦은 레벨 4 마무리 회고록과 전환 면접 [내부링크]

우아한테크코스의 거의 마무리 단계인 레벨 4가 마무리 되었습니다. 레벨 4 기간동안은 프로젝트 리팩토링 기간이었습니다. 하지만, 레벨 3과 다르게 프로젝트를 진행하는 건 팀바팀의 자율이었고 그보다는 미션들을 위주로 진행했던 시간이었습니다. 톰캣, MVC, JDBC라이브러리 구현에 이어서 레거시 코드 리팩토링 미션까지 너무나도 재밌게 수행했던 기간이었습니다. 특히 레거시 코드 리팩토링 미션에서는 의존성 분리 기법도 많이 배울 수 있었고 리뷰이였던 테오 덕분에도 많이 배울 수 있어서 진짜 재밌게 공부했던 것 같습니다. 그리고 미션 외에도 최종 데모데이가 끝나면서 카페인 팀의 프로젝트도 마무리가 되었습니다. 카페인 편리한 전기차 충전소 지도 carffe.in 프로젝트를 통해서 너무나도 많은 것을 배웠고, 팀원들 덕분에 재밌게 진행해서 기억에 많이 남을 것 같습니다. 레벨 4가 끝나고 본격적으로 레벨 5인 취업 기간을 맞이했습니다. 졸업이 남아있기에 전환 면접을 내년으로 미뤘습니다. 미루면

[우테코] 우아한테크코스 수료 [내부링크]

작년 이맘쯤 최종 코딩테스트를 봤던 게 새록새록 한데 벌써 수료를 했습니다. 사실 수료는 2주 전쯤 했지만, 귀차니즘으로 오늘에서야 블로그를 작성하게 됐습니다! 약 1년 동안 우아한테크코스 활동을 하면서 정말 너무 많은 것을 배울 수 있었습니다. 클린코드, 테스트, 객체지향, 성능 개선 등등 좋은 교육 환경에서 다양한 사람들과 공부를 할 수 있고 프로젝트를 같이 한 경험들은 너무 소중했고 이로 인해 큰 성장을 했다고 생각합니다. 레벨 1,2 때 미션하느라 새벽까지 키보드를 뚜드렸던 것도, 데일리 미팅을 진행했을 때에도, 점심마다 팀원들과 커피 내기를 한 것도 너무나도 즐겁게 공부하고 재밌었던 한 해였습니다. 예전에 다른 기수의 수료 포스팅들을 보고 언젠가 나도 쓸 수 있을까 라는 생각을 많이 했었습니다. 그런 생각이 이뤄져서 오늘에서야 수료 포스팅을 작성할 수 있어서 기분이 싱숭생숭 합니다c 협력 c️ 우테코에서 가장 좋았던 문화였습니다. 미션에서 페어 프로그래밍을 진행하면서 정말

[Spring] Rest Docs로 API 문서를 관리해보자 [내부링크]

백엔드 서버 개발을 하다보면 API 명세서를 관리할 일이 생깁니다. 누군가 우리의 서버 API 명세서를 보고 개발을 할 수도 있고, 추가적인 혹은 제거할 기능을 문서를 보고 결정하기도 합니다. 따라서 문서를 최신화하면서 관리해주는 것은 중요한데요. 오늘은 이 문서 관리를 할 수 있는 Rest Docs에 대해 알아보겠습니다. Rest Docs 알아보기 전에 Swagger vs RestDocs 자바 진영에서 문서 관리할 수 있는 방법은 많지만, 크게 Swagger, Rest Docs 이렇게 두 가지를 많이 사용하는 것 같습니다. Rest Docs와 Swagger의 차이점을 한 번 간단하게 알아보고 Rest Docs 설명으로 넘어가도록 하겠습니다. Swagger 스웨거는 위에 사진과 같이 어노테이션을 추가해주면서 문서를 만들어줄 수 있습니다. Rest Docs와 다르게 간단하게 어노테이션만 추가해주면 자동으로 문서가 생성되기 때문에 큰 시간을 들이지 않고 문서화를 할 수 있습니다. 하지만

[우테코] 레벨2 6주차 회고록 - 지하철 미션 2단계 (Event, Cache으로 성능 개선하기 / LifeCycle) [내부링크]

늦은 6주차 회고록입니다. 6주차에는 지하철 미션 2단계를 진행했습니다. 다익스트라 라이브러리를 이용해서 역과 역 사이의 최단 경로를 반환해주는 API가 추가 되었습니다. https://github.com/woowacourse/jwp-subway-path/pull/113 [2단계 - 경로 조회 기능] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #113 · woowacourse/jwp-subway-path 에단 안녕하세요! 제이입니다. 이번 step2를 진행하면서 최단 경로를 찾는 API를 구현하였습니다. 먼저 처음에는 최단 거리에 해당하는 역들만 출력해주었습니다. ex. 잠실역, 잠실새내역, 종합운동장역 .. 하지만, 사용자들에게 역 이름만 반환해준다면, 환승 정보를 알기 힘들고, id 값으로 역 조회 같은 기능도 구현할 수 있다고 생각해서 "stat... github.com 성능 개선 이야기 이번 미션에서는 다음과 같은 문제점이 있었습니다.

[배포] 스프링 서버를 배포 및 쉘 스크립트로 최신화 및 배포 자동화 해보기 (https, nginx) [내부링크]

안녕하세요. 최근에 우테코에서 미션을 하면서 배포를 했는데, 오늘은 배포 과정에 대해 적어보도록 하겠습니다. 대략적인 목차는 다음과 같습니다. EC2 인스턴스 생성 - ubuntu (생략) EC2 서버 설정 쉘 스크립트 작성 (배포 자동화) 도메인 발급 SSL 인증서 발급 & Nginx로 서버 Https 설정하기 스프링 서버 CORS 설정 EC2 인스턴스 생성하기 (이 부분은 자료가 많기에 짧게 설명하고 넘어가겠습니다! 진행은 ubuntu 22.0.4 기준) EC2 인스턴스를 생성해줍니다. https://blog.naver.com/sosow0212/222832944678 [AWS] EC2 서버 임대 및 Mac으로 접속하기 / EC2 서버와 방화벽 [AWS] EC2 서버 임대 및 Mac으로 접속하기 / EC2 서버와 방화벽 AWS EC2 서버 임대하기 AW... blog.naver.com (참고) 서버나, 옵션은 개인에 맞게 선택합니다. EC2 서버 설정 EC2 서버로 들어와서 Tim

[개발 일기 #30] 5월의 개발 공부 : 협업과 6월의 계획 [내부링크]

벌써 5월도 끝이 났네요. 이번 달은 정말 빠르게 정신없이 지나간 것 같습니다. 여러가지 미션을 하면서 적용해본 기술들도 많고 새로운 것들을 정말 많이 배웠습니다. 하지만 아직은 사용법만 알고, 깊이 있게 공부하지 못한 것들이 조금 쌓여있어서 하나하나 공부하려고 계획하고 있습니다. 5월달에는 우테코에서 지하철 미션과 함께 장바구니 협업 미션을 진행했습니다. 장바구니 미션은 프론트엔드 크루들과 같이 진행했는데 되게 재밌었습니다. 다만 저는 2차 미션 진행 기간동안은 예비군이 잡혀서 가장 중요할 때 정작 참여하지 못해서 팀원들에게 많이 미안했습니다 ㅠ.ㅠ 배포를 하면서 배포 스크립트도 처음 작성해보고, 웹 엔진도 공부하고 정말 많은 것을 배운 것 같습니다. 뭔가 타 분야를 공부하는 느낌이랄까 저에게 배포는 개발과는 살짝 다른 느낌으로 다가오는 것 같습니다. 그래도 재미있게 진행해서 기분 좋은 경험이었습니다. 6월에는 약 2주간 우테코에 출근하지 않기 때문에, 어떤 것을 공부할지 계획을

[우테코] 레벨2 7~8주차 회고록 - 장바구니 협업 미션 피드백 정리 [내부링크]

7~8주차는 한 번에 올리게 됐습니다. 이번 장바구니 미션은 프론트엔드와 협업으로 진행했습니다. 따라서 1단계 미션에서는 뼈대코드 분석 및, CORS 에러를 해결하고 서버를 배포하는 것이 목표였습니다. 배포 과정에서는 CI/CD를 고려하기도 했고, 여러가지 로깅을 위한 전략을 택해보기도 했습니다. 굉장히 유익했던 것 같습니다 :) 2단계 미션은 이제 재화 관련 기능을 추가하는 건데, 이 미션을 진행하면서 받은 피드백을 정리해보도록 하겠습니다. https://github.com/woowacourse/jwp-shopping-order/pull/9#event-9465035836 [2단계 - 주문 기능 구현] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #9 · woowacourse/jwp-shopping-order 안녕하세요 웨지! 먼저 이번 2단계 미션 진행 기간이랑 예비군 기간이 겹쳐서 상대적으로 느릴 수 있는 점 양해 부탁드리겠습니다! 그래도 최

[우테코] 레벨2 회고록과 성장일기, 그리고 늦게 올리는 테코톡 후기 및 영상 [내부링크]

벌써 우테코 레벨2가 마무리 됐습니다. 전체 기간 중에 절반이 지나갔는데 참 빠른 것 같습니다. 저번에도 레벨 인터뷰가 마치고 뜬 시간에 레벨1 회고록을 쓴 것이 생각나네요. 이번 레벨 인터뷰는 저번과 다르게 말도 제대로 했고, 개선된 모습으로 인터뷰를 진행해서 마음이 편합니다. 하여튼 메타인지의 중요성을 이번에도 느끼게 됐고, 말하는 연습을 했던 게 도움이 됐음을 느꼈습니다. 테코톡 테코톡 발표는 레벨 1때 했고, 영상은 레벨 2 초반에 올라왔는데, 그땐 너무 바빠서 회고를 하지도 못했습니다. 지금이라도 남겨봅니다.. ㅎㅎ 테코톡은 레벨 1 기간 초반에 진행했습니다. 처음에는 테코톡을 빠르게 하고 끝내자라는 생각도 있었고, 마침 주제가 '단위 테스트'였어서 바로 선정했습니다. 공교롭게도 발표 날짜를 보니 제가 전체 백엔드 크루 중에서 첫 순위로 발표를 하게 됐습니다. 그냥 10분동안 자유롭게 주제에 대해서 발표를 하면 되는데 이게 준비 과정에서 참 막막했습니다. 크루들은 발표 시점

Chat-Univ API Server #1 - 기획과 Auth API 작업 [내부링크]

프로젝트 기획 최근에 프로젝트를 하나 해야겠다고 생각을 했습니다. 여러가지 기능이 있지만, 일단 한 문장으로 정리하자면 대학교를 대상으로 실시간 검색어 및 여러가지 기능을 제공하는 서비스입니다. 나중에 자세히 올리겠지만, 여러 대학교를 대상으로 진행하는 프로젝트인만큼 적지만 그래도 트래픽은 받을 수 있을 거라고 생각합니다. (사실 희망입니다 ㅠ.ㅠ) 서버 API쪽은 제가 리드를 하면서 학과 동기 3명을 구했습니다. 친한 친구들인데 같은 방향으로 성장하고 있어서 이번 프로젝트로 같이 성장했으면 좋겠습니다~ 그리고 프론트엔드 서버 개발하시는 분들은 예전에 같이 프로젝트한 형의 소개로 같은 학교에 다니시는 3분을 구했습니다. 전반적인 기획과 리드를 하기 때문에 설레기도 하지만 한편으로는 부담감도 있습니다. 그래도 많은 성장을 할 수 있을 것이라고 생각해서 열심히 해보려고 합니다. 어떻게 개발 할까요? 1. 서로 무조건 존중하는 분위기로 진행하기로 했습니다. 2. 우테코에서 코드리뷰로 정말

Chat-Univ API Server #2 - Member API, Board API, 테스트 중복 제거, 코드 리뷰 [내부링크]

안녕하세요. 사이드 프로젝트로 진행하고 있는 Chat-Univ API Server에서 최근에 Member & Board API를 추가했습니다. 또한, Conflict 방지를 위해 도메인 별 Exception과 Handler 관리 및 Mock 테스트 중복 코드 제거를 했습니다. 이에 대해 간단하게 다뤄보도록 하겠습니다. 이번주차까지는 몸풀기 단계로, 간단한 API를 구현하며 같이 진행하는 친구들의 코드 리뷰를 중심으로 하고 있고, 뼈대를 튼튼하게 하고 있다는 정도로 봐주시면 될 것 같습니다. 먼저 Github 레포지토리 주소입니다. 누구든 코드 리뷰 및 피드백은 환영입니다 :) https://github.com/sosow0212/ChatUniv GitHub - sosow0212/ChatUniv: (2023~) GPT를 활용한 대학생들을 위한 서비스 (2023~) GPT를 활용한 대학생들을 위한 서비스. Contribute to sosow0212/ChatUniv development b

[우테코] 레벨3 1주차 회고록 - 프로젝트 시작 및 정리 [내부링크]

안녕하세요. 우테코 레벨3가 시작되면서 기다리던 팀 프로젝트가 시작되었습니다. 프로젝트에 배정되는 팀은 랜덤입니다. 제가 배정된 팀은 전기차 관련 데이터를 다루는 크루 가브리엘의 팀입니다. 하고싶은 주제를 투표할 때 몇몇 후보들 중 하나가 이 주제였는데, 원하는 팀에 들어가서 다행이라고 생각합니다. 이번 프로젝트의 큰 장점은 많은 데이터들을 다룬다는 것입니다. 공공 API에서 다량의 전기차 충전소 데이터들을 받아와서, 그로 통계도 내고 여러가지를 할 수 있습니다. 요청에서 조회가 이뤄지는 부분이 많다보니 데이터베이스 최적화와 성능 개선을 할 수 있는 프로젝트이고, 그런 점에서 다른 프로젝트에서는 쉽게 경험없기 때문에 재밌을 것 같습니다. 팀원들도 좋아서 정말 다행이고, 큰 불협화음 없이 진행될 것 같습니다. 팀 레포지토리 https://github.com/woowacourse-teams/2023-car-ffeine GitHub - woowacourse-teams/2023-car-ff

우테코 Car-ffeine #1 - 큰 틀에서 바라보는 서버 아키텍처 계획 [내부링크]

https://car-ffeine.github.io/4 큰 틀에서 바라보는 서버 아키텍처 계획 | CAR-FFEINE 서론 car-ffeine.github.io 서론 안녕하세요 우테코 카페인 팀의 제이입니다. 회의를 하면서 이번 주 제가 맡은 파트는 서버 인프라입니다. 아직은 EC2 스펙과 데이터들이 정확히 나오진 않았지만, 우테코에서 적은 EC2 스펙을 제공한다는 기준으로 계획도를 적어볼 생각입니다. 상황 인식 예상하는 상황은 다음과 같습니다. API의 데이터를 다루는 상황에서 최소 약 150만 건에서 최악 약 3700만 건의 데이터를 다룹니다. 이전 기수를 봤을 때 EC2의 개수는 많이 받은 것으로 파악 됐습니다. (이 부분은 달라질 수 있습니다.) 상황에 따라서 공공 API를 업데이트 해주는 서버와, 제공 서버를 나눌 수 있습니다. 깃허브에서 Conflict가 나지 않기 위해서 안정적인 검증을 거친 후 Merge를 해야합니다. 프로젝트의 버전이 갱신된다면 EC2 서버에서 자동으

우테코 Car-ffeine #2 - 23만 건의 데이터를 받아서 저장하는 과정을 최적화 해보자 [내부링크]

안녕하세요. 우테코 카페인 팀의 제이입니다. 저희 서비스에서 필연적으로 해야하는 과정이 있습니다. 바로 공공 API에서 데이터를 받아오고 데이터베이스에 저장하는 것입니다. 공공 API에서는 한 페이지당 최대 9,999개의 데이터를 제공하고, 이를 23번 정도 반복해야합니다. 따라서 데이터의 양은 총 약 23만 건 정도 되고, 오늘은 이 데이터를 DB에 저장하는 과정을 최적화하는 과정을 다뤄보겠습니다. 저희 팀은 4인 페어로 진행하면서 기본적인 방법부터 여러 가지를 적용했는데요. 어떻게 유의미한 속도로 바뀌었는지 작성해보도록 하겠습니다. (with. 누누, 박스터, 키아라) 같은 팀의 크루 누누의 글을 참고 했습니다! 테이블 구조 간단 설명 최적화 과정에 앞서 저희 서비스의 테이블의 구조를 간단하게 설명하겠습니다. 저희는 전기차 충전소를 다루는 도메인이기 때문에, 다음과 같은 테이블로 구성되어있습니다. 충전소 충전소에 속한 충전기들 조회시에 충전소와 충전기들의 데이터 모두가 필요해서

[우테코] 레벨2 3주차 회고록 - 장바구니 웹 미션 1단계 [내부링크]

3주차에는 장바구니 웹 미션 1단계를 진행 했습니다. 페어가 있는 주간이라 개별 공부는 많이 못했던 것 같습니다. 이번 미션에는 무엇을 배웠는지 적어보겠습니다! 1차 리뷰 정리 https://github.com/woowacourse/jwp-shopping-cart/pull/195 [1단계 - 상품 관리 기능] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #195 · woowacourse/jwp-shopping-cart 시카, 안녕하세요! 제이입니다. 이번 미션을 구현하면서 다음과 같은 궁금즘이 있었습니다. 저는 상품을 수정 혹은 삭제를 할 때 id값을 기준으로 먼저 조회를 해서 null값인지 체크하고 예외를 발생시키고, 값이 있다면 수정 혹은 삭제의 과정을 진행합니다. 사실 update 혹은 delete 쿼리를 한 번만 날려도 될 것 같아서 바꿀 수는 있었지만, 그... github.com 질문1) 저는 상품을 수정 혹은 삭제를 할 때 id값을

[Spring] HandlerMethodArgumentResolver를 이용해서 로그인 확인 로직 중복을 제거해보자 (Basic Auth를 이용한 예시) [내부링크]

안녕하세요. 오늘은 HandlerMethodArgumentResolver를 이용해서 로그인 중복 로직을 제거해보겠습니다. Basic Auth로 예시를 들었지만, 사실 많이 사용하시는 JWT에서도 적용이 가능하니 참고 부탁드리겠습니다 :) 문제 인식 우테코 미션을 진행하면서 로그인 관련된 요구사항이 추가되었습니다. Basic Auth를 이용해서, 유저가 요청을 할 때 로그인 정보를 확인하고 유효하다면 로직을 수행해야 했습니다. 저는 아래와 같은 방식으로 코드를 작성 했습니다. (미션 코드와는 관계가 없습니다!) @GetMapping @ResponseStatus(HttpStatus.OK) public Response findAll(@RequestHeader("Authorization") final String authHeaderValue) { // 1. 헤더에서 로그인 정보를 추출한 후에 로그인 정보가 DB에 있는지 확인한다. (없다면 예외!) MemberLoginRequestDto m

스프링부트 커뮤니티 API 서버 만들기 #20 - HandlerMethodArgumentResolver 이용해서 중복 로그인 로직 제거 리팩토링 [내부링크]

오랜만에 작성합니다! 오늘은 HandlerMethodArgumentResolver를 이용해서 기존 프로젝트의 로그인 중복 로직을 제거할 예정입니다. 요게 무엇인지 모르시는 분은 아래 글 참고 부탁드립니다 :) https://blog.naver.com/sosow0212/223092557576 [Spring] HandlerMethodArgumentResolver를 이용해서 로그인 확인 로직 중복을 제거해보자 (Basic Auth를 이용한 예시) 안녕하세요. 오늘은 HandlerMethodArgumentResolver를 이용해서 로그인 중복 로직을 제거해보겠습니다.... blog.naver.com 기존에 인증 로직은 JWT + Spring Security를 이용해서 진행 되었고 로그인의 순서는 헤더를 통해 Access Token이 들어오면, 이 토큰을 이용해서 컨트롤러에서 해당하는 Member를 찾아서 반환해주는 식으로 사용했습니다. 즉, 여러 컨트롤러에서 같은 로직(토큰 값으로 Memb

[개발 일기 #29] 4월의 개발 공부 : 우테코와 학습 고도화 [내부링크]

뒤늦게 올리는 4월의 개발 회고록입니다! 매주 공부 복습 및 학습 내용을 공유하고자 올리는 우테코 회고록도 올리고, 개인적인 월별 회고록도 올리고 슬슬 헷갈리기 시작했습니다 c 우테코에 들어오고 나서는 모든 공부를 우테코 내부에서 하는 활동과 더불어서 관련 주제를 학습해서 우테코 회고록과 개인 회고록과 크게 다른게 없는 것 같습니다! 이제는 스스로의 약속과 같은 1일 1커밋은 진행 중입니다. 뭐 사실 이게 취업이나 이런 것에 있어서 크게 도움 되는 것도 아니지만, 이를 지키고자 노는 날에도 조금은 공부해야겠다는 생각은 들어서 좋은 것 같습니다. 거의 2년이 되어가는데 정말 하루도 빠지지 않고 꾸준히 했음에 이번 달은 뭔가 스스로에게 더 감사함을 느끼게 되네요. 1일 1커밋에 강박이 생기는 순간 안 하면 스트레스를 받지만 그만큼 무엇이라도 하게 돼서 양날의 검 같다고 느껴집니다. 학습 내용 노션에 체크한 이번 달 학습한 내용입니다. 스프링 DI, IoC JDBC Template Res

[우테코] 레벨2 4주차 회고록 - 장바구니 웹 미션 2단계 리뷰 정리 [내부링크]

2단계 미션도 성공적으로 끝났습니다. 이번 미션에서는 Domain VS Entity에 대한 고민이 가장 컸던 것 같습니다 :) PR링크 https://github.com/woowacourse/jwp-shopping-cart/pull/262 [2단계 - 상품 관리 기능] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #262 · woowacourse/jwp-shopping-cart 시카, 안녕하세요? 리뷰이 제이입니다! 이번 미션을 진행하면서 다음과 같은 고민을 겪었습니다. (step1 포함) 도메인 사용에 대해 먼저 Product, Member, Cart 객체를 도메인으로 만들었습니다. 이번 미션에서 사실 "도메인이 필요할까?"라는 생각을 많이 했습니다. 데이터베이스에 저장되는 구조와 같다보니 이런 고민이 들었던 것 같습니다... github.com 2차 피드백 정리 Q. Service 레이어에서 다른 Service를 불러다 쓰는게 좋을지, 아니면

[IntelliJ] 사용하지 않는 변수, 메서드와 Import를 찾아보자 [내부링크]

우테코 미션을 하면서 "사용하지 않는 메서드네요."라는 피드백을 많이 받았습니다. 미션 리팩토링을 하면서 쓰이지 않는 메서드와 변수가 생기는데 이를 잘 확인하지 못했기 때문입니다. 그래서 오늘은 IntelliJ를 사용하는 분들이 알면 좋은 꿀팁을 가져왔습니다. 사용하지 않는 변수와 메서드, 성능 개선점을 찾아보자 Shift 두번을 눌러 네비게이션바를 띄운 상태에서 'Insepect Code"를 눌러줍니다. 그리고 Analyze를 눌러줍니다. 분석이 끝나면 위와 같이 뜹니다. 이제 여기서 [빈 메서드, 사용하지 않는 변수 및 메서드, 미사용 import, 성능 개선점, 오타, 보안 경고] 이렇게 찾을 수 있습니다. 리팩토링 하신 다음에 한 번씩 해주면 좋겠죠?! 커밋할 때 미사용 Import를 자동 제거하기 커밋하기 전에 커밋하는 파일에 해당하는 미사용 Import를 자동 제거하는 기능도 있습니다. 위와 같이 좌측 하단부에 '톱니바퀴 모양 아이콘'을 클릭한 후 'Optimize imp

[우테코] 레벨2 5주차 회고록 - 지하철 미션 1단계 (Domain & Entity 불일치) [내부링크]

저번 주는 굉장히 정신이 없었기 때문에 회고를 지금 올리게 됐습니다. 장바구니 미션 다음으로는 '지하철 미션'을 진행했습니다. 미션을 한 마디로 소개하자면, 단순 CRUD는 아니었고 도메인 로직도 활용해야하는 미션이었습니다. 고민할 점이 많아서 굉장히 재밌었습니다. 이번 포스팅에서는 미션 1단계에서 무엇을 배웠고 어떤 피드백을 받았는지, 어떤 고민을 했는지 정리하도록 하겠습니다~ https://github.com/woowacourse/jwp-subway-path/pull/41 [1단계 - 지하철 정보 관리 기능] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #41 · woowacourse/jwp-subway-path 에단 안녕하세요? 리뷰이 제이입니다~ 이번 미션은 굉장히 복잡했던 것 같습니다. 페어와 함께 Entity, Domain에 대해서 고민을 많이 했습니다. 그리고 복잡한만큼 Domain을 통해서 비즈니스 로직을 수행하고 Entity에 값

[Spring] Filter & Interceptor 에 대해서 알아보자 [내부링크]

안녕하세요. 오늘은 Filter와 Interceptor에 대해 알아보겠습니다. 먼저 이 둘은 모두 웹 애플리케이션에서 요청과 응답을 처리하는 데 사용하는 개념입니다. 모두 요청과 응답을 가로채서 특정 작업을 수행하고, 원래 흐름으로 보내주는 역할을 합니다. 요청과 응답을 가로챈다고 했는데, 그렇다면 모든 요청에 대한 보안, 로깅, 인증 & 인가 같은 작업에 수행할 수 있겠죠? 이 내용을 알고 학습을 하면 더 도움이 될 것 같습니다! Filter & Interceptor 흐름 먼저 아래 그림을 살펴보겠습니다. 망나니개발자 블로그 참고해서 다시 그렸습니다. 이 그림을 보면 Filter와 Interceptor가 언제 작동하는지 유추할 수 있습니다. Client 요청 --> WebContext[Filter] --> Interceptor --> SpringContext[DispatcherServlet] 이 순서대로 작동을 하게 됩니다. 그렇다면, Filter는 WebContext 안에서 Sp

[Spring] @SpringBootTest 알아보기 [내부링크]

스프링 테스트를 만들다보면, @SpringBootTest 라는 테스트 어노테이션을 쓰게 됩니다. 통합 테스트를 사용하기 위해 자주 쓰는 어노테이션이지만, 제대로 정리한 적이 없어서 이번 기회에 정리하고자 합니다. 스프링에 여러 테스트에 대해 간단하게 설명드리고, @SpringBootTest에 대해 자세히 알아보도록 하겠습니다. 서론 스프링 여러 테스트에 대해 스프링에서 테스트의 종류는 여러가지가 있지만, @SpringBootTest 어노테이션은 주로 실제 환경처럼 세팅을 해서 우리가 구현한 기능들이 제대로 작성하는지 테스트하기 위해서 사용됩니다. 여기서 한 가지 의문이 들 수 있습니다. @SpringBootTest말고, @WebMvc나 @ExtendWith(Mockito.class)등등으로도 기능을 검증할 수 있지 않나요? 맞는 말입니다! 모두 다 기능 검증은 할 수 있지만, @SpringBootTest와 위에서 언급한 어노테이션의 다른 점이 하나 있습니다. 먼저 @SpringBoo

[Spring] @Mock과 @MockBean의 차이점은 무엇일까? [내부링크]

혹시 글에 오류가 있으면 댓글로 피드백 부탁드립니다. 감사합니다 :) 안녕하세요. 이번에 우테코 미션을 진행하면서, 컨트롤러 테스트를 했는데 다음과 같은 피드백을 받았습니다. @WebMvcTest를 사용해서 컨트롤러 테스트를 하는 것은 어떻고, 이것의 편한 점은 무엇인가요? from. 리뷰어님 @ExtendWith(MockitoExtension.class) public class RacingGameWebControllerTest2 { @InjectMocks RacingGameWebController racingGameWebController; @Mock RacingCarService racingCarService; MockMvc mockMvc; ObjectMapper objectMapper = new ObjectMapper(); @BeforeEach void beforeEach() { mockMvc = MockMvcBuilders.standaloneSetup(racingGameWeb

[Spring] @RequestBody를 사용할 때, 기본 생성자를 사용하는 이유에 대해 알아보자 [내부링크]

문제 인식 최근에 우테코에서 미션을 진행하면서, 아래와 같은 POST 요청을 처리할 때 오류가 발생 했습니다. 먼저 오류가 발생한 요청에 대한 컨트롤러 코드는 다음과 같습니다. @PostMapping("/plays") public ResponseEntity<GameResultResponseDto> startGame(@RequestBody final StartGameRequestDto request) { Cars cars = makeCars(request.getNames()); TryCount tryCount = makeTryCount(request.getCount()); return new ResponseEntity<>(racingCarService.startRace(cars, tryCount), HttpStatus.OK); } StartGameRequestDto는 다음과 같습니다. public class StartGameRequestDto { private String names;

[Spring] 스프링에서 ControllerAdvice와 ExceptionHandler를 사용해서 어떻게 예외처리를 할 수 있을까? [내부링크]

목차 개요 @ExceptionHandler 알아보기 @ControllerAdvice 알아보기 실제로 예외처리를 어떻게 하는지 알아보기 서버에서 예외가 발생한다면 어떻게 전송이 될까요? throw new IllegalArgumentException(); 일반적으로 스프링에서 별 다른 과정을 거치지 않고 위에 코드처럼 예외를 던지면 다음 사진과 같이 응답이 떨어집니다. 위에서의 예시처럼 흔히 던지는 예외를 프론트엔드 서버에서는 위와 같이 알기 어렵게 응답을 받습니다. 사진을 딱 봤을 때 무슨 에러인지 알 수 있을까요? 저는 500, 즉 "서버 에러가 발생했구나!"라고 밖에 생각을 안할 것 같습니다. 500에러인데, 어느 부분에서 에러가 발생했는지 체킹해서 메시지와 같이 보내준다면 좋지 않을까요? 혹은 위에 사진처럼 이미 정해진 데이터 형식으로 주는 것이 아닌, 프론트 서버와 응답 형식을 맞췄다면 그 형식에 맞춰서 주는게 프론트엔드 개발자 입장에서도 편하지 않을까요? 오늘은 이에 대해서

[Spring] Dispatcher servlet은 무엇일까? [내부링크]

스프링 프레임워크를 공부하다 보면 'Dispatcher Servlet'이라는 것을 접하게 됩니다. 오늘은 스프링의 동작 순서와 함께 Dispatcher Servlet에 대해 알아보겠습니다. Dispatcher Servlet이란? Spring 프레임워크에서 웹 애플리케이션의 요청을 처리하는 핵심 컴포넌트 중 하나라고 보시면 됩니다. 웹 애플리케이션에서 클라이언트의 요청을 받으면, 이 Dispatcher Servlet이 일을 하게 됩니다. (개념적으로 프론트 컨트롤러라고 볼 수 있습니다.) Dispatcher Servlet과 함께 서브 컴포넌트(Handler Mapping & Adapter, View Resolver..)들이 역할을 함께 수행하면서 사용자의 요청을 처리합니다. 무슨 일을 하는지 간단하게 요약 느낌으로 설명하자면 다음과 같습니다. 1. Handler Mapping이 요청을 처리할 컨트롤러를 찾습니다. 2. Handler Adapter가 1번에서 찾은 컨트롤러를 실행합니다.

[Spring] 스프링에서의 테스트에 대한 '나의 생각' (통합, 단위, 테스트 더블) [내부링크]

해당 게시글은, '저의 생각'일 뿐이니 피드백이나 틀린 부분은 댓글 부탁드리겠습니다 :) 목차 서론 문제 인식 결론 서론 우테코 Level2가 시작되면서 스프링을 배우기 시작했습니다. 미션을 진행하면서 당연히 테스트 코드를 작성했지만, 리뷰어님으로부터 다음과 같은 피드백이 왔습니다. 통합 테스트를 작성해보시는 것은 어떠실까요? 제이 테스트의 신뢰성이 보장될까요? 리뷰어님 처음에는 "이게 무슨 말일까?"라는 생각과 함께 곰곰히 생각해봤습니다. 우테코 오기 전에도 스프링을 통해 무엇을 개발할 때, 항상 테스트를 작성했지만 이에 대해 신뢰성을 생각해본적이 없었습니다. 왜냐하면 테스트란 성공하면 검증 되었다고 생각했기 때문입니다. (메서드 호출 후 결과가 동일하니!) 그리고 지금까지는 Bean을 띄워서 테스트를 하면 느리기 때문에, Mock 객체와 함께 테스트하고자 하는 메서드의 의존적인 것들은 스터빙을 통해 모두 의도된 값으로 나오게 했고, 그 때의 결과만 테스트했습니다. (각자의 레이어

[우테코 생활기] 웰컴 키트 언박싱, 향로님 실물 영접 [내부링크]

우테코에 들어온지 약 2달만에 웰컴 키트를 받았습니다. 어떤 굿즈가 있을지 엄청 기대기대 했습니다. 구성품은 텀블러, 노트, 포스트잇, 이상한 레고 이렇게 굿즈들이 있었습니다. 그리고 정말 예전부터 엄청 팬이었던 향로님이 우테코에 강연하러 오셨습니다! 향로님을 간단하게 소개하자면, jojoldu라는 이름으로 '기억보단 기록을'이라는 블로그를 운영하고 계십니다. (기술 블로그에서 거의 구글 독점) 그리고 '개발바닥'이라는 유튜브에서 향로라는 이름으로 활동하고 계십니다. jojoldu에 대한 tmi를 하자면, 'jojo(삼국지 조조) + ldu(이동욱)'이 의미인 걸 아시나요?? 이정도로 저는 엄청난 팬이랍니다 ㅋㅋㅋㅋ 실물로 보니 생각보다 키가 엄청 크셔서 놀랐습니다. 하여튼 너무 기념하고 싶어서, 노트북에 싸인을 요청했습니다. 이제 저 노트북에 포비, 김영한님 싸인만 있으면 될 것 같습니다~~

[우테코] 레벨2 2주차 회고록 - 자동차 경주 웹 미션 2차 피드백, 테스트에 대한 고찰, 공부한 것들 [내부링크]

이번 주에는 정말 엄청 많은 것들을 배우고 고민하는 시간이 많았습니다. 기존에 스프링을 사용하면서 '문제 해결'에만 초점을 맞춰서 구조나 원리를 하나도 몰랐기 때문에, 이번에는 내부와 동작 원리를 많이 파악하면서 공부하고자 했습니다. 그래서 2주차에는 이런 개념적인 부분에 대해 공부를 많이 했습니다. 웹 자동차 경주 2차 피드백과 함께 무엇을 배웠는지 확인해보겠습니다! 웹 자동차 경주 2차 피드백 PR 링크 https://github.com/woowacourse/jwp-racingcar/pull/103 [2단계 - 웹 자동차 경주] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #103 · woowacourse/jwp-racingcar 터틀, 안녕하세요! 이번 미션을 구현하면서, Service와 DAO 레이어의 역할을 분리할 수 있도록 노력했습니다. Service 레이어는 비즈니스 로직을 처리할 수 있는 것의 초점을 맞췄고, DAO 레이어는 조회,

[Spring] 계층형 아키텍처 (Layered Architecture)에 대해서 알아보자 [내부링크]

오늘은 계층형 아키텍처란 무엇인지 알아보겠습니다. 먼저, 계층형 아키텍처는 Layered Architecture 라고도 합니다. 계층형 아키텍처라는 개념은 소프트웨어 설계 패턴 중 하나입니다. 시스템의 구성 요소를 여러 개의 계층으로 분리하여 각 계층이 특정 역할을 수행하도록 하는 패턴입니다. 이를 통해서 시스템의 유지보수성과 확장성을 향상시킬 수 있습니다. 즉, 역할을 나눠 각자의 역할에 충실하게 하면서, 재사용성 및 유지보수성을 높이기 위해 사용된다고 보시면 됩니다. 계층형 아키텍처는크게 세 가지로 나뉩니다. Presentation Layer Business Logic Layer Data Access Layer Presentation Layer 먼저 Presentation Layer는 사용자와 시스템 사이의 상호 작용 처리 계층의 역할을 합니다. 즉, 사용자의 요청을 받아서 처리한 후 응답을 다시 반환해주는 역할을 합니다. 스프링에서는 Controller의 역할이 이에 속합니다.

[우테코] 레벨2 1주차 회고록 - 스프링 시작, 자동차 경주 웹 미션 1차 피드백 [내부링크]

우테코 레벨2가 시작되고 첫 주가 지났습니다. 이번 주 미션은, 레벨1 기간 때 했던 '자동차 경주 미션'을 기반으로 스프링 프레임워크를 이용해서 웹 API를 만드는 것이었습니다. 원래 스프링을 공부했기 때문에 API로 바꾸는 것은 어렵지 않았습니다. 다만, 기존에는 Lombok을 남발했고, 생성자 주입과 같은 중요한 개념을 잘 몰랐고, 정말 내가 올바르게 스프링 프레임워크를 사용하는지 의문이 있었습니다. 그래서 이번 미션에서의 목표는, 스프링 코어 학습과 기존에 알던 방식으로 미션을 진행하고 받은 리뷰를 기반으로 방향을 잡는 것이었습니다. 지금 가장 크게 신경 쓰는 것은, 각 어노테이션의 작동 원리와 개념적인 부분입니다. 기존에는 "그냥 쓰니깐 쓰지"라는 생각이 강했고, 개념에 대해서는 무지했습니다. 이런 빈 부분을 채워서 더욱 성장하는게 이번 미션의 목표입니다. 웹 자동차 경주 미션 1차 피드백 PR 링크 https://github.com/woowacourse/jwp-racing

객체지향의 사실과 오해를 읽고나서 [내부링크]

안녕하세요. 최근에 토끼책이라고 많이들 부르시는 '객체지향의 사실과 오해'를 읽었습니다. 객체 지향을 공부하는 입장에서 이 책 추천을 많이 받기도 하고 책의 내용이 좋아서 3번을 읽었습니다. 사실 책과 거리가 멀고, 개발 공부도 "구글링으로 충분하지"라는 생각으로 책을 잘 읽지 않았습니다. 확실한 건 구글링으로 얻은 얕은 정보들을 책이 채워주고 본질적인 것에 대해 조금이나마 더 가까워졌다는 것이 느껴집니다. 이 책은 어느정도 객체 지향에 대해 공부를 해본 사람 혹은 하고있는 사람들이 읽는다면 책에서 설명하는 내용이 무엇인지 쉽게 연결할 수 있을 것이라고 생각합니다. 저도 실제로 미션도 진행하면서 책을 볼 때마다 매번 새로운 것을 배웠을만큼 지식의 깊이가 올라가는 것이 느껴졌기 때문입니다. 일반적인 전공 수업을 통해 객체 지향을 우리가 학습하고, "객체 지향이란 무엇인가?"에 대해서 답을 한다면 저는 다음과 같이 대답 했을 것 같습니다. "현실 세계와 동일한 객체를 만들고, 원하는 것

[Java] 진짜 누구나 이해 가능한 '정적 팩토리 메서드'에 대해 알아보자 [내부링크]

안녕하세요. 오늘은 정적 팩토리 메서드(Static Factory Method)에 대해서 알아보겠습니다. 정적 팩토리 메서드란 무엇인가요? 아마도 이 패턴을 처음 보시는 분들은 '정적 팩토리 메서드(Static Factory Method)'라는 이름만 보고 무엇인지 감이 쉽게 오지 않으실 것 같습니다. 이는 GoF 디자인 패턴 중 팩토리 패턴에서 나온 용어로 정의한 것으로 객체를생성해주는 메서드로 볼 수 있습니다. 일반적으로 우리는 객체를 생성할 때 생성자를 사용합니다. 그렇다면, 위에서 "객체를 생성해주는 메서드"라는 말을 보면 생성자가 아닌, "어떤 메서드가 객체를 생성해주는구나"로 얼추 이해해볼 수 있겠습니다! 이 설명을 보고나서 우리는 여기서 몇 가지 의문점이 생깁니다. 생성자를 쓰면 되지 왜 굳이 정적 팩토리 메서드를 쓰는가? 예시로 설명을 보고 싶은데.. 이 의문점들을 이번 포스팅으로 천천히 풀어나가보겠습니다. 생성자 대신 정적 팩토리 메서드를 쓰는 이유는 무엇인가요? 이

[Spring] 의존성 주입(DI)과 주입 방식에 대해 알아보자 [내부링크]

안녕하세요. 오늘은 스프링에서 DI(Dependency Injection)이라고 부르는 의존성 주입에 대해 알아볼 예정입니다. 의존성 주입이란? 의존성 주입은 DI(Dependency Injection)이라고도 불립니다. 스프링 프레임워크에서, 의존성 주입은 직접 객체를 생성하거나 참조하지 않고 외부에서 주입받는 것을 의미합니다. 이는 객체의 의존 관계를 개발자가 직접 코드로 작성하지 않아도 되고, 코드의 유연성과 재사용성을 높일 수 있습니다. 즉 정리하자면, 객체 간의 의존 관계를 느슨하게 만들기 위한 것이라고 보면 됩니다! 의존성을 주입하는 방법은 여러가지가 있는데, 같이 알아보겠습니다. 다양한 의존성을 주입하는 방법 생성자 주입 생성자 주입은 말 그대로 생성자를 통해서 의존성을 주입하는 방식입니다. 생성자라는 특징으로 인해 호출 시점에 자동으로 의존성을 주입하게 됩니다. 생성자 주입은 스프링에서 가장 권장되는 방식입니다. 왜냐하면 먼저 객체 생성 시점에 모든 의존성이 주입되기

[Spring] IoC(Inversion Of Control) 컨테이너와 스프링 빈(Bean)에 대해 알아보자 [내부링크]

스프링을 사용하다보면 'IoC 컨테이너'라는 용어와 'Bean'이라는 용어를 자주 접하게 됩니다. 오늘은 이에 대해서 알아보도록 하겠습니다. IoC (Inversion Of Control), Bean 흐름 설명 IoC는 흔히들 '제어의 역전' 이라고 부릅니다. 말은 조금 어렵지만 풀어서 설명하자면, 외부에서 객체의 생성 및 생명 주기 등등을 책임져서 기존 개발자가 가졌던 모든 객체에 대한 제어권이 바뀌었음을 의미합니다. 이를 통해서 개발자는 코드를 작성할 때 객체 간의 의존성을 최소화하고 유연성과 확장성을 높일 수 있습니다. 일반적으로 객체끼리의 의존성은 코드 내에서 직접 생성하고, 객체의 메서드를 호출하여 처리하기도 합니다. 하지만 IoC에서는 객체를 직접 생성 및 호출하는 방식이 아닌, 외부에서 객체를 생성 혹은 호출합니다. 이를 통해 개발자는 로직에 집중하고, IoC에서는 인스턴스를 관리해주기 때문에 객체끼리의 결합도를 낮추고 유지 보수성 및 재사용성을 높일 수 있습니다. Sp

[개발 일기 #28] 3월의 개발 공부 : 성장과 도움주기 [내부링크]

저도 드디어 백준 플레티넘 등급을 달았습니다. 사실 dfs 양치기를 하니 등급은 올라가는데 정말 플레5 실력이냐라고 물으면 그건 아닌 것 같습니다...ㅠㅠ 하여튼 작년부터 목표로 했는데 성취를 해서 기분이 너무 좋습니다! 성장 이번 3월 달에는 많은 것을 배웠습니다. 먼저 우테코에서 블랙잭과 체스 미션을 통해서 다양한 개발 기법에 대해 익힐 수 있었습니다. (자세한 내용은 우아한테크코스 카테고리 글 확인해주세요!) 기존에는 스프링 프레임워크만 잘 쓰면 장땡이라고 생각을 했는데, 확실히 자바에 대한 기본기를 많이 다듬다보니 스프링에서 당연스럽게 생각하고 쓰던 것들에 대해서 기술적 근거를 가지고 사용할 수 있게 됐습니다. 특히 정적 팩토리 메서드와 Stream, Lambda, 함수형 인터페이스에 대해서 그냥 쓰는 것이 아니라 왜 쓰는지에 대해 공부를 했다보니 응용도 하기 좋았습니다. 이제 우아한테크코스 Level 1이 끝나가는데, Level 2로 넘어가기 전에 아직 다 못 읽은 개발 서

[우테코] 레벨 1을 마무리 하면서 [내부링크]

우테코에 들어온 지 벌써 약 두 달이 지났습니다. 레벨 1 교육도 무사히 마쳤습니다. 매일매일 코딩에 몰두하고, 크루들과 함께 토론을 하면서 시간이 정말 빠르게 갔다고 느껴집니다. 예전에는 보이지 않았던 것들이 보이고, 이제서라도 자바 기본기를 조금 더 단단히 쌓은 것 같습니다. 우테코에서 학습하면서 좋았던 점은 편견 없이 서로를 들어주고 배려해주는 분위기가 형성된다는 점입니다. 또한 학습 면에서도 서로 배운 것을 공유하면서 토론을 하는데, 이전에 알지 못했던 부분도 많이 알게 되었고, 어떤 기술을 사용할 때 그 기술의 장단점 및 다른 방법은 없는지에 대해서도 파악할 수 있게 되었습니다. 이번 레벨 1에서 기억이 가장 크게 남았던 것은 테코톡 발표였습니다. 백엔드 크루 중에서 테코톡 첫 발표라서 엄청 떨렸습니다. 그래도 온보딩 팀원들이 잘 도와줘서 뭐 어찌저찌 잘 마무리한 것 같습니다. 이 부분에 대해서는 추후에 글 올리도록 하겠습니다! 이번 기간에 아쉬운 점도 있었습니다. 레벨 1

스프링부트 커뮤니티 API 서버 만들기 #19 - 프로젝트 클린코드 리팩토링, 예외 테스트 작성하기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #19 - 프로젝트 클린코드 리팩토링, 예외 테스트 작성하기 피드백 및 질문은 댓글로 남겨주세요 :) 작업한 내용은 깃허브에서 확인하실 수 있습니다. https://github.com/sosow0212/community GitHub - sosow0212/community: Community API Server (Main project) Community API Server (Main project). Contribute to sosow0212/community development by creating an account on GitHub. github.com 안녕하세요? 오랜만에 Community 프로젝트 포스팅을 쓰는 것 같습니다. 우테코 활동을 잠시 쉬는 겸해서 지금까지 배운 것들을 바탕으로 리팩토링 작업을 진행했습니다. 예전에 이 프로젝트를 바탕으로 많이 배웠고, 덕분에 가장 애정하는 프로젝트인만큼 오래 살펴보고 리팩토링 작업을 진행했습

[개발 일기 #27] 2월의 개발 공부와 새로운 목표 [내부링크]

드디어 백준 600문제를 풀었습니다 노력파 골드1인데, 이번년도 목표는 정말 알고리즘에 통달하는 것입니다! 과연 가능할까요? 알고리즘은 풀 수록 기본 개념을 더욱 자세하게 알아야할 것 같습니다. 항상 지금까지 다익스트라는 뭔가 보기가 싫어서 잘 풀지를 않았습니다. 하지만, 앞으로 코테를 위해서는 이제 더 이상은 피할 수가 없을 것 같아요.. 돌아오는 3월말까지 목표는 다익스트라 알고리즘을 어느정도 마스터하는 걸 목표로 세웠습니다. 백준으로 어느정도 문제에 더 익숙해지고 기존에 목표한 프로그래머스를 모두 풀어야겠습니다! 최근에 공부하는 환경이 많이 바뀌었습니다. 기존에 혼자 독학했던 방식보다 여러명과 다같이 토론도 하면서 함께 배우는 과정에서 이번 달은 정말 많이 성장한 것 같습니다. 정말 기본적인 개발 패턴도 배웠고, 객체지향적으로 설계하는 방법에 대해 많이 배웠습니다. 아마도 독학으로 공부를 계속 했다면, 이런 부분은 별로 중요하지 않다고 넘겼을 생각에 아찔합니다. 또한 지금까지는

[좋은 코드, 나쁜 코드] 1차 스터디, 같이 얘기할 것들 정리 [내부링크]

범위 ~Chapter 3 책을 읽으면서 작성한 포스팅이라 문맥이 어색할 수도 있습니다. Chapter 1 : 코드 품질 Q. 책의 저자가 제시한 네 가지 상위 수준 목표 중 "코드는 변경된 요구 사항에 적응할 수 있어야 한다.", "중복 코드는 피해야한다." 등등 (10p) 와 같은 내용들은 결국 '객체 지향'을 지키며 개발하자는 뜻 같다. 다른 사람들의 뜻은 어떤가? 1장을 읽으면서, 코드에 주관을 개입시키지 말고 정말 객관적인 코드를 작성하라는 뜻 같았다. Q. (21p) 테스트하기 용이한 코드를 만드는 것에 대해선 동의한다. 하지만 너무 테스트만을 생각하고 만들라는 뜻 같다. 회사의 재정과 시간에 따라서 테스트 작성을 꼼꼼하게 못할 수도 있다. 이거는 전략 차이라고 생각한다. 아무리 이런 상황이라도, 책의 저자처럼 반드시 테스트하기 좋은 코드를 만들어야 할까? (만약 회사에 재정이 안 좋은데, 테스트하기 좋은 코드를 만들기 위해 돌아가는 쓰레기 코드여도 시간을 들여서라도 꼭 테

[자바] 백준 15559 : '내 선물을 받아줘' 박살내보기 / DFS / 유사 문제 추천 [내부링크]

https://www.acmicpc.net/problem/15559 15559번: 내 선물을 받아줘 15559번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 내 선물을 받아줘 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 1437 589 439 40.055% 문제 욱제는 구사과의 열렬한 팬이다. 오늘 욱제는 구사과에게 선물( )을 전달해주려고 한다. 지난 며칠간의 관찰 끝에 욱제는 구사과의 이동 패턴을 모두 파악했다. 구사과가 있는 곳은 N×M 크기의 직사각형 지도로 나타낼 수 있으며, 1×1크기의 정사각형으로 나누어져 있다. 구사과의 위치는 (i, j)로 나타낼 수 있으며, (i, j)... www.acmicpc.net 오늘 박살 예정인 '내 선물을 받아줘' 문제는 골드2 난이도, 40% 정답률에 DFS 유형 문제입니다. 문제 분석 및 풀이 문제에서 요구하는 것은 다음과 같습니다. N, S, W, E 좌표가 맵에 표시됩니다. 맵에서 해당하

[Java] 겉은 어렵지만 속은 쉬운 '제네릭' 알아보자! [내부링크]

제네릭(Generics), 저는 이걸 자바의 정석에서 처음 접했습니다. 이름은 뭔가 딱딱하고 재미없어 보이지만 알고보면 쉬운 제네릭, 같이 알아보겠습니다! 제네릭은 무엇인가요? "자바에서 데이터의 타입을 일반화한다." 라는 것을 의미합니다. 즉 데이터의 타입을 클래스 내부에서 지정하는 것이 아니라, 외부에서 사용자가 지정하는 것을 의미합니다. 외국어인가요? 어렵습니다. 맞습니다! 제네릭의 개념만 본다면, 어렵고 와닿지가 않을 수 있습니다. 따라서 다음 예시를 통해 제네릭을 쉽게 배워보겠습니다~ 저는 어떤 타입이 들어와도 다 저장할 수 있는 리스트를 만들고 싶습니다. 요구사항을 들어주기 위해서, 이 리스트의 이름을 'JayList'로 두고 다음과 같이 '제네릭'을 사용해서 만들었습니다. public class JayList<Type> { Type element; void setElement(Type element) { this.element = element; } Type getEle

[우테코] 4주차 회고 : 배운 점과 스터디 [내부링크]

4주차 회고록 이번 4주차에는 사다리 미션이 2차까지 빠르게 끝나게 돼서 시간이 많았습니다. 그래서 개인 공부 시간이 많았던 것 같습니다. 배운 것 Generics 공부 사실 제네릭을 지금까지 스프링을 하면서 많이 사용했는데, 정확한 원리도 잘 몰랐고 “그냥 쓰니깐 쓰지!” 이런 느낌으로 사용했습니다. 어떤 기술이든 사용하는 이유와 원리가 중요하다고 생각하는데, 언행불일치의 끝판왕급으로 지금까지 제네릭을 깊게 공부해보지 않았다는 생각을 반성하면서 블로그 포스팅까지 했습니다. 제네릭 공부를 덤으로 이번 미니 미션도 잘 구현할 수 있었습니다! VO 공부 및 Equals, Hash 재정의 공부 저문과 같이 회고를 하면서 저문에게 VO를 사용할 때 재정의를 하면 좋다는 점에 대해 알게 되었습니다. 재정의를 하면서 물리적인 값을 쉽게 비교할 수 있다는 점이 큰 장점 같습니다. [객체지향의 사실과 오해], [좋은 코드, 나쁜 코드] 책 읽기 책을 정말 살면서 거의 읽지 않아서 처음에는 책 읽는

[Java] 두유 노 '상속'? [내부링크]

자바 개발을 하다보면, 상속과 조합이라는 키워드를 보게 되고 개념만 알다가 적용하는 시점이 다가옵니다. 적용하기 직전에 개념을 먼저 확실하게 확립하고 적용한다면, 어떤 시점에서 상속 혹은 조합을 쓸 수 있는지에 대해서와 이를 통해 얻는 장단점을 확실히 알고 개발할 수 있습니다. 오늘은 상속이 무엇인지 알아보겠습니다. 후편으로는 조합, 그리고 상속과 조합에 대해 비교하는 글을 작성하겠습니다. 상속(Inheritance)이란? 상속은 우리가 현실 세계에서 자주 쓰는 그 용어와 동일합니다. 먼저 상속을 해주는 클래스는 [부모 클래스] 상속 받는 클래스를 [자식 클래스, 하위 & 서브 클래스]라고 합니다. 부모 클래스를 상속 받으면 자식 클래스는 부모 클래스의 코드를 사용할 수 있게됩니다. 그렇다면 상속의 장점은 무엇일까요? 상속의 장점 부모 클래스의 코드를 받기에 중복 코드를 줄일 수 있다. 유지 보수하기 좋다. (부모 클래스만 바꾸면 자식 클래스는 모두 바뀌기 때문!) 다형성을 구현할

[우테코] 5주차 회고록 - 블랙잭 미션 배운 점과 이번 주 생활에 대해서 [내부링크]

우테코에 들어온 지 얼마 안 된 것 같은데, 정말 빠르게 시간이 흘러갔습니다. 매주 배우는 것과, 크루들과의 자율적인 학습 및 토론으로 하루하루 정말 많은 성장을 하고 있음을 느끼고 있습니다. 이번 주에는 블랙잭 미션을 진행했습니다. 블랙잭 미션을 처음 접했을 땐 뭔가 쉽다고 생각했지만, 결코 쉽지가 않았습니다. 이런 과정에서 제가 무엇을 배웠고 느꼈는지 적어보도록 하겠습니다. 블랙잭 미션을 통해서 배운 점 및 느낀 점 flatMap을 통해서 stream()에서 stream()을 돌릴 수 있다. 기존에 블랙잭에서 카드를 생성하는 과정에서 어쩔 수 없이 2중 for 문을 사용했지만, flatMap()을 통해서 인덴트를 줄일 수 있었습니다. 2중 for 문을 사용하는 로직은 알고리즘을 풀 때도 많이 사용하고, 미션 및 프로젝트 할 때도 정말 많이 사용했는데 지금이라도 flatMap()에 대해 알게 돼서 앞으로 자주 사용할 것 같습니다. 이번 미션에서 카드를 뽑는 행위를 card.remo

[우테코] 6주차 회고록 - 체스 1,2단계 미션을 진행하고 나서 배운 점 [내부링크]

이번 주는 체스 미션을 시작했습니다. 진행하고 나서 느낀 점은, 역시 악명 높은 체스 미션이었습니다..! 페어인 아코랑 1,2 단계를 너무 재밌게 진행했습니다. 체스 미션에서 개인적으로 어려웠던 점은 다음과 같습니다. 기물들의 기본적인 움직임 구현 폰의 움직임 포인트와 공격 포인트 분리 Position Enum의 사용이 모호함 (굳이 안 써도 되는 객체인가 고민을 많이 했습니다.) 이번 단계는 운이 좋게 빠르게 Merge가 되어서 리뷰 받은 내용과 질문을 빠르게 정리해보겠습니다. PR 링크 https://github.com/woowacourse/java-chess/pull/439 [1, 2단계 - 체스] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #439 · woowacourse/java-chess 카프카, 안녕하세요! 제이입니다. 미션을 진행하면서 처음에 체스 말에서 Position을 가지게 했습니다. 아코와 함께 고민한 끝에 Position

[우테코] 7주차 회고록 - 체스 3,4단계 미션을 마무리하고 배운 점 [내부링크]

이번에 체스 미션 3,4 단계가 빠르게 Merge가 되었습니다. 이렇게 Level 1의 마지막 미션이 잘 마무리가 되었습니다. 체스 미션은 생각할 것들이 많아서 정말 재밌는 미션이었고, 리뷰어인 카프카의 피드백으로 정말 많이 성장했다는 것을 느꼈습니다. 오늘은 제가 체스 미션을 진행하면서 무엇을 배웠는지 적어보도록 하겠습니다. PR 링크 https://github.com/woowacourse/java-chess/pull/530 [3, 4단계 - 체스] 제이(이재윤) 미션 제출합니다. by sosow0212 · Pull Request #530 · woowacourse/java-chess 카프카, 안녕하세요! 주말은 잘 보내셨나요? 이번 3, 4단계 미션은 어려웠지만, 정말 배운 것도 많았고 재밌게 진행 했습니다. 특히 "JPA가 정말 편한 기술이었구나"를 많이 느꼈습니다.. 미션의 단계가 높아질 수록, 컨트롤러가 많이 복잡해졌습니다. 가독성과 확장성을 고려했을 때 컨트롤러 부분에 커맨

[Java] DTO에 대해 알아보자 [내부링크]

주관이 들어간 글입니다! 피드백은 댓글로 부탁드립니다. 안녕하세요. 오늘은 DTO에 대해 알아보겠습니다. 알아보기 전에 먼저 DTO란 무엇일까요? Data Transfer Object의 약자로 계층 간 데이터 교환을 위한 사용되는 객체입니다. 오늘 글을 통해서 DTO를 사용하는 이유와 사용하면 좋은 점에 대해 작성해 보겠습니다. DTO를 만드는 이유 앞서 설명했듯이 DTO는 계층 간 데이터 교환을 위해 사용되는 계층입니다. 앞서 설명한 DTO의 약자를 봤을 때, 저는 처음에 다음과 같은 생각이 들었습니다. "계층끼리 객체를 주면 될 텐데 왜 따로 DTO를 만들어서 주는 걸까?" 이에 대해 차근차근 설명해 보겠습니다. MVC 패턴을 사용하여 콘솔 프로그램을 만든다고 가정했을 때, 우리는 기존에 Controller에서 객체 자체를 View로 넘겨주었습니다. 그리고 View에서는 받은 객체로 출력에 필요한 행위를 작업했습니다. 먼저 DTO를 쓰지 않았을 때 여기에서 '생길 수 있는 문제점

[Java] 만취한 사람도 쉽게 이해할 수 있는 '일급 컬렉션'에 대해 알아보자! [내부링크]

글에 오류가 있으면 댓글로 피드백 부탁드립니다 :) '일급 컬렉션' 뉘슈? 일급 컬렉션이란 먼저 다음과 같습니다. Collection을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 부가설명 : Collection(List, Set ..)을 Wrapping한 변수가 있다면 그 외에 다른 멤버 변수는 없어야한다! --> 오마이갓.. 이게 무슨 말일까요? 먼저 예시를 통해 일급 컬렉션을 이용한 프로그램을 보면서 이것의 장점과 사용 이유에 대해 더 알아보겠습니다. 예시(일급 컬렉션 적용 ver.) 예시에 앞서 먼저 프로그램 요구사항은 다음과 같습니다. 엔델 : 제이, 자동차 경주 게임 프로그램을 만들어주세요! 1. 자동차 경주를 할 사람은 'odo', 'kokodak', 'jay' 로 고정해주세요. 2. 저는 평등한게 좋으니 모든 라운드마다 자동차의 거리는 똑같이 1씩 증가시켜주세요. 3. 라운드의 수는 5로 고정입니다. 예상 결과 ==> 게임이 종료되면, 3명의 자동차의 거리가

[Java] 쉽다 쉬워! 단위 테스트에 대해 알아보자 [내부링크]

오늘은 단위 테스트에 대해 알아보겠습니다. 단위 테스트란? 단위 테스트는 영어로 Unit Test입니다. 단위 테스트는 모듈 혹은 애플리케이션 안에 있는 개별적인 코드 단위가 의도한 대로 작동하는지 확인하는 행위입니다. "뭔 말인가요? 더 쉽게 설명해 주세요!" ==> 하나의 애플리케이션에는 한 개 이상의 작동하는 기능들로 구성되어 있습니다. 단위 테스트란, 이런 기능들을 '개별적으로' 테스트함을 의미합니다. "아~ 그러면 단위 테스트는, 기능들이 개별적으로 작동하는지 테스트하는 행위이군요." 맞습니다! 이렇게 생각하셨다면 단위 테스트의 뜻을 파악하신 것입니다 그렇다면 단위 테스트는 왜 사용할까요? 다음 예시를 통해 알아보겠습니다. 애니메이션을 바탕으로 프로그램 구현을 하는 '홍보와 졸부' 회사에 신입 개발자 제이가 들어왔습니다. 회사에 들어왔는데, 이오가 제이에게 새로운 프로그램 제작을 맡겼습니다. 이오 : [토끼와 거북이 경주 게임]을 다음과 같은 흐름으로 만들어주세요! 1. 토

[Effective Java] 정적 팩터리 메서드, 빌더 패턴, 그 외 [내부링크]

정적 팩터리 메서드 정적 팩터리 메서드란 무엇인가요? 쉽게 말해서 객체의 생성을 담당하는 클래스 메서드입니다. // 1. 기존 생성 방식 Car car = new Car("name"); // 2. 정적 팩터리 메서드 방식을 사용한다면 Car car = CarFactory.createCar("name"); 간단하게 위와 같은 느낌으로 정적 팩터리 메서드는 객체의 생성을 담당해 줍니다. 정적 팩터리 사용 전과 후 뭐가 달라졌을까? 차이점 및 장점과 단점을 알아보자. 삐링~ 요구사항이 들어왔습니다. 성하: Car 클래스 생성의 규칙은 다음과 같습니다. 1. Car 생성자에서 'name', 'distance' 필드를 받는 경우는 들어온 값으로 초기화해주세요. 2. Car 생성자에서 'name' 필드만 받는 경우는 '거리 필드'의 초기 값은 0으로 해주세요. 3. Car 생성자에서 'distance' 필드만 받는 경우는 이름은 "null"로 초기화해주세요. 정적 팩터리 메서드를 배우기 전에

[우테코] 사다리 타기 TDD 미션, 독서 스터디 등등 2주 차 회고 [내부링크]

정신없는 한 주가 또 흘렀습니다. 하루 종일 너무 정신없이 빨리 지나가지만 그래도 같은 분야에 있는 사람들과 함께 해서 너무 재밌는 하루하루를 보내고 있는 것 같습니다. 친구들이 잠은 죽어서 자라고 하는데, 저는 죽어있는 걸까요? 왜 이리 일어나기가 힘들까요..! 먼저 이번 주에 가장 큰 주제는 두 번째 미션인 '사다리 타기' 미션입니다. 미션이 점점 어려워지는 것을 실감하고 구조적 설계의 중요성을 많이 느끼게 된 것 같습니다. 먼저 같은 페어인 저문과 진행을 했습니다. 저문과 함께 미션을 하면서 느낀 점 제가 덤벙거리면서 놓치는 통일성을 저문이 모두 잡아줬습니다. 깃 커맨드는 덤으로..! 코딩 스타일이 다른 면이 있는데, "내가 맞는 것도 아니구나"를 많이 느꼈습니다. 다양한 코딩 스타일을 접한다는 점이 페어 프로그래밍의 최고 장점이라고 생각합니다. 각종 컨벤션을 배웠습니다. static, final 같은 것들의 순서가 있는지 처음 알았는데 지금이라도 고칠 수 있어서 다행입니다!

[Java] 쏘 이지~ 원시값 포장에 대해 알아보자 [내부링크]

현재 배우고 있는 입장으로, 포스팅 내용에서 틀린 부분이 있으면 댓글로 피드백 부탁드립니다c️ 원시값 포장이란? 원시값 포장이 무엇인가요? 원시 타입의 변수를 객체로 포장한 것입니다. 말이 조금 어려울 수 있는데, 다음 예시로 어떤 느낌인지 확인해보겠습니다. public class Member { private final String name; private final int age; public Member(final String name, final int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } 이런 클래스가 있다고 가정해보겠습니다. 여기서 원시값 포장을 진행하면 아래 코드와 같이 변경됩니다. public class Member { private final Name name; private final A

[자바] 백준 1012 : 유기농 배추 / 그래프 + DFS 풀이 [내부링크]

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것... www.acmicpc.net 실버2 난이도의 정답률 38% 문제입니다. 그래프 + DFS(혹은 BFS) 알고리즘으로 해결할 수 있습니다. 문제 분석 및 풀이 문제는 간단합니다. 배추밭의 가로와 세로 길이가 주어집니다. 그리고, 배추가 심어진 위치가 주어집니다.

[Java] AssertJ 문법과 간단한 예시 (예외처리 검증 추가) [내부링크]

안녕하세요. 오늘은 자바에서 테스트를 할 때 많이 사용되는 AssertJ와 이를 통해 단위테스트를 진행해보고자 합니다. AssertJ AssertJ는 assertion을 제공하는 자바 라이브러리로 에러 메시지와 테스트 코드의 가독성을 높여주는 라이브러리입니다. 쉽게 말해서 테스트의 흐름을 작성할 수 있는 라이브러리라고 보시면됩니다! 메서드 체이닝을 통해서 직관적으로 읽힙니다. 예제를 보면서 설명을 진행하겠습니다. @Test void stringDoubleSplitTest() { //given String input = "1,2"; //when final String[] splitedInput = input.split(","); //then assertThat(splitedInput).containsExactly("1", "2"); } 위에 예시를 보면 input을 split한 것을 검증하는 코드입니다. AssertJ는 위에서 메서드 체이닝으로 직관적이라고 말씀 드렸죠? // then

[우테코 5기] 1차 미션 자동차 경주 정리 및 회고록 [내부링크]

약 일주일 동안 진행했던 미션이 끝이 났습니다. 페어 프로그래밍을 처음 해봤는데, 너무 재밌었고 배운점이 많았습니다. 같은 페어인 우르한테 인텔리제이 여러 단축키를 많이 배웠고, 같이 개발을 하면서 테스트와 여러가지 꿀팁들을 많이 얻었습니다. 강의를 들으면서 느낀 점과 궁금한 점 Q) System.out.println()을 냅두고 테스트 코드를 작성하는 이유는? 기능이 커지면 sout으로는 오래 걸린다. 또한 서버도 껐다 켜야한다 등등 반면, 테스트 코드를 작성하면 이러한 단점을 모두 커버할 수 있다. (단지, 테스트 작성 시에만 시간이 듬) 테스트 코드를 사용하면 프로덕션 코드의 정확성을 판단할 수 있다. 리팩토링 시에도! 프로덕션 코드가 잘못 됐을 때를 대비해서 테스트의 수를 늘릴 수도 있다. 프로덕션 코드의 예외 상황을 생각해서 테스트의 수를 늘린다. 이건 기준을 잘 잡고 어디까지 테스트를 작성해야하는지를 고민해봐야한다. (불안하지 않을 정도로...) Q) 테스트 메서드의 실행

[Java] final 키워드에 대해 알아보자 [내부링크]

우테코에서 자동차 미션을 진행하면서, final 키워드를 제멋대로 사용해서 피드백을 많이 받았습니다. final 이란 지금까지 '바뀌지 않는'으로만 알고 있었는데, 오늘은 final 키워드에 대해 구체적으로 배워보고 언제 사용할지 알아보도록 하겠습니다! final : 의미와 역할을 알아봅시다! 재할당 불가를 명시합니다. 위에 사진과 같이 final로 선언을 한 age를 재할당 한다면 오류가 발생합니다. final 인자는 메서드 내에서 변경이 불가능합니다! 위와 같이 increaseNumber() 메서드의 인자를 final로 받아준다면, final로 넘어오는 number 변수는 읽기만 가능해집니다. final 키워드를 메서드 앞에 사용한다면, 오버라이드가 안됩니다. final 키워드를 클래스 앞에 사용한다면, 다른 클래스에서 상속할 수 없게 됩니다! final 키워드는 다양한 역할을 하네요! 그렇다면 언제 사용해야 할까요? 이를 대답하기 위한 여러가지의 관점이 있습니다. 각자의 관점에

[자바] 백준 2589 : 보물섬 / BFS 풀이 [내부링크]

https://www.acmicpc.net/problem/2589 2589번: 보물섬 문제 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 이동은 상하좌우로 이웃한 육지로만 가능하며, 한 칸 이동하는데 한 시간이 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀있다. 육지를 나타내는 두 곳 사이를 최단 거리로 이동하려면 같은 곳을 두 번 이상 지나가거나, 멀리 돌아가서는 안 된다. 예를 들어 위와 같이 지도가 주어졌다... www.acmicpc.net 골드5 난이도, 정답률 37% 문제입니다. 개인적으로 잘 만든 BFS문제라고 생각이 듭니다. 문제 이해 및 분석 이 문제는 요구 사항을 이해하기 조금 어려웠습니다. 문제에서 보물이 묻힌 두 곳의 최단 거리를 구하라고 했는데, 일단 여기서

과소비의 1월 [내부링크]

이번 1월은 기억에 많는 일이 많았습니다. 나중에도 기억하고 싶어서 글을 써봅니다. 먼저 연초에는 누나들과, 매형과 신사역 앞에 김수사라는 일식집에서 모였습니다. 한국느낌의 일식집이었습니다. 큰누나가 한턱 크게 쏴서 엄청 맛있게 먹고왔습니다. 울 큰누나 최고 ㅋㅋㅋㅋㅋ 누나들과 매형의 선물 누나들이 있으면 좋습니다 (시스터보이 아님) 드디어 선릉역 앞에서 자취를 하게 됐습니다. 집을 여러 곳 보다가 마지막으로 본 곳을 골랐습니다. 오늘의집 어플과 유튜브를 보면서 어떻게 꾸밀지 많이 찾아봤습니다. 원래는 타일카페트도 깔고 더 예쁘게 꾸미고 싶었는데 그건 좀 청소가 힘들 것 같아서 나중에 자가가 있다면 거기서 꾸미는 걸로.. 스마트 조명 쓰니깐 너무너무 아늑합니다 누나가 있으면 좋은 점2 갑자기 작은 누나랑 잼민이 시절 때 같이 게임을 하면서 사기 당해서 둘이 펑펑운게 생각나네요 ㅋㅋㅋㅋ 하여튼 이사 오면서 운동을 다시 시작했는데, 헬창인 매형과 작은 누나가 고민을 해서 고단백의 맛난

[자바] 2023 카카오 블라인드 채용 : 택배 배달과 수거하기 풀이 (그리디) [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/150369?language=java 코딩테스트 연습 - 택배 배달과 수거하기 당신은 일렬로 나열된 n 개의 집에 택배를 배달하려 합니다. 배달할 물건은 모두 크기가 같은 재활용 택배 상자에 담아 배달하며, 배달을 다니면서 빈 재활용 택배 상자들을 수거하려 합니다. 배달할 택배들은 모두 재활용 택배 상자에 담겨서 물류창고에 보관되어 있고, i 번째 집은 물류창고에서 거리 i 만큼 떨어져 있습니다. 또한 i 번째 집은 j 번째 집과 거리 j - i 만큼 떨어져 있습니다. (1 ≤ i ≤ j ≤ n ) 트럭에는 재활용 택배 상자를 최대 cap 개 실을 수 있습니다. 트럭은 배달할 재활용 택배 상자들을 실어 물류창... school.programmers.co.kr Level2, 782 solve 정답률 22% 그리디 문제입니다. 개인적으로 시간이 많이 들었고 그리디한 방법을 찾기 어려운

[자바] 백준 1937 : 욕심쟁이 판다 / DFS + DP 풀이 / 유사 문제 [내부링크]

https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 1937번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 욕심쟁이 판다 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 36664 11853 7881 29.824% 문제 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 대나무를 먹는다. 그런데 단 조건이 있다. 이 판다는 매우 욕심이 많아서 대나무를 먹고 자리를 옮기면 그 옮긴 지역에 ... www.acmicpc.net 골드3 난이도, 약 30%의 정답률을 가진 완전탐색 + DP 문제입니다. 문제 분석 및 풀이 이 문제를 이해하면 먼저 팬더가 대나무를 4방향으로 먹으러 돌아다닙니다. 팬더는 돌아다닐 때 이전 지역보다 무조건 대나무가 많은 지역으로

[자바] 백준 N과 M 시리즈(1~4) / 백트래킹 [내부링크]

백트래킹 연습하기에 최고로 좋은 문제인 백준 문제 N과 M시리즈입니다. https://www.acmicpc.net/problem/15649 백준 15649 : N과 M(1) 자바 풀이 package com.sosow0212.study; import java.util.Scanner; // https://www.acmicpc.net/problem/15649 (N과M (1)) public class q15649_1 { private static int n, m; private static int[] arr; private static boolean[] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); arr = new int[m + 1]; visited = new boolean[n + 1]; recursion(0); }

[자바] 백준 17609 : 회문 (문자열) [내부링크]

https://www.acmicpc.net/problem/17609 17609번: 회문 17609번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 회문 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 (추가 시간 없음) 512 MB 16706 4672 3363 28.680% 문제 회문(回文) 또는 팰린드롬(palindrome)은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열을 말한다. 예를 들어 ‘abba’ ‘kayak’, ‘reviver’, ‘madam’은 모두 회문이다. 만일 그 자체는 회문이 아니지만 한 문자를 삭제하여 회문으로 만들 수 있는 문자열이라면 우리는 이런 문자열을... www.acmicpc.net 골드5 난이도의 정답률 29% 문제입니다. 문제 자체는 쉬운 문자열 처리(팰린드롬) 문제이나 알고리즘을 잘 짜지 않으면 시간초과가 떠서 정답률이 낮은 문제입니다. 문제 분석 이 문제는 주어지는 문자열에 대해 [팰린드롬, 유사 팰린드롬,

[개발 일기 #26] 1월의 개발 공부와 우테코 영어 이름, 창업 지원 [내부링크]

23년도 1월이 되고나서는 우아한테크코스에 들어가기 위한 준비를 많이 했습니다. 자바 클린코드, 디자인 패턴 공부, 프로젝트, CS공부, 코테 준비 이렇게 5가지를 준비했습니다. 먼저 클린코드와 디자인 패턴 같은 경우는 이펙티브 자바와 구글을 통해서 따로 공부를 하는 중이고 CS 같은 경우는 전공으로 많이 열리지가 않아서 따로 네트워크, 운영체제, 컴퓨터 구조, 아키텍쳐를 책으로 공부하는 중입니다. 프로젝트는 작년부터 만들고있는 커뮤니티를 리팩토링과 기능 추가하는 과정에 있습니다. 아마 돌아오는 2월 안에는 많은 기능을 다듬고 배포하지 않을까 생각하고 있습니다. 코딩테스트 같은 경우 프로그래머스를 풀려고 했으나, 조금 더 문제를 많이 풀어보고 진행하는게 나을 것 같아서 현재는 백준 사이트에서 유형별로 가능하면 클린코드로 풀고있습니다. 우테코에 들어가기 전에 사용할 영어 닉네임을 정하라고 메일이 왔습니다. 초등학교 1학년 때부터 사용하던 Jay를 쓰기로 했습니다! 하지만, 3기에 이미

[자바] 프로그래머스 - 개인정보 수집 유효기간 (2023 카카오 블라인드) 풀이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/150370 코딩테스트 연습 - 개인정보 수집 유효기간 고객의 약관 동의를 얻어서 수집된 1~ n 번으로 분류되는 개인정보 n 개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야... school.programmers.co.kr 2023년도 카카오 블라인드 채용 코딩테스트 문제입니다. 프로그래머스 기준 현재 570명 풀이 완료 및 27%의 정답률을 기록하고 있습니다. 아마도

스프링 서버를 Docker, Docker-compose로 멋들어지게 띄워보기 [내부링크]

안녕하세요. Docker와 Docker compose는 개발을 하다 언젠가 쓰게 됩니다,. 한 번 쓰면 너무 편해서 이전으로 돌아가기 힘든 것 같습니다. 저는 처음에 Docker에 대한 개념도 잘 몰랐고, 왜 쓰는지에 대해도 몰랐습니다. 따라서 이번 글을 보시고 프로젝트에 적용하시기 전에 도커에 대한 개념은 유튜브나 다른 블로그 포스팅을 보고 참고하고 보시는 것을 추천드립니다. 처음에 저 같은 경우는 도커 세팅에 관한 글은 많지만, 실제로 너무 두루뭉실한 얘기들이 많아서 따라하기가 너무 힘들었습니다. 그래서 노드 개발하는 친구에게 많이 물어보고 귀찮게 했습니다. 오늘 글을 통해서 우리가 배워볼 건 다음과 같습니다. Docker, Docker-compose, .env 민감 정보 감추기, yml 설정하기 서버 띄워보기 Docker, Docker-compose, .env 민감 정보 감추기, yml 설정하기 먼저 Docker, Docker-compose.yml 파일을 세팅해줘야합니다. 이

[우아한테크코스 5기] 사전 준비 메일과 서울 살이 시작! [내부링크]

오늘은 우아한테크코스 사전 준비 메일이 도착했습니다. 위와 같이 교육 시작일에 대한 안내와 준비 사항에 대해 메일이 왔습니다. 이제 합격했다는게 정말 실감이 납니다c️ 일단 영어 이름을 얼른 생각해봐야하는데 정말 고민입니다. 앞으로도 쭉 쓸 것 같아서 약 2주동안 친구들과 함께 신중히 생각해봐야겠습니다! 해당 되는 사람들은 국민내일배움 카드를 통해서 K-digital 신청을 해야해서 오늘 신청을 했습니다. 마지막으로 학교에 전화해서 휴학 신청도 했습니다! 이렇게 우테코 관련 돼서는 아직 다 끝내지는 못했지만 얼추 정리가 됐습니다. 우테코 활동을 하면 일과가 끝나고도 늦게까지 공부할 생각이고, 통학에 시간을 뺏기기 싫어서 자취를 해야겠다고 생각했습니다. 그래서 가급적 선릉역 근처로 잡으려고 오늘 부동산에 갔습니다. 선릉역과 가까운 좋은 매물은 금방 빠지고, 매물 자체가 많이 없었습니다. 그래도 다행히 운 좋게 마지막 방을 봤는데 선릉역에서 5분거리이고, 거의 풀 옵션에 상권이 너무 마

[자바] 백준 13023 : ABCDE / 그래프, DFS 풀이 [내부링크]

https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제 BOJ 알고리즘 캠프에는 총 N명이 참가하고 있다. 사람들은 0번부터 N-1번으로 번호가 매겨져 있고, 일부 사람들은 친구이다. 오늘은 다음과 같은 친구 관계를 가진 사람 A, B, C, D, E가 존재하는지 구해보려고 한다. A는 B와 친구다. B는 C와 친구다. C는 D와 친구다. D는 E와 친구다. 위와 같은 친구 관계가 존재하는지 안하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 사람의 수 N (5 ≤ N ≤ 2000)과 친구 관계의 수 M (1 ≤ M ≤ 2000)이 주어진다. 둘째 줄부터 M개의 줄에는 정수 a... www.acmicpc.net 골드5 난이도의 정답률 약 29% 난이도의 문제입니다. 그래프를 구현한 후 dfs로 탐색하는 결합 유형입니다. 문제 분석 친구 관계를 구하는 문제입니다. 문제에서 주어진 예시를 통해 문제를 간단하게 풀이하자면 다음과 같습니다. 문

[자바] 백준 2573 : 빙산 / dfs, bfs 풀이 (비슷한 문제) [내부링크]

https://www.acmicpc.net/problem/2573 2573번: 빙산 문제 지구 온난화로 인하여 북극의 빙산이 녹고 있다. 빙산을 그림 1과 같이 2차원 배열에 표시한다고 하자. 빙산의 각 부분별 높이 정보는 배열의 각 칸에 양의 정수로 저장된다. 빙산 이외의 바다에 해당되는 칸에는 0이 저장된다. 그림 1에서 빈칸은 모두 0으로 채워져 있다고 생각한다. 2 4 5 3 3 2 5 2 7 6 2 4 그림 1. 행의 개수가 5이고 열의 개수가 7인 2차원 배열에 저장된 빙산의 높이 정보 빙산의 높이는 바닷물에 많이 접해있는 부분에서 더 빨리 줄어들기 때문에, 배열에서 빙산의 각 부분에 해당되는 칸에 있는... www.acmicpc.net 골드4 난이도, 정답률 26% 문제입니다. 문제 자체는 쉬우나, 문제를 해결하기 위해서 해야 하는게 많아서 정답률이 낮아보입니다. 이 문제는 두 가지의 문제를 복합시킨 느낌입니다. 풀이 후 밑에 어떤 문제인지 적어두겠습니다! 문제 분석 이

스프링부트 커뮤니티 API 서버 만들기 #18 Redis를 이용해서 포인트 랭킹 구현하기 (Sorted Set = ZSet) [내부링크]

아직 배우는 단계라서 정확하지 않을 수 있습니다! 피드백 해주시면 참고하겠습니다 :) 추후에 구글링 및 더 많은 공부를 더 진행한 후 깨끗히 리팩토링 진행하도록 하겠습니다. https://github.com/sosow0212 sosow0212 - Overview sosow0212 has 70 repositories available. Follow their code on GitHub. github.com 오늘은 Redis를 이용해서 포인트 랭킹을 구현했습니다. Redis를 단순 저장의 목적으로 사용한 것 같아서 마음에 쏙 들지는 않지만 일단 공부한다고 생각하고 진행해보았습니다. 먼저 랭킹 기획 방향은 이렇게 생각했습니다. 1. 처음에 회원가입을 한다면, Point 도메인을 만들고 MySQL 데이터베이스에 포인트 저장하고 Redis ZSet에 삽입 2. 포인트 조회시 Redis를 통해 빠르게 조회하고 업데이트시에도 마찬가지로 처리 3. 주기적으로 MySQL에 백업 이렇게 생각했는데 2

2023년 꼬름이 삼형제 4박5일 일본 도쿄 즉흥 여행기 [내부링크]

스미마셍? 일본에서 가장 많이 사용한 단어입니다. 오늘은 2022.12.30 ~ 2023.01.02 일본 도쿄 여행기를 남겨보겠습니다. 역시 이번에도 주인공은 저 포함 베스트후렌도 승범이(타칭 범죄도시 악역 박지환 배우님), 태민이(자칭 조규성 선수)입니다. 연말에 좋은 일이 생겨서 가벼운 마음으로 출발했습니다. (사실 공항에서 짐 때문에 태민이 캐리어에 짐을 다 넣어서 진짜 가볍게 감) 저희는 일단 숙소와 비행기만 예약하고 아무런 계획도 세우지 않고 갔습니다. 저는 슈퍼 계획러라 마음이 좋지는 않았지만, 살면서 한 번쯤 이래보고 싶어서 도전해봤습니다. 2022.12.30 (일본 도착) 살 쪄서 도라에몽 손이 됐네요. 비행기가 오전 8시 30분 출발인데, 탑승 전 카운터에서 짐 때문에 체크인 시간이 조금 걸렸습니다. 항상 해외 여행 갈 땐 1시간 30분에서 2시간 일찍 공항에 도착하는게 좋을 것 같습니다. 저희의 숙소는 타카다노바바에 ELM 숙소입니다. 신주쿠, 하라주쿠, 시부야 근

[자바] 프로그래머스 : 큰 수 만들기 (그리디 풀이) 접근 방법 및 풀이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 2... school.programmers.co.kr Level 2, 그리디 문제입니다. 문제 분석 문제 자체는 이해하기 되게 간단합니다. 예시 하나를 보면 바로 이해할 수 있습니다. number = "12312

[우아한테크코스 5기] 백엔드 최종 합격 후기와 자소서 그리고 모든 과정에 대해서 [내부링크]

정말 길고 힘들었던 우아한테크코스 선발 과정이 끝이 났습니다. 아직도 백엔드 부분 합격이라는게 어안이 벙벙하고 믿기지가 않네요. 작년에 누군가의 글을 보면서 꼭 가고 싶다라고 생각했는데, 그 당시 많이 해둔 것도 없고 본격적으로 어떤 분야로 취업을 할지 고민을 할 때였습니다. 다행히도 좋은 친구들과, 좋은 인연들로 인해서 제대로 된 개발과 함께 많은 활동을 하면서 실력과 스스로를 어필할 수 있는 쓸 것들이 생겼습니다. 누군가 이 글을 보고 작년의 저와 같은 생각을 할 수 있을 거라고 생각합니다. 저는 공부를 하면서 배워도 배워도 끝이 없어서 끝이 없는 터널을 가는 것 같고 항상 힘들었습니다. 모든 분들이 이렇다고 생각하기에 조금이나마 도움이 됐으면 좋겠습니다. 대부분은 취준 과정에서 우테코 지원을 하실텐데, 후기 글을 통해서 하시는 것에 있어서 조금이나마 도움이 될 수 있으면 좋겠습니다! 우테코에 떨어지더라도, 프리코스 과정동안 정말 기본기를 배울 수 있으니 정말 좋은 프로그램이라고

[개발 일기 #25] 12월의 개발 공부와 연말 [내부링크]

22년 12월 31일 기준으로 지난1년동안 하루도 빠짐없이 공부를 해왔습니다 내년에도 1일 1 커밋 활동으로 실력도 키우고 꾸준히 진행해 보겠습니다. 이번 달에는 먼저 종강을 맞이했습니다. 12월 초에는 우테코 최종 코테 공부를 하고 합격을 기다리느라 공부를 어영부영했습니다. 시험공부도 하느라 아무래도 알고리즘도 많이 풀지 못했고, 유의미한 공부를 많이 하지는 못한 것 같습니다. 그래도 우아한테크코스에 합격한 것에 너무 만족했습니다. 합격하고 나서는 기존 레거시 프로젝트를 갈아엎었습니다. 기존 프로젝트는 더티코드와 오로지 기능 구현만 했는데, 지금 봤을 때 효율적으로 좋지도 않은 코드였고 하나를 바꾸면 뭉터기로 다 고쳐줘야 하는 문제점이 있었습니다. 그래서 배운 것들을 바탕으로 도메인 메서드로 최대한 분리하고 클린코드 작업을 했습니다. 이제 1월에는 무엇을 공부해야 할까 많이 생각해 봤는데 'CS, 알고리즘, 프로젝트 리팩토링 및 기능 추가'이 세 가지를 골고루 진행할 예정입니다.

스프링부트 커뮤니티 API 서버 만들기 #17 기본 키 타입, 네이밍 리팩토링 작업 [내부링크]

안녕하세요. 신년의 첫 포스팅이네요! 다들 새해 복 많이 받으세요. 오늘도 커뮤니티 프로젝트 리팩토링에 대한 내용을 다룹니다. 레거시 프로젝트를 리팩토링 하는 것이 이렇게 힘든 일인줄 몰랐습니다 ㅠㅠ 이번 경험을 바탕으로 앞으로는 "처음부터 꼼꼼한 설계와 클린코드를 이용해서 프로젝트를 제작해야겠다."라고 생각했습니다. 오늘은 세 가지 작업을 했습니다. 도메인 기본 키 타입 리팩토링 작업 User 도메인 리네이밍 README.md 가독성 좋게 수정하기 1. 도메인 기본 키 타입 리팩토링 작업 현재 레거시 프로젝트의 도메인 기본 키 타입은 전부 int형으로 만들었습니다. 사실 int형으로 모두 기본 키 처리를 해도 상관은 없겠지만, 만약 프로젝트의 규모가 커지고 트래픽과 데이터가 많아진다면 데이터베이스에 수 많은 데이터가 쌓이게 될 것입니다. int 타입은 약 21억개의 데이터밖에 다룰 수 없습니다. 이해하기 쉽게 배달의민족 어플을 만들었다고 가정을 해보겠습니다. 만약 주문 관련 도메인

[우아한테크코스 5기] 최종 코딩테스트 후기 [내부링크]

오늘 우아한테크코스 최종 코딩테스트를 봤습니다. 이번 5기의 전체 지원자는 총 3000명정도 됐고, 저는 백엔드 코스에 지원했습니다. 백엔드 지원자를 100명을 뽑는데, 대략 200명 정도 최종에 갔으니 마지막 코테는 1:2의 경쟁률이라고 예상됩니다! 노트와 펜까지..! 우아한형제들 루터회관? 쪽 건물에서 코테를 진행했습니다. 12시에 도착해서 맨 앞자리에 앉고, 친구들과 카톡 하면서 긴장을 풀었습니다. 그렇게 기다리다가 13시에 본격적으로 시험이 시작 됐습니다. 전 기수 최종 코딩테스트 문제를 풀었을 땐 뭔가 되게 복잡스럽고 정신없게 풀어서 살짝 걱정됐습니다. [점심 메뉴 추천 미션] 문제를 보자마자 분석에 들어갔습니다. 문제 자체는 프리코스 3주 차 문제(다리 건너기 미션)보다 비슷하거나 살짝 어려웠던 난이도였습니다. 도메인과 Enum을 잘 써야 했기 때문에, 시작하고 약 30분 동안은 설계에 집중했습니다. 하여튼.. 도메인을 최대한 설계하고 바로 "Domain - (View,

[자바] 프로그래머스 : 여행경로 (DFS 백트래킹) / 접근 방법 및 풀이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상... school.programmers.co.kr Level 3, 정답률 43% 문제입니다. 실제 코딩테스트에 문제가 나온다면 이런 느낌이지 않을까 싶은 문제입니다. 어느정도 완전탐색에 익숙해지신 분들에게 추천 드

스프링부트 커뮤니티 API 서버 만들기 #14 클린코드 리팩토링 (Comment, Report) [내부링크]

최근에 바빠서 레거시 프로젝트 리팩토링을 진행하지 못했습니다. 지난 번에 이어서 오늘도 클린코드로 리팩토링 해보겠습니다~ Comment API 리팩토링 오랜만에 댓글 API를 보니 바꿀게 한 두가지가 아니었습니다. 변수, 메서드명부터 시작해서 잘못된 stream 사용, 그리고 도메인 메서드로 분리할 수 있는 것들도 보였습니다. 오늘은 이것들을 바꿔볼 예정입니다. 기존 CommentService 먼저 보겠습니다. @RequiredArgsConstructor @Service @Slf4j public class CommentService { private final CommentRepository commentRepository; private final BoardRepository boardRepository; @Transactional(readOnly = true) public List<CommentDto> findAll(CommentReadCondition condition) { L

스프링부트 커뮤니티 API 서버 만들기 #15 클린코드 리팩토링 (Admin API) / 도메인 메서드를 사용하는 이유 [내부링크]

이제 어느정도 1차 클린코드 리팩토링 작업이 끝이나고 있습니다. 오늘은 Admin API 리팩토링을 진행하였습니다. 이 API에는 유저 관리와, 게시글 관리, 정지 관리를 담당합니다. 리팩토링 전 엉망진창인 기존의 Service 코드를 확인해보겠습니다. @RequiredArgsConstructor @Service public class AdminService { private final UserRepository userRepository; private final BoardRepository boardRepository; private final UserReportRepository userReportRepository; private final BoardReportRepository boardReportRepository; @Transactional(readOnly = true) public List<UserEditRequestDto> manageReportedUser() { L

스프링부트 커뮤니티 API 서버 만들기 #16 도메인 단위 테스트를 만들어보자 [내부링크]

기존 커뮤니티 프로젝트에는 Service, Controller 레이어의 테스트밖에 없었습니다. 레거시 프로젝트를 리팩토링 작업을 하면서 기존 Service 레이어에서 사용한 Setter, Getter 조합을 도메인 메서드로 바꾸면서 테스트 할 것들이 생겼습니다. Getter와 Setter의 사용이 최대한 제한되어 있는 상태에서 도메인 테스트 코드 작성을 진행해보겠습니다. 양이 너무 많다보니 예시로 하나만 업로드 하겠습니다. 오늘 예시로 사용될 도메인은 Message 도메인입니다. 먼저 도메인 코드를 확인해보겠습니다. @Data @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Message extends EntityDate { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Column(nullable = false) pri

[자바] 백준 1328 : 고층 빌딩 (DP 풀이) 접근 방법 및 풀이 [내부링크]

https://www.acmicpc.net/problem/1328 1328번: 고층 빌딩 문제 상근이가 살고있는 동네에는 빌딩 N개가 한 줄로 세워져 있다. 모든 빌딩의 높이는 1보다 크거나 같고, N보다 작거나 같으며, 같은 높이를 가지는 빌딩은 없다. 상근이는 학교 가는 길에 가장 왼쪽에 서서 빌딩을 몇 개 볼 수 있는지 보았고, 집에 돌아오는 길에는 가장 오른쪽에 서서 빌딩을 몇 개 볼 수 있는지 보았다. 상근이는 가장 왼쪽과 오른쪽에서만 빌딩을 봤기 때문에, 빌딩이 어떤 순서로 위치해있는지는 알 수가 없다. 빌딩의 개수 N과 가장 왼쪽에서 봤을 때 보이는 빌딩의 수 L, 가장 오른쪽에서 봤을 때 보이는 빌딩의 수... www.acmicpc.net 플래티넘5 난이도, 정답률 34% 문제입니다. 문제 풀이 문제를 풀기 위해서는 이 문제의 의도를 먼저 이해해야합니다. N개의 빌딩이 있고, 왼쪽에서 봤을 때 보이는 빌딩의 수는 L개, 오른쪽에서 봤을 때 보이는 빌딩의 수는 R개입니다

[자바] 프로그래머스 - 명예의 전당 (1) / 구현 문제 Stream 풀이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/138477 코딩테스트 연습 - 명예의 전당 (1) "명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순... school.programmers.co.kr Level 1, 정답률 38%의 신규 문제입니다. 문제 자체는 쉬우나, 완료자가 많이 없어서 아직은 정답률이 낮아보입니다. 문제 분석 문제에서 주어진

[원티드 프리온보딩] 백엔드 인프라 설계 with AWS week 1-1 (전반적인 AWS 인프라 소개) [내부링크]

Week 1-1. 교육 내용 전반적인 AWS에서 제공하는 서비스에 대한 간단한 소개를 교육 받았습니다. 기업에서도 AWS를 정말 많이 사용하는데, 어떤 포인트에서 어떤 서비스를 사용하는지 설명을 들었습니다. Week 1-1. 느낀점 현업에 나가기 위해서 정말 알아야할 것들이 많다는 것을 알았습니다. 실무적인 부분은 아무래도 신입 입장에서 부족하겠지만, 지식을 습득하고 실무를 진행한다면 적응과 배움이 더 빠르기 때문에 더욱 열심히 해야겠다고 생각했습니다. AWS 서비스는 지금까지 단순 EC2, S3, ELB는 간단하기 알았습니다. 이번 교육을 들으면서 CloudFront와 S3를 결합해서 사용하는 것을 듣고 "반드시 정해진 용도로만 사용하는 것보다 유동적으로 바꿀 수 있으면 바꾸는게 좋겠구나" 라고 느꼈습니다. 큰 서비스를 운영하면 사소한 것 하나만 줄여도 서버 비용을 크게 절약할 수 있기 때문에, 항상 어떤 부분에서 어떻게 최적화를 할지 고민을 하면서 공부해야겠습니다! AWS VPC

넘버링 A13 브레이슬릿 #1901, #1902 [내부링크]

최근에 넘버링이라는 브랜드에 홀린듯이 꽃혀버렸습니다. 모던, 클래식을 철학으로 제품을 만든다고 하네요. 오늘 리뷰할 제품은 #1901 브레이슬릿(실버, 블랙), #1902 브레이슬릿 (골드, 브라운) 제품 입니다. 까르띠에 탱크를 모티브로 만든 팔찌라고 하는데 이건 시계는 아니지만, 팔찌 같지는 않아서 너무 예쁜 것 같습니다. 10~11월에는 매물이 없었던 것 같은데 지금은 구매할 수 있어서 구매해버렸습니다~! 박스가 되게 심플하게 생겼습니다. 아 구매할 때 사이즈를 선택하는데, Men & Women 사이즈가 있는데 사실 착용했을 때 큰 차이가 없긴 했습니다. 손목이 진짜 얇거나 굵지 않고 그냥 평범하면 둘 중 아무 사이즈로 가셔도 될 것 같습니다! #1901 A13 Watch Bracelet #1901 제품은 저기 시계줄이라 해야하나 그 부분이 검정 소가죽입니다. 그리고 저기 알맹이 컬러는 골드와 실버가 있는데, 실버 색상으로 구매했습니다. 크으 너무 예쁜 것 같습니다. #1902

[우아한테크코스 5기] 프리코스 합격, 최종 코딩테스트 [내부링크]

우아한테크코스 5기 선발과정에서 프리코스 과정에서 합격했습니다. 최종 코테까지 갔다는게 아직도 어안이 벙벙하네요.. 코테가 이번 주 토요일인데, 정말 꼭 붙었으면 좋겠습니다! 학교 시험 기간인데 시험공부고 뭐고 최종 코테만 준비해야할 것 같습니다. 떨어지더라도 많은 것을 배우고 최종까지 갔다는 것에 만족하고 열심히 준비해보겠습니다

도커를 이용해서 Redis 사용 및 스프링 프로젝트에 적용하기 [내부링크]

오늘은 스프링 프로젝트에 Redis를 설정하고 어떻게 적용했는지에 대해 포스팅 하겠습니다. Redis 사용 준비 먼저 Redis 설치는 로컬에 하는 방법과, 도커를 이용하는 방법이 있습니다. 저는 Docker를 이용해서 설치해보도록 하겠습니다. 처음 시작하시는 분들이 있을 수 있기에 기본적인 Dockerfile도 같이 업로드 하겠습니다. 혹시 도커가 설치 안 되신 분들은 설치하시고 진행하시면 됩니다. Docker 세팅하기 Dockerfile FROM openjdk:11 ARG JAR_FILE=*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 저는 Java11 버전으로 프로젝트를 만들었습니다. docker-compose.yml version: '3.8' services: mysqldb: image: mysql restart: always environment: MYSQL_DATABASE: capstone MYSQ

[자바] 프로그래머스 - 실패율 (2019 카카오 블라인드) / HashMap 풀이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하... school.programmers.co.kr Level1, 58% 정답률 문제입니다. 문제 간단 설명 이 문제를 간단하게 설명하자면 다음과 같습니다. 예시를 이용해서 설명하겠습니다. N(스테이지 수) = 5,

[우아한테크코스 5기] 프리코스 종료 및 '다리 건너기' 미션 회고록 [내부링크]

드디어 우아한테크코스의 프리코스 과정이 끝이 났습니다. 약 한 달 동안 정말 많은 것을 배운 좋은 기회였습니다. 최종에서 합격, 탈락 결과에 상관 없이 이번 프리코스를 통해서 많은 성장을 했고, 고민을 통해서 배우는 것이 얼마나 기억에 남고 좋은 학습 방법인지에 대해 알게 되었습니다. 프리코스를 진행하면서 전반적으로 제가 성장한 부분은 자바 기본기가 좋아졌다는 점이고, Stream 사용에 대해 많이 익숙해졌고, 테스트 코드의 중요성을 몸소 느꼈고, 클린코드와 리팩토링을 신경 쓰는 개발자로 성장한 것 같습니다. 이번 미션을 통해 개선한 점과 배운 점 그리고 앞으로의 계획 1. 도메인 사용 이번 미션의 조건인 메서드 길이는 10라인 이하를 지키기 위해서 변수 사용을 어떤 식으로 하고 메서드는 어떻게 나눠야 할지 생각을 많이 할 수 있었습니다. 또한 이번에 피드백으로 들어온 '객체는 객체스럽게'에 대해서도 고민을 많이 했습니다. 따라서 외부에서 getter를 써서 기능을 구현하지 않고,

[개발 일기 #24] 11월의 개발 회고록 (새로운 기술 블로그, 우테코, 원티드 챌린지) [내부링크]

새로운 기술 블로그 먼저 이번 달의 새로운 이슈는 기술 블로그를 이전했습니다. 네이버 블로그를 정말 오랜 시간 동안 해왔고 익숙하지만, 앞으로를 생각한다면 구글 검색도 되고 개발자 풀이 더 넓은 티스토리가 좋다고 생각했습니다. 그래서 티스토리에 새로운 블로그를 만들었습니다. https://sosow0212.tistory.com/ 지금은 같은 글을 티스토리, 네이버 블로그에 둘 다 올리지만 아마 올해가 지난다면 티스토리로 완전히 전향할 것 같습니다. 지금 네이버 블로그는 모든 개발 공부의 일대기가 담겨있어서 목록을 보면 프론트엔드, 백엔드, 각종 언어들로 가득 차서 한눈에 제가 무엇을 했고 요즘은 무엇을 공부하는지 찾기가 힘듭니다. 서버 개발자의 꿈이 확실시돼서, 티스토리에는 이에 관해서 더 자세하고 꼼꼼한 글을 작성할 예정입니다. 우아한테크코스 배달의민족 운영사인 우아한형제들에서 운영하는 개발자 교육 프로그램인 우아한테크코스를 지원했고, 이에 따라 약 한 달 동안 진행하는 프리코스

스프링부트 커뮤니티 API 서버 만들기 #13 기존 프로젝트 리팩토링 계획 및 진행하기 [내부링크]

배우는 단계에서 진행한 포스팅으로 글의 내용이 정확하지 않을 수 있습니다! 오랜만에 열어보는 커뮤니티 프로젝트 올해 7월에 당근마켓 떨어지고 "API 서버 개발을 집중적으로 해야겠다"라고 생각했습니다. 그때 만든 커뮤니티 프로젝트입니다. 단순 게시판 API 서버가 아닌 Redis나 Querydsl 같은 기술적인 것을 적용도 해보고, 직접 해결도 해보고 싶은 마음에 만들었습니다. 한 8월까지 만들다가, 해커톤 및 개강하고 학교에서 진행한 SW 개발대회 참가하느라 건들 수 없이 저 멀리 잊혀진 프로젝트였는데, 계속 마음속으로는 언젠간 살려야겠다는 생각을 했습니다. 다른 건 몰라도 이 프로젝트만큼은 애정을 가지고 더욱 확장시켜보겠습니다 상황 분석 및 리팩토링, 개발 계획 "당시에는 이 정도면 훌륭하지" 라는 근자감이 있었는데 우테코 프리코스를 마치고 온 지금 보니 코드가 개판이었습니다. 나만 볼 수 있는 더티 코드에다가 당시에는 잘 못다뤘던 테스트코드를 적용할 생각에 벌써부터 재밌는데 생

[자바] 프로그래머스 - 게임 맵 최단거리 (BFS) / 유사문제 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으... school.programmers.co.kr 정답률 52%의 어렵지 않은 bfs 문제입니다. 좌표 값(0,0) 에서 좌표 값(n, m)에 도달할 수 없다면 -1을 출력, 도달할 수 있다면 몇 번을 이동

스프링에서 properties 파일을 통해 민감 정보 감추는 방법 [내부링크]

개발을 하고 서버로 배포를 하면, 민감한 값을 숨겨야 하는 경우가 생깁니다. 데이터베이스 키 값을 숨긴다거나, jwt 키의 값을 숨기는 경우 등등 여러 가지 경우가 있는데, 이번 포스팅은 이에 대해 다룰 예정입니다. 데이터베이스 값 감추기 먼저 데이터베이스의 값을 감추는 방법에 대해 말씀드리려고 합니다. 기존 리팩토링 전 application.yml 파일은 다음과 같습니다. server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/capstone?useSSL=false&useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update naming: physical-str

클린코드에 대해서 알아보자 (리팩토링) [내부링크]

개발을 하다 보면 어느 포인트에서 클린코드라는 것을 접하게 됩니다. 대부분은 혼자 프로그래밍을 하면서 변수명, 함수명 혹은 로직 구조 설계에 대해 개개인적으로 습관이 굳어지게 됩니다. 따라서 사람마다 코드 스타일이 달라지게 되는데, 이는 협업할 때 타인이 코드 이해를 할 때 더 오랜 시간을 소모하게 됩니다. 따라서 개발자들은 클린코드를 작성하기 위해 노력해야 합니다. 클린코드 클린코드란 네이밍, 중복 제거, 하나의 역할만 수행하게 끔 코드를 작성해서 가독성이 높은 코드를 의미합니다. 즉, 위와 같은 조건으로 프로그래밍을 하면서 코드를 누구나 이해할 수 있는 것이 바로 클린코드를 의미합니다. 다음 예시를 통해 클린코드가 어떤 의미인지 조금 더 직관적으로 확인해보겠습니다. 기존 클린코드 적용 전 코드 public class CleanCode { public static void main(String[] args) { System.out.println(func1(10)); } public

[자바] 프로그래머스 - 주차 요금 계산 (2022 카카오 블라인드) / HashMap 풀이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분) 차량 번호 내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 school.programmers.co.kr Level2, 정답률 57% 난이도의 2022년도 카카오 블라인드 채용 문제입니다. 문제 간단 설명 문제를 간단하게 요약하자면 다음과 같습니다. 매개변수로 들어오는 String[]

[자바] 프로그래머스 - 피로도 / 백트래킹 알고리즘 정복하기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 8... school.programmers.co.kr 프로그래머스 정답률 55%, Level2 난이도의 백트래킹 문제입니다. 문제 간단 분석 이 문제를 간단하게 분석해보자면 다음과 같습니다. 먼저 던전을 탐험하려면 나의

[우아한테크코스 5기] 프리코스 3주차 '로또 미션' 회고록 [내부링크]

우아한테크코스 프리코스 3주 차가 끝났습니다. 지난번에 느꼈던 점과 공통 피드백을 바탕으로 이번 주 미션은 조금 다르게 구상했습니다. 먼저 기존에는 혹시나 망칠까 봐 커밋을 미루다가 마지막에 하는 경우가 있었습니다. 하지만 실제 시험에서 시간이 부족하고 집에서 하던 방식대로 못할 수가 있기 때문에 이번에는 최대한 기능 구현 목록을 상세하게 작성하고 순서대로 만들면서 커밋을 진행했습니다. 우려됐던 부분이 기능 목록 문서를 그대로 따라야 하는가에 대한 고민이었는데, 다행히도 중간중간 바뀔 수 있으니 살아있는 문서로 만들라는 말씀을 보고 문서를 변경하면서 진행할 수 있었습니다. 저번 주에 생각보다 MVC 패턴으로 구조화해서 하는 것이 까다로웠기 때문에, 이번 주에는 어떤 식으로 해야 효율적인지 기능 구현 목록을 작성하고, 패키지 별로 어떻게 만들지 모두 구상을 하고 진행했습니다. 이렇게 하다 보니 조금 더 빠르고 객체지향적으로 만들 수 있었습니다. 또한 제가 만든 기능을 리팩토링 하다가

[캡스톤디자인2] 프로젝트 개요 및 플로우 / 서버 기초 작업 [내부링크]

[캡스톤디자인2] 프로젝트 개요 및 플로우 / 서버 기초 작업 캡스톤디자인2 주제 및 의의 공공 데이터를 이용하여 의약품 관련 오픈 데이터를 활용하여, 사용자의 증상에 따라 적합한 정보만을 필터링하여 필요한 약품 및 동시 복용의 가능 여부 정보를 제공 요즘 현대 사회에서 접할 수 있는 의약품은 점점 많아지고 있습니다. 이를테면, 편의점 및 약국에서 구매할 수 있는 상비약의 종류도 다양해졌고 처방 받고 복용하는 약도 많아졌습니다. 이런 의약품을 섭취할 때, 같이 먹으면 안 되는 약도 있는데 보통의 경우 그냥 먹거나 검색을 하고 복용합니다. 문제는 함께 섭취하는 의약품에 대한 정보는 유명한 의약품에 한정되어 있습니다. 이런 경우 의약품은 보다 전문적인 분야라서 일반 사람들이 쉽게 알 수 없기 때문에 블로그 등 정보의 양도 적고 결국에 검색의 시간이 길어지게 됩니다. 저희는 이런 문제점을 파악하고 신뢰적인 공공 데이터 포털에서 제공하는 데이터를 가지고 서비스를 기획했습니다. 사용 기술 및

[우아한테크코스 5기] 지원과 프리코스 시작 [내부링크]

이번에 우아한테크코스 5기가 열려서 백엔드 코스에 지원하게 되었습니다. 우테코는 개발자가 되고싶은 학생들이 정말 가고 싶어하는 부트캠프입니다. 신청 이유야 정말 다양하겠지만, 제 생각에는 취업과 개발자로서의 성장, 소통하며 배우는 우아한형제들의 기업 문화를 배울 수 있다는 점이 가장 큰 것 같습니다. 저 또한 우아한형제들은 엄청난 트래픽을 받는 서비스 회사이기 때문에, 많은 걸 배울 수 있다고 생각했고, 정말 너무 가고 싶은 기업 중 하나이기 때문에 꼭 우테코에 참가하고 싶었습니다. 우테코 접수를 위해 몇 주 동안 자기소개서만 쓰고 지우고, 첨삭받고 한 것 같습니다. 너무 간절했기 때문에 꾸며내지 않고 있는 저의 모습 그대로 솔직하게 작성을 했습니다. 이번 5기는 저번 기수와 다르게 1차 코딩테스트가 없고 프리코스를 진행할 수 있습니다. 문제가 전부 같기 때문에 이전 기수의 프리코스 문제들을 풀어볼까 고민도 했었지만, 우아한테크코스에서 제공하는 가이드라인과 컨벤션을 확실하게 익히고

기술 면접 준비 #3 : 네트워크, Java [내부링크]

Network 대칭키 암호화와 복호화에 같은 암호키를 사용하는 알고리즘 동일한 키를 주고받기 때문에 매우 빠르다. 하지만 전달 과정에서 해킹 위험에 노출 공개키 / 비대칭키 대칭키의 키 분배 문제를 해결하기 위해 고안 됐다. (대칭키일 땐 송수신자들만 키를 알아야함) 분배가 복잡하고 어렵지만 공개키와 비밀키로 분리할 경우, 남들이 알아도 되는 공개키만 공개해도 됨 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화 할 수 있는 암호키(공개키)를 대중에 공개한다. HTTP & HTTPS HTTP (HyperText Transfer Protocol) 인터넷상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTP는 텍스트 교환 -> 해킹 시 내용 노출되는 보안 이슈가 존재 HTTPS(HyperText Transfer Protocol Secure) 란? 인터넷상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTP

[우아한테크코스 5기] 프리코스 1주차 회고록 [내부링크]

우아한테크코스 5기, 1주차 프리코스 이번 우아한테크코스 1주차 프리코스 문제는 저번 기수와 달랐습니다. 코딩 테스트가 사라져서 그런지, 유형이 코딩 테스트 같은 느낌이었습니다. 제 생각이지만 기존보다 프리코스 1주를 더 하는 것을 보면, 1주차는 코테 느낌의 미션이고 그 후부터는 이전과 동일하지 않을까 조심스레 추측하고 있습니다. 총 7문제가 주어지고, 기능 요구 사항을 잘 맞추면서 풀면 됩니다. 문제의 난이도 같은 경우 개인적으로 5번까지는 정말 쉬웠고 6~7번은 난이도가 확 올라서 당황했습니다. 문제의 유형은 일반적인 문자열 및 구현 문제였습니다. 어떤 문제가 나왔고, 어떻게 풀었는지 문제의 유형은 일반적인 문자열 및 구현 문제였습니다. 사실 저번 기수까지는 한 눈에 알아볼 수 있는 변수명과 함수명을 작성하고, 인덴트 2도 맞춰야 했던 걸로 알고있습니다. 이번 1주차에는 별 다른 조건은 없었지만, 다들 슬랙을 보니 맞추시려고 하셔서 저도 이왕이면 우테코의 정신을 이으려고 깔끔하

[자바] 프로그래머스 - 스킬트리 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더 일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더 와 같은 스킬트리는 가능하지만, 썬더 → 스파크 나 라이트닝 볼트 → 스파크 → 힐링 → 썬더 와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유... school.programmers.co.kr 문제를 요약하자면 다음과 같습니다. 주어진 skill의 값이 "CBD" 라면, B를 스킬트리에 넣기 위해선 무조건 선행스킬인 C가 와야하고, D가 오려면 A,B 가

[K-해커톤] 제10회 해커톤 수상 및 마무리 [내부링크]

[K-해커톤] 제10회 해커톤 수상 및 마무리 4월부터 팀원을 모집하고 약 6개월간 열심히 한 결과 최종 결선에 들었습니다. 전국 200팀 중 17팀 이내로 들어야 결선이고, 동시에 수상 확정이니 결선오고는 마음은 조금 편했습니다. 개발을 시작하면서 전국 단위 해커톤을 나가서 수상도 받고 너무 감회가 새로웠습니다! 해커톤 전체 진행 과정이 궁금하시다면 같은 카테고리 내의 글을 참고해주시면 됩니다 :) 다들 짧은 발표와 함께 시연 영상으로 발표를 마쳤는데, 확실히 심사위원 분들이 대단하신 분들이라서 질문의 깊이가 본선 때보다 훨 깊었습니다. 각 팀별 발표를 진행하고 수상식을 진행하고 해커톤이 막을 내렸습니다. 오른쪽 사진과 같은 명함을 받고, 왼쪽 사진과 같은 세미나실에서 발표를 진행했습니다. 앞에 강단에서 발표를 진행했습니다. 그리고 다들 수상을 하고, 단체 기념 사진을 찍으면서 10회 해커톤은 끝이 났습니다. 이번 해커톤을 진행하면서, 기획과 디자인의 중요성을 많이 느꼈습니다. 개

[우아한테크코스 5기] 프리코스 2주차 '숫자 야구 미션 회고록 [내부링크]

이번 2주차 미션은 '숫자 야구' 미션이었습니다. 문제 해결을 위한 알고리즘은 간단하였지만, 구조화 및 클린코드 작성이 어려웠던 것 같습니다. 이번 미션을 진행하면서 배운 것, 느낀 점들을 적어볼까 합니다. 2주차 미션 진행 회고록 기존에 스프링을 꾸준히 하면서 MVC 패턴에 대해 잘 알고 있었다고 생각했습니다. 하지만, 미션을 진행하면서 스프링과 다른 방식이다 보니 어떤 식으로 구현을 할지 막막했습니다. 아마 우테코에서 기능 구현 목록을 먼저 작성하라한 의도가 이런 부분에서 "먼저 고민을 하고, 정해진 대로 구현을 해봐라!"라는 느낌인 것 같았습니다. 하여튼, 이번 미션을 통해서 MVC 패턴을 다시 공부하고, 적용을 했습니다. 또한 변수명과 메서드의 분리와 조금 더 협업하기 좋은 코드가 무엇인지 계속 고민하면서 코드를 작성했습니다. 아직은 기능 구현 목록을 작성하고 바로 코드로 넘어가기는 힘들지만 어떤식으로 진행해야 할지에 대해서는 감을 잡은 것 같습니다. 기존의 대책없이 개발을

2023년 계획과 2022년도 회고록 [내부링크]

이제 반오십까지 며칠 남지 않았습니다. 항상 연간 회고록을 보면 시간이 빨리간다고 적었더라고요. 늘 느끼지만 한살 한살 들 수록 한 해가 더욱 빨리 지나가는 것 같습니다. 작년에 세운 2022년도 계획과 성취여부 1. 자바 스프링 백엔드 프로젝트 진행, 인공지능 공부 및 활동 전국 대학생 앱 개발 챌린지 K-해커톤 수상 (스프링 프로젝트) 교내 SW 개발 대회 수상 (스프링 프로젝트) Community API Server 제작 및 리팩토링 진행 (스프링 프로젝트) Kotlin Simple Project 제작 (코틀린 맛보기 공부) 캡스톤디자인 다중 서버 프로젝트 진행 (스프링 프로젝트) 파이썬, 스프링 멘토 활동 진행 우아한테크코스 5기 지원 2. 알고리즘, 면접 공부하기 올해 초에 백준 티어 골드5에서 골드1로 올렸습니다. 프로그래머스를 본격적으로 풀기 시작해서 150문제를 풀었습니다. 면접 스터디, 개인 공부 진행, 전공 네트워크 공부 3. 정보처리기사, 장발하기, 다이어트 취업

스프링부트 https 배포 후 CORS 에러 해결하기 [내부링크]

스프링부트 https 배포 후 CORS 에러 해결하기 프론트엔드 개발자라면 아래와 같은 CORS 에러를 지긋지긋하게 보게됩니다. 혹은 서버 개발자들은, 프론트엔드 개발자에게 "CORS 터졌어요!" 라고 전달 받습니다. 서버 개발을 마치고 http 배포를 하게되면, CORS 문제를 해결해주기 위해 config 파일을 건들게됩니다. https 배포를 하면 http와 다르게 CORS 관련 코드 기존과 다르게 변경해줘야합니다. 먼저 기존에 http 배포 후 CORS 문제는 아래 코드로 해결할 수 있었습니다. @Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); confi

[요고요구] API 서버 제작 #5 : 팀프로젝트 마무리 및 배포 / 프로젝트 회고록 / 수상 [내부링크]

[요고요구] API 서버 제작 #5 : 팀프로젝트 마무리 및 배포 / 프로젝트 회고록 / 수상 https://github.com/sosow0212/yogoyogu GitHub - sosow0212/yogoyogu: MJU ICT SW개발 대회 '요고요구' API 서버 MJU ICT SW개발 대회 '요고요구' API 서버. Contribute to sosow0212/yogoyogu development by creating an account on GitHub. github.com 최종 프로젝트 완성 코드는 위에 깃허브를 통해 확인하실 수 있습니다. 프로젝트 마무리 및 배포 백엔드 서버 배포는 지난 주에 끝났습니다. 프론트엔드 서버 배포 및 최종 완성을 기다리면서, 백엔드 서버를 http에서 https로 바꾸는 작업을 진행했습니다. 한국 도메인 사이트를 이용할 때 Route53 및 SSL 발급이 안 되는 이슈가 있어서 타 도메인을 이용하고 로드밸런서와 Route53을 이용해서 http

[자바] 프로그래머스 : 숫자 짝꿍 (문자열, 구현) [내부링크]

[자바] 프로그래머스 : 숫자 짝꿍 (문자열, 구현) https://school.programmers.co.kr/learn/courses/30/lessons/131128 코딩테스트 연습 - 숫자 짝꿍 두 정수 X , Y 의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X , Y 의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X , Y 의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X 와 Y 의 짝꿍은 X 와 Y 에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예... school.programmers.co.kr 정답률 21%, Level 1 문제입니다. 아직 65명 밖에 안 풀어서 정답률은 추후에 올라갈 수 있습니다

[자바] 2019 카카오 블라인드 공채 : 오픈채팅방 (자료구조, 구현) [내부링크]

[자바] 2019 카카오 블라인드 공채 : 오픈채팅방 (자료구조, 구현) https://school.programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된... school.programmers.co.kr 정답률 55%, Level 2 2019년도 카카오 블라인드 채용 코딩테스트 문제 문제 분

[자바] 프로그래머스 : 타겟 넘버 (dfs, bfs, 완전탐색) / 유사 문제 [내부링크]

[자바] 프로그래머스 : 타겟 넘버 (dfs, bfs, 완전탐색) / 유사 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solut... school.programmers.co.kr Level2, 정답률 57% 문제 분석 및 해결 매개변수로 int[] number

[자바] 백준 2204번 : 도비의 난독증 테스트 (문자열, 해시) [내부링크]

[자바] 백준 2204번 : 도비의 난독증 테스트 (문자열, 해시) https://www.acmicpc.net/problem/2204 2204번: 도비의 난독증 테스트 2204번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 도비의 난독증 테스트 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 2541 1317 1107 55.405% 문제 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 그러고 싶지 않았기 때문에 대소문자를 마구 섞어가며 단어들을 제시했다. 예를 들어, apPle은 Bat보다 앞서지만 AnT보다는 뒤에 ... www.acmicpc.net 브론즈1 정답률 55% 백준 보다가 해시로 풀기 좋은 문제가 있어서 올려봅니다. input n 과 String[n] 배열 요소의 값을 받아줍니다. 그리고

[자바] 프로그래머스 : 영어 끝말잇기 [내부링크]

[자바] 프로그래머스 : 영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → moth... school.programmers.co.kr Lv2, 정답률 68% 문제 해설 및 풀이 전형적인 구현 문제입니다. round 와 who 카운팅 해주는 부분만 신경쓰

[개발일기 #23] 1일 1커밋 1년 달성 및 지금까지의 개발 회고록 [내부링크]

[개발일기 #23] 1일 1커밋 1년 달성 및 지금까지의 개발 회고록 아직 일주일 정도는 남았지만 드디어 1일1커밋을 한지 일년이 됐습니다. 좋아하는 분야에서 1년동안 하루도 쉬지 않고 달려왔다는 생각에 너무 뿌듯한 것 같습니다. 놀고 싶은 날도 있었고, 여행 가는 날에도 있었지만 항상 공부를 조금이라도 하고 놀았습니다. 약 1년동안 정말 다방면으로 많은 역량이 상승 됐다는게 느껴집니다. 1년 전과 비교하면, 개발에 대해 거의 무지한 상태에서 프론트엔드도 공부하고, 스프링 공부도 하고, 전국 개발 대회에서 수상도 하고, 동기들도 알려줄 수 있다는 점에서 스스로 정말 많은 발전이라고 생각합니다. 무엇보다도 포기가 빠르고 금방 질려하는 제 성격상 좋아하더라도 맨날 하는 건 거의 없었는데, 1년간 하루도 쉬지않고 무엇인가 처음으로 이룬게 프로그래밍에 관련된 것이라서 더욱 보람차고 뿌듯한 것 같습니다. 도전을 진행하면서 항상 '정확한' 공부를 했다고는 자부할 수 없지만 늘 '올바른' 방향으

기술 면접 준비 #3 : 네트워크, Java [내부링크]

기술 면접 준비 #3 : 네트워크, Java Network OSI 7계층 Application (응용 계층) - HTTP, FTP, DNS Presentation (표현 계층) - JPEG, MPEG Session (세션 계층) - API, Socket Transport (전송 계층) - 흐름 제어, 혼잡 제어, 오류 제어 전송 계층은 1:1 연결된 송신과 수신 호스트 즉, 종단간 호스트에 신뢰성 관련 기능을 제공한다. Network (네트워크 계층) - IP, ICMP, ARP Data Link (데이터링크 계층) - 오류 제어, 흐름 제어, 회선 제어 물리적으로 1:1 연결된 호스트 사이의 전송 즉, 직접 묶여있는 호스트-노드 또는 노드-노드 사이에서 신뢰선 관련 기능을 제공한다. Physical (물리 계층) - 전기적, 물리적 세부 사항을 정의하는 계층 계층을 나눈 이유 ==> 통신이 일어나는 과정에서 문제가 발생하면, 그 단계만 수정하면 되기 때문이다. TCP 3 way h

[자바] 프로그래머스 : n^2 배열 자르기 (구현, 그리디) [내부링크]

[자바] 프로그래머스 : n^2 배열 자르기 (구현, 그리디) https://school.programmers.co.kr/learn/courses/30/lessons/87390 코딩테스트 연습 - n^2 배열 자르기 정수 n , left , right 가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n 행 n 열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n 에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i 행 i 열까지의 영역 내의 모든 빈 칸을 숫자 i 로 채웁니다. 1행, 2행, ..., n 행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr 이라 할 때, arr[left] , arr[left+1] , ..., arr[right] 만 남기고 나머지... school.programmers.co.kr 정답률 60%, Level 2 문제입니다. 예시가 굉장히 친절한 문제였습니다. 문제를 보고

AWS MySQL 데이터베이스 해킹 당한 후기 (비트코인 내놔!) [내부링크]

AWS MySQL 데이터베이스 해킹 (비트코인 내놔!) 서버 배포 후 테스트 하려고 데이터베이스를 아침에 들어갔는데 위에 사진과 같이 스키마 명이랑, 내부에 이상한 내용이 추가 되었습니다. 이게 뭔가 싶어서 자세히 봤는데 "비트코인 0.26개를 어디로 보내지 않으면 딥웹에 니 정보 다 뿌려버리겠다!" 라는 데이터를 인질로 잡은 해커의 소행이었습니다. 다행히도 서버 데이터에는 뭐 별 거 없어서 다시 팠지만, 어떻게 해킹 됐을까에 대해서 고민을 좀 해보았습니다. 먼저 교내 경진대회라서 큰 서버가 필요하지 않다라고 생각했기에, EC2 인스턴스 생성 후 RDS에 데이터베이스 연결을 하지 않았습니다. 즉 EC2 서버 안에 내부적으로 도커로 MySQL을 띄워서 쓰는 방식으로 진행했습니다. 비밀번호에 관해서도 별 생각 없이 쉬운 비밀번호로 (root 같은) 세팅했습니다. 해커 입장에서는 여러 호스트 주소에 접속을 시도하는 브루트포스 프로그램을 세팅해놓고 username, password 를 둘다

[자바] 프로그래머스 : 다음 큰 숫자 (구현) [내부링크]

[자바] 프로그래머스 : 다음 큰 숫자 (구현) https://school.programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,0... school.programmers.co.kr 정답률 70%, Level 2 구현 문제입니다. 문제 해설 문제는 간단합니다. n이 주어질 때, n을 2진수로

기술 면접 준비 #2 : 컴퓨터 구조, Java [내부링크]

기술 면접 준비 #2 : 컴퓨터 구조, Java Computer Architecture 고정 소수점 / 부동 소수점 고정 소수점 소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식 (정수 + 소수) 장점 : 실수를 정수부와 소수부로 표현하여 단순하다. 단점 : 표현의 범위가 너무 적어서 활용하기 힘들다. (정수부 15bit, 소수부 16bit) 부동 소수점 실수를 가수부 + 지수부로 표현한다. 가수 : 실수의 실제 값 표현 크기 표현, 가수의 어디쯤 소수점이 있는지 나타냄 지수의 값에 따라 소수점이 움직이는 방식을 확용한 실수 표현법! 패리티 비트 / 해밍 코드 패리티 비트 정보 전달 과정에서 오류의 여부를 검사하기 위해 데이터 각 문자에 1비트를 전해 전송한다. 종류는 짝/홀수가 있으며 전체 비트에 짝/홀수에 맞게 비트를 정한다. 해밍 코드 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 뜻함 패리티 비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아

[자바] 2018 카카오 신입 공채 : 뉴스 클러스터링 (문자열, 구현) [내부링크]

[자바] 2018 카카오 신입 공채 : 뉴스 클러스터링 (문자열, 구현) https://school.programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개... school.programmers.co.kr 2018년도 카카오 신입 공체 1차 코딩테스트 문제인 '뉴스 클러스터링'

[자바] 2022 카카오 블라인드 : 신고 결과 받기 (Hash, 구현) [내부링크]

[자바] 2022 카카오 블라인드 : 신고 결과 받기 (Hash, 구현) https://school.programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 ... school.programmers.co.kr 정답률 32%, Level 1 Level 1단계이지만, 정답률은 낮은 카카오 블라인

[자바] 프로그래머스 : 괄호 회전하기 (스택, 구현) [내부링크]

[자바] 프로그래머스 : 괄호 회전하기 (스택, 구현) https://school.programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. () , [] , {} 는 모두 올바른 괄호 문자열입니다. 만약 A 가 올바른 괄호 문자열이라면, (A) , [A] , {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A , B 가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다. 대괄호, 중괄호, 그리고 소괄호로 이루어... school.programmers.co.kr 정답률 61%, Level 2 문제입니다. 비교적 쉬운 구현 + 스택 문제입니다. 문제 해설 및 풀이

기술 면접 준비 #1 : 컴퓨터 구조, Java [내부링크]

기술 면접 준비 #1 : 컴퓨터 구조, Java Computer Architecture 컴퓨터의 구성 컴퓨터는 하드웨어와 소프트웨어로 구성 하드웨어는 '중앙처리 장치(CPU), 기억장치(RAM, HDD), 입출력장치(마우스, 프린터)' 로 구성 소프트웨어는 '시스템 소프트웨어(운영체제, 컴파일러), 응용 소프트웨어(워드, 카톡 등등)' 으로 구성 하드웨어는 시스템 버스로 연결되어 있고, 시스템 버스는 명령 제어 신호로 각 장치로 실어나르는 역할을 수행 중앙처리장치 CPU는 '주기억장치'에서 프로그램 명령어와 데이터를 읽고 처리 및 순서를 제어한다. 비교와 연산을 담당하는 산술논리연산장치(ALU) 와 명령어 해석 및 실행을 담당하는 제어장치, 속도가 빠른 기억장소인 레지스터로 구성 기억장치는 주/보조기억장치로 나뉘고 RAM, ROM은 여기 속한다. 실행중인 프로그램과 같은 프로그램에 필요한 데이터를 일시 저장한다. 보조기억장치는 하드디스크를 말하며, 주기억장치 RAM 같은 것에 비해

[요고요구] API 서버 제작 #1 : 프로젝트 설정 및 도커 세팅 (Docker compose) [내부링크]

[요고요구] API 서버 제작 #1 : 프로젝트 설정 및 도커 세팅 (Docker compose) 교내 SW개발대회를 위한 백엔드 서버 개발기입니다. 프로젝트 설정하기 Java11, Gradle, Spring boot 2.7.3 디펜던시 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.projectlombok:lombok:1.18.22' compileOnly 'org.projectlombok:lombok' runtimeOnly 'mysql:mysql-connector-java' annotationProc

[K-해커톤] API 서버 제작 #10 : Product 리팩토링 (이미지 추가) [내부링크]

[K-해커톤] API 서버 제작 #10 : Product 리팩토링 (이미지 추가) https://github.com/sosow0212/WhereHaveYouBeenToGo GitHub - sosow0212/WhereHaveYouBeenToGo: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. Contribute to sosow0212/WhereHaveYouBeenToGo development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 생각해보니 상품 등록에 이미지 업로드 기능을 까먹었습니다. 가이드 상품인데 사진이 없으면 안되므로 오늘은 기존에 만든 Product API 를 리팩토링 했습니다. 리팩토링 시작 먼저 사진을 저장해야하므로, Image 엔터티를 만들어주겠습니다. package hackatho

[요고요구] API 서버 제작 #2 : 메일 인증 회원가입 및 게시판 API 만들기 [내부링크]

[요고요구] API 서버 제작 #2 : 메일 인증 회원가입 및 게시판 API 만들기 https://github.com/sosow0212/yogoyogu GitHub - sosow0212/yogoyogu Contribute to sosow0212/yogoyogu development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 자세한 코드는 본문에 없으니 깃허브 참조 부탁드립니다. 교내 건의 시스템을 넣는 서비스 특성상 반드시 구현해야 하는 기능이 두 가지가 있습니다. 1. 어떻게 교내 학생 회원인 걸 확인하고 가입하는지? 2. 어떻게 학생회 회원인 걸 확인하고 가입하는지? 위 두 가지의 경우가 해결되지 않으면 학교와 관련없는 타인이 게시판을 망칠 수가 있습니다. 따라서 오늘은 위 문제를 잡기 위해서 먼저 1번 과정, 교내 학생 회원 가입을 먼저 진행하겠습니다. 어떻게 교내 학생 회원인 걸 확인하고 가입하는지? 명지

[요고요구] API 서버 제작 #3 : 게시판 말머리 달기 및 페이징처리, 학생회 답글 구현 [내부링크]

[요고요구] API 서버 제작 #3 : 게시판 말머리 달기 및 페이징처리, 학생회 답글 구현 https://github.com/sosow0212/yogoyogu GitHub - sosow0212/yogoyogu: MJU ICT SW개발 대회 '요고요구' API 서버 MJU ICT SW개발 대회 '요고요구' API 서버. Contribute to sosow0212/yogoyogu development by creating an account on GitHub. github.com 자세한 코드는 깃허브에서 확인하실 수 있습니다. 질문 및 피드백은 환영입니다 :) 프론트엔드 쪽에서 기획을 살짝 바꿨습니다. 1. 게시글에 말머리 넣기 (학생회 분류) 2. 말머리에 해당하는 학생회만 답변 가능 3. 게시글 리스트 페이징 처리 10건씩, 최신순 및 좋아요 순 정렬 프론트엔드 측의 요구를 만족하기 위해서 먼저 게시글의 말머리를 넣었습니다. 말머리 구현을 위해서 처음에 Entity 를 하나 만들까

[Docker] 도커 사용법 정리 / MySQL, 스프링부트 서버 같이 띄우기 (docker-compose) [내부링크]

[Docker] 도커 사용법 정리 / MySQL, 스프링부트 서버 같이 띄우기 개발환경 : 맥 M1 애플 실리콘 준비물 : 스프링부트 완성된 프로젝트 (java11, jdk16 으로 진행) 1. Homebrew로 Docker 설치하기 (터미널로 진행) 1-1. Homebrew 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 1-2. Docker 설치 brew install --cask docker 2. 프로젝트 빌드 해주기 (.jar 파일을 만들어 줘야함) -> bootJar 클릭해주면 build-libs 안에 .jar 파일이 생깁니다. 3. Dockerfile 만들어주기 (.jar와 같은 위치에서) -> Dockerfile은 확장자명 없습니다. FROM openjdk:11 ARG JAR_FILE=*.jar COPY ${JAR_FILE} app.jar EN

[요고요구] API 서버 제작 #4 : 스프링 AWS 배포하기 (docker, 프리티어 램 늘리기, https) [내부링크]

[요고요구] API 서버 제작 #4 : 스프링 AWS 배포하기 (docker, 프리티어 램 늘리기) 서버를 다 만들었으니, AWS EC2를 이용해서 배포해보겠습니다. (자세한 배포 내용은 추후에 따로 포스팅 하겠습니다! 백엔드-DevOps 탭에서 확인하실 수 있습니다.) 먼저 저희는 도커를 이용해서 프로젝트 개발 세팅을 진행해주었습니다. 도커 컨테이너에는 (MySQL + Jar 실행) 의 내용을 담아서 실행을 실행시키면, 데이터베이스와 스프링 서버가 같이 켜집니다. 데이터베이스는 로컬에서 이용할 것이기 때문에, 따로 AWS RDS 서버를 대여하지 않아도 됩니다. 1. AWS EC2 인스턴스 생성 (Ubuntu 22.04 LTS, 프리 티어) 해주고나서, 터미널에서 대여한 클라우드 서버로 들어가줍니다. 그리고 다음 명령어를 이용해서 클라우드 서버의 시간을 한국 시간으로 바꿔줍니다. sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia

기술 면접 대비 스터디 계획표 [내부링크]

기술 면접 대비 스터디 계획표 개발자 기술 면접을 준비하는 사람들을 위한 계획표입니다. 커리큘럼은 깃허브 자료 조사 및 면접 후기 글을 바탕으로 제작했습니다. 기술 면접 및 알고리즘 준비 (With 승범, 태수, 태인, 상혁, 정환, 재호) <무엇을 할 것인가?> → 과 특성상 CS 과목은 많이 없으므로 CS와 기초 지식은 매주 병행 컴퓨터 구조 / 네트워크 / 운영체제 / 소프트웨어 / 데이터구조 / 데이터베이스 / 보안 / 알고리즘 자바/스프링 기술 면접 대비 <스터디 진행 방식> 매주 범위 공부 및 각자 파트 발표 및 매서운 질문 및 피드백 이전 범위 퀴즈 (각자 한 문제씩 랜덤으로 한 명한테 퀴즈 내기) 모의 면접 <언제 진행?> 스터디 주차 별로, 1회차씩 디테일하기 / 주 1회 매주 수요일 저녁 10시 온라인 (디스코드), 시간은 대략 4~50분 내외 시험기간 일주일 전 면제 <회식> 회식 → 다음주 일요일 (9월 18일) → 상혁이가 고르자 <주차 별 목표 학습> 1회차

[K-해커톤] API 서버 제작 #9 : 상품 좋아요 처리 구현하기 [내부링크]

[K-해커톤] API 서버 제작 #9 : 상품 좋아요 처리 구현하기 https://github.com/sosow0212/WhereHaveYouBeenToGo GitHub - sosow0212/WhereHaveYouBeenToGo: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. Contribute to sosow0212/WhereHaveYouBeenToGo development by creating an account on GitHub. github.com 피드백 및 질문은 환영입니다 :) 오늘은 상품 좋아요 및 좋아요 취소 기능을 구현했습니다. 이제 굵직한 기능들은 모두 구현했고, 자잘하게 필요한 것들만 개발하면 해커톤 스프링 프로젝트는 완성입니다. 다음주가 개발 회의인데, 잠정적으로 이제 개발을 잠시 중단하고 회의를 마치고 필요한 기능들을 더 구현하면 마무리 될 것 같

[Spring & Java] 스트림(Stream) 사용 이유 및 for loop와의 차이점 / 리팩토링 해보기 실전 예제 [내부링크]

[Spring & Java] 스트림(Stream) 사용 이유 및 for loop와의 차이점 , 리팩토링 해보기 실전 예제 Java 기반 Framework 를 다루다보면 컬렉션 데이터를 처리하는 경우가 많이 생깁니다. 이런 경우에 스트림을 배우기 이전에는 for 문 혹은 forEach를 통해서 복잡하게 처리를 해주었습니다. 스트림은 이런 문제를 보다 간단하고 성능 개선을 위해 등장했습니다. 스트림을 게시글을 통해 함께 배워보고, 리팩토링을 해봅시다! 스트림(Stream) 이란? - 스트림은 Java8 에서 추가된 기능입니다. - 컬렉션 데이터를 선언형으로 쉽게 처리할 수 있습니다. - 스트림을 이용하면 루프문을 사용하지 않아도 되고, 루프문 중첩을 사용할 필요가 없습니다. --> 성능 개선 및 코드가 간결해집니다. - 병렬처리를 별도의 멀티 쓰레드 구현 없이 구현할 수 있습니다. 스트림(Stream) 연습 해보기 간단한 자바 코드로 스트림을 연습해보겠습니다. 예제는 다음과 같습니다.

[개발일기 #22] 22년 9월의 개발 공부 - 해커톤 서버 개발 및 PS, 기술 면접 준비 [내부링크]

[개발일기 #22] 22년 9월의 개발 공부 - 해커톤 서버 개발 및 PS, 기술 면접 준비 이번 달에는 개강을 했습니다. 항상 느끼지만, 개강하면 1학년 때처럼 정말 다 때려치우고 맨날 놀고 싶은 것 같아요c 8월 중순부터 현재까지 인프라에 대한 이론 공부를 주로 했고, 해커톤 서버 개발을 거의 다 끝냈습니다. 그리고 본격적으로 취준생이 되는 내년에 조금이라도 편하기 위해서 학교 친구들과 미리 기술 면접 스터디를 계획하고, 코테 준비를 위해서 프로그래머스 문제 또한 다시 풀고 있습니다. 그리고 공부하면서 항상 아무런 의심도 없이 써왔던 자바 문법이 문득 궁금해져서 찾아보고 기본기를 더 잡았고, 토이 프로젝트를 진행하면서 객체지향과 클린코드의 필요성 그리고 테이블 설계의 중요성을 많이 느꼈습니다. 특히나 포럼을 통해서 Entity 내부 메서드를 잘 활용하는 것 또한 중요하다는 것을 알게 되었습니다. 스프링 프레임워크 필터와 AOP에 대해 더 공부해야할 것 같습니다. 공통 로직을 따로

[자바] 백준 1038 : 감소하는 수 (브루트포스 + 백트래킹) / 문제 접근 방법 및 풀이 유도하기 [내부링크]

[자바] 백준 1038 : 감소하는 수 (브루트포스 + 백트래킹) / 문제 접근 방법 및 풀이 유도하기 https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 1038번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 감소하는 수 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 20262 5957 4724 32.374% 문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면... www.acmicpc.net 골드5 난이도의 브루트포스 문제 문제 설명 및 해결 방법 구하기 문제는 N번째 감소하는 수를 구하는 문제입니다. 감소하는 수는

[K-해커톤] API 서버 제작 #8 : 유저 맞춤형 상품 추천 및 태그 선택시 관련 상품 return 해주기 [내부링크]

[K-해커톤] API 서버 제작 #8 : 유저 맞춤형 상품 추천 및 태그 선택시 관련 상품 return 해주기 https://github.com/sosow0212/WhereHaveYouBeenToGo GitHub - sosow0212/WhereHaveYouBeenToGo: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. Contribute to sosow0212/WhereHaveYouBeenToGo development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 오늘은 유저의 태그에 맞는 맞춤형 상품 추천 기능과, 태그 선택시 그 태그에 해당하는 상품을 조회하는 기능을 구현했습니다. 태그 선택시 상품 조회는 인스타그램 및 점핏 사이트의 태그 검색과 유사하다고 생각하시면 됩니다. 프로젝트 주제가 '성향이

[자바] 백준 14888 연산자 끼워넣기 / 브루트포스(백트래킹) 풀이, 문제 접근 방법 및 유사 문제 [내부링크]

[자바] 백준 14888 연산자 끼워넣기 / 브루트포스(백트래킹) 풀이, 문제 접근 방법 및 유사 문제 질문 및 피드백은 환영입니다 :) https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 문제 N개의 수로 이루어진 수열 A 1 , A 2 , ..., A N 이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 6... www.acmicpc.net 문제 해설 및 분석 실버1 난이도의 브루트포스(백트래킹 이용) 문제입니다. 코딩테스트에

[K-해커톤] API 서버 제작 #6 : 거래 내역 및 리뷰 처리하기 [내부링크]

[K-해커톤] API 서버 제작 #6 : 거래 내역 및 리뷰 처리하기 https://github.com/sosow0212/WhereHaveYouBeen GitHub - sosow0212/WhereHaveYouBeen: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. Contribute to sosow0212/WhereHaveYouBeen development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 오늘은 거래 내역 및 리뷰 처리를 구현하였습니다. 이 두 가지를 위해서 테이블 설계에 고민할 점이 있었습니다. 1. 리뷰 작성의 유무는 어떻게 확인하는가? 2. 사용자가 동일한 상품을 여러 번 이용할 경우 리뷰는 어떻게 처리할 것인가? 이 두 가지를 한 번에 해결하기 위해서 History

[K-해커톤] API 서버 제작 #7 : 유저 관련 API 만들기 [내부링크]

[K-해커톤] API 서버 제작 #7 : 유저 관련 API 만들기 https://github.com/sosow0212/WhereHaveYouBeenToGo GitHub - sosow0212/WhereHaveYouBeenToGo: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. Contribute to sosow0212/WhereHaveYouBeenToGo development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 오늘은 유저 관련 API 를 구현했습니다. 유저 API 에는 다음과 같은 기능이 들어있습니다. '유저 정보 조회, 정보 수정, 탈퇴, 현재 진행중인 거래 확인' 이걸 지금 만드는 이유는, 서버의 핵심 기능을 모두 구현하고 유저 조회를 구현하기 위해서입니다. 서버의 핵심기능이 담긴 테이블들

[Spring] 서블릿 필터 & 스프링 인터셉터 [내부링크]

현재 진행 중인 모든 프로젝트에서 고민하고 있는 부분이 있습니다. 현재 제가 만든 스프링 프로젝트에서 인증은 대부분 컨트롤러 레이어에서 처리합니다. 이 부분은 컨트롤러와 서비스 레이어 사이에 필터 계층을 두고 거기서 처리하는게 좋다고 현업에 계신 선배님에게 조언을 들었습니다. 이걸 필터 계층으로 옮기기 위해서 사전 공부가 필요하다고 생각했고, 마침 최근에 우아한 Tech 에서 좋은 테크톡이 업로드 되어서 영상의 내용과 저의 생각을 더해서 올려봅니다. 서블릿 필터 Filter는 J2EE 표준 스펙으로, Servlet API 2.3부터 등장했다. Dispatcher Servlet에 요청이 전달되기 전과 후에 부가작업을 처리하는 객체이다. 서블릿 필터에서는 init, doFilter, destroy 메서드를 제공한다. FilterConfig 는 필터의 정보를 담고있는 객체이고, 매개변수로 final을 붙여서 활용한다. doFilter 메서드에서는 final을 붙여 FilterChain 매

[K-해커톤] API 서버 제작 #1 프로젝트 생성 및 초기 작업 / Member & Sign API [내부링크]

[K-해커톤] API 서버 제작 #1 프로젝트 생성 및 초기 작업 / Member & Sign API https://github.com/sosow0212/WhereHaveYouBeen GitHub - sosow0212/WhereHaveYouBeen: k-해커톤 '어디까지 가봤니?' 서비스의 API 서버입니다. k-해커톤 '어디까지 가봤니?' 서비스의 API 서버입니다. Contribute to sosow0212/WhereHaveYouBeen development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 프로젝트 리팩토링시 아래 내용들은 일부 바뀔 수 있습니다. K-해커톤 결선에 진출하고 본격적으로 '어디까지 가봤니?' 서비스의 API 서버를 개발하게 되었습니다. 먼저 스프링 서버의 설정은 다음과 같습니다. 일단 프로젝트 기본 설정은 다음과 같습니다. Java, Gradle Java11, JDK16, Jar Sp

[K-해커톤] '어디까지 가봤니?' 서비스 API 서버 제작 계획 [내부링크]

[K-해커톤] '어디까지 가봤니?' 서비스 API 서버 제작 계획 해커톤 결선 진출을 해서 프로토타입이 아닌, 본격적으로 프로젝트 제작을 시작했습니다. 팀원은 프론트엔드 2명, 머신러닝 1명, 백엔드 1명으로 구성되어있고, 저는 스프링부트를 이용한 전반적인 API 서버 제작을 맡았습니다. 또한 머신러닝을 활용하기 위해서 Python Flask 프레임워크를 이용해서 서버를 총 두 개 구현할 예정입니다. 본 게시글은, 추후에 구체적인 설계 회의를 진행하면서 더욱 채워져나갈 예정입니다. 서버 제작 예상 순서 1. Spring 서버 제작 2. Flask 서버 제작 3. AWS 배포 4. 연동 API 설계 추후 사진 첨부 예정

[K-해커톤] 제10회 해커톤 본선 합격 및 결승 진출 [내부링크]

정말 지옥의 해커톤 본선이 드디어 끝났습니다. 그동안 많은 회의도 하고, 서로 고민도 많이 했습니다. 발표를 제가 했는데, 하필 괌 여행간게 발표 전 주라서 어쩔 수 없이 괌에서 새벽까지 회의도 같이 참여했습니다. 단체 아이디어가 중요한 만큼 한 명이라도 제대로 안 하면 그대로 팀원들이 피해를 받습니다. 사실 떨어졌으면 속상할 뻔 했지만, 합격을 해서 정말 하나도 아깝지가 않고 오히려 너무 기분이 좋은 것 같습니다! 팀원들과 PPT 및 자료들을 만들고 발표 준비를 했습니다. 이번 본선 발표에서 합격해야 결선을 가고, 장려상 이상을 확보하기 때문에 발표 대본도 열심히 외웠습니다. 코로나로 인해 3년만에 처음으로 오프라인 발표를 한다고 그래서 도곡 카이스트로 갔습니다. 단상 앞에 서서 발표하기 때문에, 집에서 아무리 연습해도 환경이 달라서 어색할 수 있습니다. 그래서 조금 일찍 출발했습니다. 여기서 발표 연습 좀 미리 하다가 자료 세팅하고 발표를 진행했습니다. 발표를 마치고 다들 결과

[K-해커톤] 제10회 해커톤 선발팀 합격 [내부링크]

[K-해커톤] 제10회 해커톤 선발팀 합격 전국 대학생 개발자끼리 아이디어톤 + 메이커톤으로 겨루는 K-해커톤은 매년 한 번씩 열립니다. 언젠가 지원해야겠다라는 생각을 가지고 이번년도에 드디어 뜻이 맞는 같은 과 형들과 동생 한 명, 총 4명의 인원으로 지원을 했습니다. K-해커톤의 이번 주제는 사회문제 및 공익문제 혹은 지역의 특수성을 반영한 다양한 자유주제를 바탕으로 ICT 기술을 활용하는 챌린지입니다. 즉 아이디어톤 + 메이커톤이 결합된 해커톤이라고 보면 됩니다. 저희는 지역의 문제점을 주제로 웹앱 플랫폼 구축 및 개발을 기획했습니다. 사실 그동안 진행 과정을 포스팅 하고 싶었는데, 문제가 생길 수 있기에 조금 미뤘다가 결과가 나와서 오늘은 지금까지의 상황을 포스팅 해보려고 합니다. 이번 K-해커톤에는 엄청나게 많은 사람들이 참가했습니다. 저희 대학교의 상징 동물인 백마를 팀이름으로 걸고 자랑스럽게 통과했습니다 아이디어톤을 위해서 무슨 아이디어 수집? 그런 것도 많이 했는데

[PS] 네트워크 프로토콜 중간고사 셀프 퀴즈 [내부링크]

네프 시험 셀프 퀴즈 internet 과 Internet의 차이점 2. 이더넷의 통신 원리를 쓰고, 충돌시 재전송 처리는 어떻게 되는지? 3. 네트워크 계층, 전송 계층, 응용 계층의 프로토콜을 1개씩 쓰시오 4. MAC 주소는 hop-to-hop 통신을 한다 (O, X) 5. IP 주소는 End-to-end 통신을 한다 (O,X) 6. 분할과 재조립은 어느 layer에서 하는지? 그리고 이 layer의 데이터 형식은? 7. IPv4의 주소가 맞는지 판단해라 192.114.35.3.1 (O,X) 8. A 네트워크와 B 네트워크 간 통신을 할 때, MAC으로 A-B 통신을 할 수 있다. (O, X), 이유도 쓰시오 9. TCP/IP 와 OSI의 차이점을 쓰시오 10. AC : 1B : 3C : BB : 1A : BC 는 어떤 주소인가? 11. IPv6 와 IPv4의 차이점 2가지만 쓰시오 12. B 클래스의 서브넷 마스크를 쓰시오 13. 논리 링크 제어 (LLC) 란 왜 사용하는가?

[자바] 프로그래머스 : 폰켓몬 / 해시 문제 [내부링크]

[자바] 프로그래머스 : 폰켓몬 / 해시 문제 오랜만에 프로그래머스 코딩테스트 고득점 kit 문제에 들어가보니 해시 파트에 문제 하나가 추가 되었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 ... school.programmers.co.kr Level 1

[자바] 프로그래머스 : 최소직사각형 / 완전탐색(브루트포스) [내부링크]

[자바] 프로그래머스 : 최소직사각형 / 완전탐색(브루트포스) https://school.programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면... school.programmers.co.kr Level 1 난이도의 완전탐색 문제입니다. 문제 해설 명함 지갑의 사이즈를 구하는 문제입니다.

[자바] 백준 : 5014 스타트링크 BFS 풀이 및 문제 접근법 / 유사 문제 [내부링크]

[자바] 백준 : 5014 스타트링크 BFS 풀이 및 문제 접근법 / 유사 문제 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 5014번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 스타트링크 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 34131 10808 8222 33.457% 문제 강호는 코딩 교육을 하는 스타트업 스타트링크 에 지원했다. 오늘은 강호의 면접날이다. 하지만, 늦잠을 잔 강호는 스타트링크가 있는 건물에 늦게 도착하고 말았다. 스타트링크는 총 F층으로 이루어진 고층 건물에 사무실이 있고, 스타트링크가 있는 곳의 위치는 G층이다. 강호가 지금 있는 곳은 S층이고, 이제 엘리베이터를 타고... www.acmicpc.net 골드5 난이도의 BFS 문제입니다. 문제 해설 이 문제에서는 엘레베이터로 목표한 층을 갈 수 있는지 알아내는 문제입니다. 엘레베이터는 버튼이 U(up),

[K-해커톤] API 서버 제작 #2 서비스 핵심 태그 기능만들기 - Tag API [내부링크]

[K-해커톤] API 서버 제작 #2 서비스 핵심 태그 기능만들기 - Tag API https://github.com/sosow0212/WhereHaveYouBeen GitHub - sosow0212/WhereHaveYouBeen: k-해커톤 결승 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. k-해커톤 결승 프로젝트 '어디까지 가봤니?' 서비스의 API 서버입니다. Contribute to sosow0212/WhereHaveYouBeen development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 프로젝트는 추후에 리팩토링 될 수 있기 때문에, 블로그 글과 깃허브 소스코드가 맞지 않을 수 있습니다. 오늘은 저희 서비스의 핵심 기능은 태그 기능을 만들었습니다. 태그 기능 자체는 처음 만들어봤는데, 생각할 부분이 많았습니다. 테이블 설계 고민 원래 태그는 정해진 값을 사용하는게 맞지만, 추후에 어떻

[K-해커톤] API 서버 제작 #3 상품 등록 API 제작 및 Entity 리팩토링(Member, Tag) [내부링크]

[K-해커톤] API 서버 제작 #3 상품 등록 API 제작 및 Entity 리팩토링(Member, Tag) https://github.com/sosow0212/WhereHaveYouBeen GitHub - sosow0212/WhereHaveYouBeen: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. Contribute to sosow0212/WhereHaveYouBeen development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 추후에 리팩토링으로 코드가 달라질 수 있기 때문에, 깃허브에 올라온 소스코드는 본 포스팅과 일치하지 않을 수도 있습니다. 오늘은 가이드의 입장에서 상품 등록하는 것을 처리해보고자 합니다. 가이드의 관광 상품 등록에는 관광에 대한 지역 및 정보가 들어

[자바] 백준 : 1464 뒤집기 / 그리디 + 문자열 [내부링크]

[자바] 백준 : 1464 뒤집기 / 그리디 + 문자열 https://www.acmicpc.net/problem/1464 1464번: 뒤집기 3 1464번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 뒤집기 3 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 1001 324 257 36.096% 문제 세준이는 어떤 문자열 S를 뒤집으려고 한다. 문자열을 뒤집는 방법은 문자열의 길이를 N이라고 하자. i만큼을 뒤집는다는 소리는 그 문자열의 처음부터 정확하게 i개의 문자를 역순으로 뒤집는 것이다. 세준이는 1부터 N까지 수를 차례대로 생각한다. 그리고, 뒤집을지 안 뒤집을지 선택할 수 있다. 예를 들어, S="BCDAF" 이고, 세준이가 ... www.acmicpc.net 골드5 난이도의 그리디 + 문자열 문제입니다. 문제 해설 문자열 S에서 i만큼 뒤집으면, 문자열의 처음 문자부터 i개의 문자를 역순으로 뒤집는다는 뜻입니다. 문자는 뒤집을 수도

[K-해커톤] API 서버 제작 #4 : 서버의 두 번째 핵심 기능 매칭 API 제작 [내부링크]

[K-해커톤] API 서버 제작 #4 : 서버의 두 번째 핵심 기능 매칭 API 제작 https://github.com/sosow0212/WhereHaveYouBeen GitHub - sosow0212/WhereHaveYouBeen: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. Contribute to sosow0212/WhereHaveYouBeen development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 본 포스팅에 나오는 소스코드는 추후에 리팩토링으로 인해 깃허브 코드와 다를 수 있습니다. 아래 설명은 전반적인 흐름을 나타내므로 자세한 코드는 깃허브에서 보실 수 있습니다. 오늘은 서비스의 두 번째 핵심 기능인 매칭 기능을 구현했습니다. 매칭을 신청하고 나면 두 가지 경우

[K-해커톤] API 서버 제작 #5 : 거래 기록 테이블 추가 및 방향 잡기 [내부링크]

[K-해커톤] API 서버 제작 #5 : 거래 기록 테이블 추가 및 방향 잡기 https://github.com/sosow0212/WhereHaveYouBeen GitHub - sosow0212/WhereHaveYouBeen: K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. K-해커톤 결승 제출 프로젝트 '어디까지 가봤니?' 서비스의 REST API 서버입니다. Contribute to sosow0212/WhereHaveYouBeen development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 본 포스팅에 나오는 소스코드는 추후에 리팩토링으로 인해 깃허브 코드와 다를 수 있습니다. 아래 설명은 전반적인 흐름을 나타내므로 자세한 코드는 깃허브에서 보실 수 있습니다. 오늘은 거래 기록을 나타내주는 History 테이블 하나를 생성하고, 일부 코드 리팩토링을 할 예정입니다.

[AWS] cron 으로 스프링 서버 자동 재시작 스크립트, 배포 마무리 및 문제점 [내부링크]

[AWS] cron 으로 스프링 서버 자동 재시작 스크립트, 배포 마무리 및 문제점 지난 번에 이어서 cron으로 스프링 서버 재시작을 하기 위해서 mkdir 명령어를 이용해 cron-restart 디렉토리를 만들어줍니다. vi 명령어를 이용해서 spring-stop.sh 를 만들어줍니다. pgrep에서 파일명은 자신의 jar파일 명으로 해주세요. chmod 로 실행권한을 주고 실행해봅시다! 서버가 잘 꺼지는지 확인해보면 됩니다. Spring을 실행하는 파일 만들기 spring-restart.sh 위와 같은 파일을 만들어주는데, 경로는 본인의 경로를 이용하셔야합니다. nohup java -jar /home/ubuntu/aws-ver1/build/libs/aws-ver1-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out & ==> 테스트시, 위에 코드로 스프링 서버 실행 spring-restart.sh 서버 재시작 스크립트입니다. chmod로 실행권한 주세요! 출처

스프링부트 커뮤니티 API 서버 만들기 #11 Authentication 관련 리팩토링 및 컨트롤러 단위 테스트 변경 (JUnit5 Authentication 처리) [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #11 Authentication 관련 리팩토링 및 컨트롤러 단위 테스트 변경 (JUnit5 Authentication 처리) https://github.com/sosow0212/community GitHub - sosow0212/community: Main project - Community Restful API Server (with TestCode, Redis ...) Main project - Community Restful API Server (with TestCode, Redis ...) - GitHub - sosow0212/community: Main project - Community Restful API Server (with TestCode, Redis ...) github.com 질문 및 피드백은 환영입니다 :) 안녕하세요. 커뮤니티 API 서버 만들기 프로젝트 제작 포스팅을 오랜만에 올립니다. 오랜만에 올리는 이유는, 문제

스프링부트 커뮤니티 API 서버 만들기 #12 JUnit5로 Service 단위 테스트 만들어보기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #12 JUnit5로 Service 단위 테스트 만들어보기 https://github.com/sosow0212/community GitHub - sosow0212/community: Main project - Community Restful API Server (with TestCode, Redis ...) Main project - Community Restful API Server (with TestCode, Redis ...) - GitHub - sosow0212/community: Main project - Community Restful API Server (with TestCode, Redis ...) github.com 질문 및 피드백은 환영입니다 :) 사실 TDD 방식에서 테스트 코드는 미리 작성해야합니다. 저는 공부하고 테스트 코드를 작성하고자 지금 작성하지만, 원래는 미리 작성하는게 맞습니다! 오늘은 지금까지 만든 서버의 Se

[명지대 스프링 멘토링] 프로젝트 발표 및 멘토링 종료 [내부링크]

[명지대 스프링 멘토링] 프로젝트 발표 및 멘토링 종료 방학 2달동안 진행한 멘토링이 드디어 끝이 났습니다. 따라와준 멘티들 너무 고생했습니다 오늘은 각 팀이 한 달동안 준비한 프로젝트를 발표 했습니다. A / B 팀 둘다 쇼핑몰을 주제로 잡았고, 공통적으로 JWT 와 JPA 사용 경험이 적어서 어려워했습니다. API 만드는 것 또한 공부를 각자 하다보니 이제는 잘 만드는 것 같습니다. 두팀 모두 노베이스에서 2달 동안 이정도 수준의 프로젝트를 만들었다는 건 진짜 대단한 것 같습니다. 다들 노력도 많이 했고, 그만큼 좋은 성과를 얻어서 저도 기분이 좋습니다 다들 피드백 참조해서 리팩토링 진행해보시길 바랄게요. A팀 프로젝트 결과물 https://github.com/JangAJang/ShoppingMall GitHub - JangAJang/ShoppingMall: 명지대 22년도 스프링 멘토링 A팀 프로젝트 명지대 22년도 스프링 멘토링 A팀 프로젝트. Contribute to Jan

[자바] 백준 : 1759 암호만들기 (브루트포스 + 백트래킹 조합) 풀이 및 문제 접근법 / 유사 문제 [내부링크]

[자바] 백준 : 1759 암호만들기 (브루트포스 + 백트래킹 조합) 풀이 및 문제 접근법 / 유사 문제 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 1759번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 암호 만들기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 50924 23988 16593 44.629% 문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다. 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o... www.acmicpc.net 백트래킹을 이용해서 단어 조합을 구하는 브루트포스 유형이고, 골드5 난이도 문제입니다. 문제 해석 암호 해석을 위해, 임의 암

[AWS] 타임존 설정 및 종료스크립트 작성, cron의 주기적 실행 [내부링크]

먼저 지난 번에 이어 서버를 종료시켜보겠습니다. netstat -nlpt => 현재 실행중인 프로세스 확인 ps -ef ==> 프로세스 아이디 확인 위에 명령어로 위에 사진처럼 java -jar를 찾아줍니다. 저 PID 번호 기억하고 (서버마다 다름) kill -9 16469 명령어로 종료시켜주면 됩니다. 다시 위에처럼 노헙으로 다시 서버를 백그라운드 실행시켜줍니다. 다시 서버 들어가보면 위에 사진 처럼 로그가 잘 뜨는 걸 확인할 수 있습니다. 방금 과정은 표준 출력을 mylog.out 으로 변경한 것입니다. 타임존 변경 및 종료스크립트 코딩하기 cd ~ timedatectl 위에 명령어를 순서대로 입력하면 위와 같이 나옵니다. 이제 타임존을 서울로 바꿔보겠습니다. 위에 명령어로 잘 바꿀 수 있습니다. 먼저 우리는 위에서 타임존을 변경했으니, 서버를 재시작 하겠습니다. 먼저 우리 서버의 프로세스를 찾기위해서는 ps -ef | grep *.jar | grep -v grep | awk

[자바] 백준 : 13565 침투 (DFS 완전탐색 문제) / 문제 이해 과정 포함 [내부링크]

[자바] 백준 : 13565 침투 (DFS 완전탐색 문제) / 문제 이해 과정 포함 https://www.acmicpc.net/problem/13565 13565번: 침투 문제 인제대학교 생화학연구실에 재직중인 석교수는 전류가 침투(percolate) 할 수 있는 섬유 물질을 개발하고 있다. 이 섬유 물질은 2차원 M × N 격자로 표현될 수 있다. 편의상 2차원 격자의 위쪽을 바깥쪽(outer side), 아래쪽을 안쪽(inner side)라고 생각하기로 한다. 또한 각 격자는 검은색 아니면 흰색인데, 검은색은 전류를 차단하는 물질임을 뜻하고 흰색은 전류가 통할 수 있는 물질임을 뜻한다. 전류는 섬유 물질의 가장 바깥쪽 흰색 격자들에 공급되고, 이후에는 상하좌우로 인접한 흰색 격자들로 전달될 수 있... www.acmicpc.net 실버2 난이도의 DFS/BFS 문제입니다. DFS 처음 배울 때, 익숙해지기 좋은 문제라서 DFS로 풀어보겠습니다. 코드를 보기 전에 문제를 이해해보겠

맥북 프로 M1 Pro 14인치 8G/512GB 후기 [내부링크]

어제 기존에 쓰던 맥북이 고장났습니다. 작년 초에 산 맥북 에어 M1 인데, 외부 충격도 없었고 평상시처럼 노트북을 키니깐 아래 사진처럼 나오더라고요ㅠㅠ 억장 와르르 도대체 왜 그러는지 찾아보니깐 맥북 에어 M1 에 설탕이슈가 있더라고요. 판이 얇아서 해외에서도 국내에서도, 아무런 충격없이 액정이 나가는 경우도 있었고 살짝의 충격에도 깨진다고 그러더라고요. 하여튼 저는 아무런 충격도 없이 갑자기 저러니깐 어이가 없었습니다c 그래서 결국 수리를 맡길까 아니면 새로운 맥북을 살까 고민했는데, 기존 맥북에 램이 부족해서 새로운 맥 사기로 결심했습니다. 그래서 바로 쿠팡에 가서 찾아보다가 M1 Pro 14인치와 M2 모델 중 고민했는데 M2와 프로나 가격 차이가 얼마 안나서 그냥 프로로 넘어갔습니다. 그래서 결국 M1 Pro 14인치 + SSD 512G + RAM 8GB 모델로 갔습니다. 구매한지 하루만에 와서 너무 좋았는데,쿠팡 배송 왜이래요 ㅋㅋ 촤라 언제나 포장 뜯는 순간은 설레는 것

[AWS] 첫 번째 배포를 해보자 - 1 [내부링크]

[AWS] 첫 번째 배포를 해보자 - 1 이번 포스팅에서는 배포하는 방법에 대해 다룹니다. 이번 배포에 대해 간단한 흐름에 대해 말씀 드리면 다음과 같습니다. 1. 스프링부트 프로젝트를 만든다. 2. 깃허브 저장소에 올려둔다. 3. AWS에서 임대한 EC2에서 깃허브에 올린 프로젝트를 다운 받는다. 4. EC2에서 자바 가동 환경을 위해 JDK를 설치한다. 5. nohup 백그라운드 실행 6. 로그 남기기 이 과정대로 진행합니다. 위에 방법은 문제점이 있습니다. 따라서 본 방법은 단지 흐름을 이해하기 위한 배포라고 이해하시면 됩니다. 프로젝트 생성을 해줍니다. Java11, Gradle / Spring Web, Lombok 을 달아주고 간단한 컨트롤러를 만들어줍니다. HelloController package com.example.awsver1.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.b

[명지대 스프링 멘토링] Git을 이용해서 협업하는 방법 A to Z [내부링크]

[명지대 스프링 멘토링] Git을 이용해서 협업하는 방법 A to Z 이 글을 봐도 잘 모르겠으면, 각 팀별로 몇 명씩 설명 해줬으니 꼭 물어봐서 숙지하세요! 아래 순서대로 진행하면 됩니다. 1. 깃허브 프로젝트 클론하기 위에 사진처럼 '각 팀 팀장의 레포지토리에 저장된 프로젝트'를 눌러서 Code 누르고 HTTPS 주소를 복사해줍니다. * Fork 떠서 자신 레포지토리에 있는 걸 클론하면 안됩니다! 그리고 인텔리제이를 켜서, 폴더열기로 바탕화면을 열어준 후에 아래 사진처럼 '터미널' 클릭 후 아래 명령어를 입력해줍니다. git clone 방금복사한주소 완료가 됐다면, 다시 인텔리제이 폴더 열기를 누른 후, 방금 클론한 프로젝트를 열어줍니다. 2. branch 생성하고, 코드 커밋 및 pull request 날리기 이제는 작업을 할 차례입니다. 클론한 프로젝트를 열고 터미널에 아래와 같은 명령어를 입력해서 branch 를 먼저 만들어주고, checkout을 해줍니다. git bran

딥디크 탐다오 오드뚜왈렛 후기 [내부링크]

안녕하세요. 오늘 잠실 롯데 에비뉴엘에 가서 탐다오 향수를 샀습니다. 원래 오늘 구매하고 싶었던 향수는 '탐다오, 오드우드, 모하비고스트' 세 개 중에서 하나를 사고 싶었습니다. 에비뉴엘에 딥디크와 톰포드는 있지만, 바이레도는 없어서 모하비고스트는 포기하고 우디 계열 향수를 사려고 두 곳을 갔습니다. 오드우드와 탐다오 둘다 우디 계열 향수이지만, 탐다오는 뭔가 더 우디한 느낌이고, 오드우드는 탐다오보다 덜 우디하지만 고급진 느낌이었습니다. 레이어드도 생각해서 탐다오로 결정했습니다. 딥디크 매장에 탐다오는 두 가지의 종류로 나뉩니다. 1. 오드퍼퓸 탐다오 75ml 2. 오드뚜왈렛 탐다오 50ml / 100ml 냄새는 거의 똑같지만, 오드퍼퓸 제품은 향료 함유량이 더 높기 때문에 더 오래 지속되고, 가격도 몇 만원 정도 더 비쌉니다. 오드뚜왈렛이나 오드퍼퓸 둘다 오래 가긴 하지만, 더 긴 제품을 원하신다면 오드퍼퓸 제품으로 가시는게 낫습니다. 저는 오드뚜왈렛 100ml 제품으로 구매했고

[개발일기 #21] 편하게 가자 [내부링크]

[개발일기 #21] 편하게 가자 이제 기존보다는 조금 여유롭게 마음 먹고 취업 준비를 할 생각입니다, 지금까지 정말 강박증에 가깝게 혹사시키면서 공부를 했는데 이게 맞나 싶습니다c 개발이 너무 재밌기도 하지만, 취업이라는 목표 또한 같이 있어서 부담을 안 느낄 수는 없는 것 같습니다. 사실 1~2년 늦게 취업해도 큰 문제는 없지만, 뭔가 성격상 조금이라도 늦으면 불안불안해서 이번에는 이런 마인드부터 좀 고쳐먹어야겠습니다. 작년부터 진행한 1일1커밋은 이제 1년을 거의 다 채워가고 백준은 드디어 골드1을 찍었습니다. 커밋과 백준 둘 다 작년에 시작할 때에는 이렇게 할 수 있을까 생각을 했지만 지금 보면 아무 것도 아닌 것 같다고 느꼈습니다. 물론 열심히 했지만 지금은 이게 당연하니깐 별 생각이 없는것 같더라고요 지금 돌이켜보면 굳이 강박증처럼 1년을 이렇게 보낼 필요가 있나 싶었습니다. 여행 갈 때에도 노트북을 들고 꼭 아침에 일어나서 커밋하고 그런 것 자체부터가 처음에는 의지였지만,

2022 여름 괌 여행기 [내부링크]

2022 여름 괌 여행기 최근에 4박5일 괌으로 누나들과 여행을 다녀왔습니다. 비행기 타는데 날씨가 너무 좋았습니다 괌에 도착하자마자 입국 심사를 받았습니다. 한국 사람이 얼마나 많이 가는지, 심사하시는 분들이 한국말도 쓰시더라고요 ㅋㅋ 기본적인 쉬운 영어로 몇 가지를 물어봅니다. 입국 심사를 마치고 렌트카 받으러 택시를 탔습니다. 한인 렌트카를 빌렸는데, 앞 범퍼도 다 나가고 차 상태가 시동도 꺼지고 말도 안 됐습니다. 진짜 할말이 많지만 참겠습니다..; 괜히 이상한데 추천 받아서 가지 마시고, 차량 관리 잘 되고 진짜 유명한 곳으로 가시는게 좋습니다. 괌에서 운전은 한국 면허증만 있으면 별도의 국제 면허 필요 없이 한 달까지 운전 가능합니다. 운전도 좌회전을 제외하고 한국이랑 거의 비슷했습니다. 남부투어를 위해서라도 꼭 하루는 빌리는게 좋습니다 '두짓타니 괌 리조트'에 숙소를 잡고 갔습니다. 오션뷰인데, 한국 오션뷰랑 다르게 바다가 정말 깨끗해서 27층에서도 바닷물 안이 다 보

[Kotlin] 코틀링 + 스프링부트 조합으로 간단한 Rest API 서버 만들어보기 [내부링크]

[Kotlin] 코틀링 + 스프링부트 조합으로 간단한 Rest API 서버 만들어보기 오늘 코틀린과 스프링부트를 이용해서 간단한 Rest API 서버를 만들어봤습니다. 아직은 코틀린이 익숙치 않아서 코틀린을 이용한 코드 작성이 조금 어렵게 느껴졌습니다. Entity package com.example.kopringstudy.entity import javax.persistence.Column import javax.persistence.Entity import javax.persistence.GeneratedValue import javax.persistence.GenerationType import javax.persistence.Id @Entity class Board ( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long?= null, @Column(nullable = false) var title: Str

[JUnit5] 스프링부트 단위 테스트 작성 예시(Controller & Service) [내부링크]

[JUnit5] 스프링부트 단위 테스트를 작성 예시 (Controller & Service) https://github.com/sosow0212/mentoring GitHub - sosow0212/mentoring: 22MJU 스프링 멘토 활동을 위해 제작한 프로젝트입니다. 22MJU 스프링 멘토 활동을 위해 제작한 프로젝트입니다. Contribute to sosow0212/mentoring development by creating an account on GitHub. github.com 위 깃허브 프로젝트를 기반으로 테스트코드 작성을 진행합니다. 테스트코드 작성에 앞서 먼저 사용된 Controller 와 Service 코드는 다음과 같습니다. BoardController package com.example.mentoring.controller; import com.example.mentoring.dto.BoardEditRequestDto; import com.example.me

스물아홉 생일, 1년 후 죽기로 결심했다 - 하야마 아마리 [내부링크]

누나 방에 들어갔다가 책장에 이 책이 꽂혀있는걸 봤어요 제목은 들어봤지만 관심도 흥미도 전혀 없었는데 갑자기 어떤 책일까 너무 궁금해서 오늘 읽었습니다! '하야마 아마리' 라는 작가가 쓴 자전적 소설인 이 책은 시작은 굉장히 어둡고 침침한 분위기로 시작되는데요 아마리는 잘하는 것 하나 없고 돈도 없고 별 볼일 없는 자신을 굉장히 비관하며 자살을 결심해요 그런데 죽을 용기도 없어서 자살하지도 못해요 그러다가 아마리에 머리속에 문득 스친 생각이 1년동안 돈을 벌어 라스베가스에 가서 돈을 잃거나 따거나 전부 쓰기 그리고 나서 약을 먹고 자살하기 그렇게 아마리가 그 목표를 위해 낮에는 계약직이지만 회사에서 근무하고 저녁에는 호스티스에서 일을 해요 또한 주말에는 누드 크로키 모델 알바를 하게됩니다 아마리가 자신의 마지막 목표인 라스베가스를 위해 영어 공부도하고 카드 게임도 열심히 배워요 또한 일을 하면서 평소에는 없었던 친구들도 사귀게 되고, 자신의 내면의 새로운 면을 발견하게 돼요 그렇게

[명지대 스프링 멘토링] 스프링부트 프로젝트 생성하기, MySQL 스프링부트 연동하기 [내부링크]

[명지대 스프링 멘토링] 스프링부트 프로젝트 생성하기, MySQL 스프링부트 연동하기 1. Spring boot 프로젝트 생성 2. MySQL 스키마 생성 3. Spring boot & MySQL 연동하기 4. 실행 1. Spring boot 프로젝트 생성하기 인텔리제이 상단에 파일 -> 새로만들기 -> 프로젝트 생성 클릭 좌측 메뉴 바에서 Spring Initializr 클릭 후 프로젝트 이름은 mentoring 으로 설정 언어 Java 타입 Gradle JDK 16 Java 11 Jar 선택 후 다음 클릭합니다. 다음을 눌렀다면 디펜던시 (종속성) 추가를 해줘야합니다. 종속성에 대해 간단히 설명해드리자면, 스프링부트 프로젝트에 기능을 추가하는 것입니다. Spring Web, Spring Data JPA, MySQL Driver, Lombok 일단은 이렇게 네 가지만 선택해줍니다. 추후에 다른 디펜던시를 추가하고 싶다면 https://mvnrepository.com/ Maven R

보라카이 항공편 및 비행기 예약하기 [내부링크]

보라카이 항공편 및 비행기 예약하기 동네 친구들과 이번 7월 6일에 해외여행을 가기로 했습니다. 처음에는 일본 가려고 했는데, 패키지 여행밖에 안 돼서 갈 수 있는 곳을 찾다가 보라카이로 결정했습니다. 항공편이 지금 안정적이지 않아서, 조건을 세웠는데 '합리적인 가격 + 직항'을 조건으로 항공권을 구했습니다. 예약 플랫폼은 노랑풍선으로 진행하려 했는데, 3시간이 지나도 예약 확인이 무응답이라서 마이리얼트립으로 티웨이항공 예약을 바로 했습니다. 가격은 왕복 인당 36만원정도 잡혔습니다. 그리고 숙소는 진짜 좋은 곳을 가고 싶어서 이곳저곳 알아보다가 '헤난 가든 리조트' 로 예약을 했습니다! 그리고 가기 위해서 필요한 절차들이 있었는데, 네이버 카페에서 참고를 했습니다. https://cafe.naver.com/cebuboracay/217565 필리핀으로 여행갈 때 & 여행 후 귀국할 때 필요한 서류와 절차 보라카이 자유여행 정보공유 대표카페 [세보맘] 마닐라, 세부, 보라카이 등 필리

[JPA] 다양한 연관관계 알아보기 [내부링크]

[JPA] 다양한 연관관계 알아보기 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany * 실무에서는 N:M (다대다) 방식을 거의 안 쓴다. N:1 (다대일) 연관관계 @ManyToOne N(다) 쪽에 외래키가 들어가 있는게 좋다. 가장 많이 쓰는 연관관계 다대일의 반대는 일대다이다. 다대일 양방향은 반대쪽 테이블에 List members 같이 추가 해주면 된다. 추가하고 mappedBy 속성으로 연관관계의 주인을 설정해준다. 1:N (일대다) 연관관계 실무에서 권장하진 않는다. Team 과 Member 객체 관계에서 Team 에서 List members 로 들어오면 OneToMany 가 된다. 일대다에선 일(1)이 연관관계의 주인이다. 테이블의 일대다 관계는 항상 다(N) 쪽에 외래 키가 있다. 객체와 테이블의 차이 때문에 반대편 테이블의 외래키를 관리하는 특이한 구조 @JoinColumn 을 꼭 사용해

[스프링 스터디] #6 기능 구현 마무리, 리팩토링 [내부링크]

[스프링 스터디] #6 기능 구현 마무리, 리팩토링 오늘은 지난 번 게시판 및 댓글 관련 민준님과 피드백을 했습니다. 이번 주까지 남은 기능 구현을 마무리 하기로 했습니다. 아직 구현하지 못한 쪽지 무한스크롤 및 세부 기능(ex. 대댓글)들 구현과 리팩토링은 아마도 다음주부터 순차적으로 진행될 것 같습니다. 리팩토링은 성능 개선을 최우선으로 생각했고, 필요하다면 Entity 변경을 하거나, JPA를 다르게 써볼 생각입니다. 이번주 기능 구현은 게시글 및 유저 신고기능 + 백오피스 API 구현입니다. - 게시글 및 유저 신고 기능 -https://blog.naver.com/sosow0212/222794987518 스프링부트 커뮤니티 API 서버 만들기 #7 - 신고 기능 구현, 말도 안되는 버그 해결하기 스프링부트 커뮤니티 API 서버 만들기 #7 - 신고 기능 구현, 말도 안되는 버그 해결하기 https://github... blog.naver.com - 백오피스 1 https://

스프링부트 커뮤니티 API 서버 만들기 #7 - 신고 기능 구현, 말도 안되는 버그 해결하기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #7 - 신고 기능 구현, 말도 안되는 버그 해결하기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community Restful API Server - Main project Community Restful API Server - Main project. Contribute to sosow0212/community development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 오늘은 신고 기능을 만들었습니다. 유저 신고 기능, 게시글 신고 기능만 도입했고, 신고 처리는 곧 도입할 예정입니다. 신고 기능이 간단해보였는데, 생각보다 구현하기 많이 까다로웠습니다. 신고 기능을 도입하기 위해서 생각했던 방법은 먼저 유저 신고기능을 구현하기 위해서 UserReport Entity를 만들고, Entity

스프링부트 커뮤니티 API 서버 만들기 #8 - 어드민 페이지 만들기 - 1 (기본 틀 잡기) [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #8 - 어드민 페이지 만들기 - 1 (기본 틀 잡기) https://github.com/sosow0212/community GitHub - sosow0212/community: Community Restful API Server - Main project Community Restful API Server - Main project. Contribute to sosow0212/community development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 오늘은 백오피스 기능 기본적인 구현을 했습니다. 신고된 유저 및 게시글 확인 및 정지 해제 기능을 도입했고, 아마 2편에서 추가로 더 진행할 예정입니다. package yoon.community.controller.admin; import io.swagger.annotations.Api; import io.swagger

자주 쓰이는 HTTP 상태코드 정리 [내부링크]

자주 쓰이는 HTTP 상태코드 정리 평소에 상태코드가 자꾸 헷갈려서 자주 쓰이는 상태코드를 정리해봤습니다. 4xx 400 Bad Request 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음 401 Unauthorized 클라이언트가 인증되지 않을 때 발생 403 Forbidden 클라이언트가 콘텐츠에 접근할 권리가 없을 때 발생 401과 다른 점은, 403은 유저가 누군지는 알고 있음 유저등급이 낮아서 못 들어가든 경우에 해당 404 Not Found 서버에서 요청받은 리소스를 찾을 수 없을 때 발생 즉 API 종점은 있으나 리소스는 존재하지 않을 때 발생 409 Conflict 요청이 현재 서버의 상태와 충돌될 때 발생 5xx 500 Internal Server Error 서버가 처리 방법을 모를 때 발생 502 Bad Gateway 서버가 요청을 처리하는 데 필요한 응답을 얻기 위해 게이트웨이로 작업하는 중 잘못된 응답을 수신한 경우 발생

[명지대 스프링 멘토링] 파일 구조의 이해 [내부링크]

첫 번째 멘토링을 진행했습니다. 멘토링 내용은 다음과 같습니다. 멘토링 내용 1. 파일 구조의 이해 2. 깃허브와 기술 블로그 3. 여러 백엔드 기술스택 4. 포스트맨과 워크벤치, 인텔리제이 소개 5. 파일 구조 및 JPA 간단 소개 가장 중요한 파일 구조 및 JPA Repository - JPA를 이용해서 데이터베이스의 데이터를 가져온다. Entity - JPA를 이용해서 테이블 생성 및, 데이터를 다룰 수 있다. Service - 기능 구현 담당, Repository를 불러와서 기능을 구현하거나, 데이터를 저장한다 Controller - 클라이언트와 직접적으로 통신하며, Service를 불러서 기능 구현을 명령한다. 클라이언트(프론트엔드, 사용자) - Controller에게 데이터 조회를 요청하거나, 데이터 저장을 명령한다. JPA - 애플리케이션과 데이터베이스의 테이블을 연결한다. 기술적으로 애플리케이션의 객체를 테이블에 자동 영속화 해준다. 피드백 - 마이크 잡음이 있다. -

[명지대 스프링 멘토링] 복습과 CRUD 게시판 만들기 - 1 [내부링크]

[명지대 스프링 멘토링] 복습과 CRUD 게시판 만들기 - 1 properties 와 yml # Application.properties 방식 Spring-datasouce-url =. ~~ Spring-datasource-username =. ~~ Spring-datasource-password = ~~ # Application.yml 방식 (많이씀, 스프링, 도커 ...) Spring : Datasource: Username: "yoon" Password: "yoon2" Json 데이터 형식 # JSON = 서버끼리 데이터를 주고 받는 통신할 때 JSON을 주로 사용한다. { “Dataset” : “데이터”, “Dataset2”: “데이터2” } GET, POST, PUT, DELETE # 요청 # 밑에 방식에 대한 설명이 전부는 아니고, 게시판 만들기 할 때 주로 사용되는 개념만 적었습니다. GET - DB에서 데이터를 불러올때 사용된다. - 조회 POST - DB 데이터를 저

2022년 보라카이 여행기 [내부링크]

2022년 보라카이 여행기 이번에 동네 친구들과 보라카이 여행을 갔다왔습니다. 촤라~ 항상 이 순간은 설레는 것 같아요. 저희는 인천공항에서 칼리보 공항으로 갔습니다. 보라카이까지 가려면, 칼리보 공항에서 내리고 칼리보 공항에서 약 50km 차로 항구로 이동하고 약 10분간 배를 타고 보라카이로 이동해야합니다. 저희는 이 이동할 때 한국에서 미리 예약하고 갔습니다. 칼리보 길거리 칼리보에서 약 50km 이동해서 항구로 도착했습니다. 사람이 북적북적 엄청 많았습니다. 진짜 픽업샌딩 예약해서 바로 배 탔는데, 안 했으면 큰일날 뻔 했습니다. 꼭 픽업샌딩 예약하고 가시길... 배에 사람 꽉 찰 정도로 태우고 보라카이로 출발합니다. 보라카이 항구 도착! 첫 날은 날씨가 조금 흐렸습니다. 여행기간 내내 전부 비온다고 해서 걱정을 많이 했는데, 다행히도 첫 날이 가장 흐렸습니다! 그리고 비도 종종 조금씩 내리고 그치고 반복했습니다. 바로 헤난가든리조트로 이동했습니다. 헤난가든 진짜 너무 좋아요

[스프링 스터디] #7 기능 구현 마무리, 리팩토링 2 [내부링크]

[스프링 스터디] #7 기능 구현 마무리, 리팩토링 2 오늘 민준님과 마지막 기능구현 회의를 했습니다. 이번 주는 웹소켓을 이용한 채팅 기능과 게시글 조회수 + 카테고리 기능을 넣고 NoSQL인 Redis에 JWT 토큰 넣고 도커로 배포하는 건 다음 주에 할 것 같습니다. 덧붙여서 기능 구현한 것들 성능개선을 더 해야할 것 같습니다. 이번주에 계층형 카테고리를 구현하면 분명 문제가 생길텐데, 문제에 대해 고민해볼 시간이 필요할 것 같습니다. - 카테고리 기능 추가 https://blog.naver.com/sosow0212/222807639379 스프링부트 커뮤니티 API 서버 만들기 #9 계층형 카테고리 구현하기 스프링부트 커뮤니티 API 서버 만들기 #9 계층형 카테고리 구현하기 https://github.com/sosow0212/comm... blog.naver.com - 웹소켓 이용 채팅 기능

스프링부트 커뮤니티 API 서버 만들기 #9 계층형 카테고리 구현하기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #9 계층형 카테고리 구현하기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community Restful API Server - Main project Community Restful API Server - Main project. Contribute to sosow0212/community development by creating an account on GitHub. github.com 지적 및 피드백은 환영입니다 :) 안녕하세요. 이번에는 계층형 카테고리를 구현했습니다. 계층형 카테고리는 네이버 블로그에 있는 카테고리 기능과 비슷합니다. 아래와 같이 볼 수 있습니다. - 카테고리1 ㄴ 카테고리2 ㄴ 카테고리3 ㄴ 카테고리4 - 카테고리5 ㄴ 카테고리6 ㄴ 카테고리 7 ㄴ 카테고리 8 ㄴ 카테고리 9 위에와 같이 카테고리를 계속 이어나갈 수 있습니다. Cate

[JPA] 상속관계 매핑이란? / 반복을 줄여주는 @MappedSuperClass [내부링크]

[JPA] 상속관계 매핑이란? / 반복을 줄여주는 @MappedSuperClass 상속관계 매핑 - 관계형 데이터베이스는 상속 관계가 없다. - 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다. - 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법은? - 조인 전략 (각각 테이블로 변환) 테이블 정규화, 외래키 참조 무결성 제약조건 활용 가능, 저장공간 효율화의 장점이 있다. 다만 조회시 조인을 많이 사용해서 성능이 저하되고, 조회 쿼리가 복잡하고 데이터 저장 시 INSERT SQL을 2번 사용한다. - 단일 테이블 전략 (통합 테이블로 변환) 조인이 필요 없어서 일반적으로 조회 성능이 빠르고 조회 쿼리가 단순하다. 다만, 자식 엔터티가 매핑한 컬럼은 모두 null을 허용하고, 단일 테이블에 모든 것을 저장해서 테이블이 커지기 때문에 상황에 따라 오히려 조회 성능이 느

[다이어트 4주차] 약 한달 간 몸무게 변화는? [내부링크]

[다이어트 4주차] 약 한달 간 몸무게 변화는? 다이어트 진행한지 한달정도 됐습니다. 다이어트 진행하면서 혼술도 끊고, 술자리도 많이 줄였습니다. 체중에 관계 없이 한 번 마음 먹으니 의지가 생겨서 술도 줄이게 되더라고요. 왜 예전에는 술로 힐링을 하고, 술자리 유혹을 못 견뎠는지..c 실수를 할 수도 있고, 득보다 실이 많기도 하고 이제는 운동과 관계없이 술을 좀 줄이는게 저를 생각해서도 좋을 것 같아요. 보라카이 여행 갔을 때를 제외하고 지난 한달동안 웨이트 약 40분 + 유산소 30~40분씩 매주 5회정도 운동을 했습니다. 식단은 아침은 마이프로틴 + 오트밀 / 점심은 쿠팡에서 산 다이어트 도시락 / 저녁은 밥 반공기 일반식 / 간식 계란 3개, 프로틴 바 1개 이렇게 해서 한달동안 6kg 빠졌습니다. 본격적으로 내년부터 취준을 시작하는데, 그 때는 시간도 여유도 없을 것 같아서 지금 체력도 기르고 몸도 만들면서 마음을 잡는게 중요할 것 같습니다. 그래서 다음 달도 열심히 해봐

[JPA] 프록시, 즉시&지연 로딩, 영속성 전이, 고아 객체 [내부링크]

[JPA] 프록시, 즉시&지연 로딩, 영속성 전이, 고아 객체 프록시 프록시는 실제 클래스를 상속 받아서 만들어지고, 실제 클래스와 겉 모양이 같다. 이론상, 사용하는 입장에서는 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 된다. 그리고 프록시 객체는 실제 객체의 참조(target)를 보관하고, 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드를 호출한다. 즉 프록시 객체는 처음 사용할 때 한 번만 초기화하고, 초기화 할 때 프록시 객체가 실제 엔터티로 바뀌는 것은 아니다. 초기화되면 프록시 객체를 통해서 실제 엔터티에 접근이 가능하다. 프록시 객체는 원본 엔터티를 상속받는다. 따라서 타입 체크시 주의해야한다! (== 비교 실패, 대신 instance of 사용) 영속성 컨텍스트에 찾는 엔터티가 이미 있으면 em.getReference()를 호출해도 실제 엔터티로 반환한다. 영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때, 프록시를 초기화하면 문제가 발생한다

[JPA] 값 타입 [내부링크]

[JPA] 값 타입 JPA의 데이터 타입 분류 Entity 타입 @Entity로 정의하는 객체, 데이터가 변해도 식별자로 계속해서 추적 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체, 식별자가 없고 값만 있으므로 변경시 추척 불가 값 타입 분류로는 기본값 타입 (자바 기본 타입, 래퍼 클래스, String), 임베디드 타입, 컬렉션 값 타입으로 나뉜다. String, int 같은 기본값 타입은 생명주기를 엔터티의 의존한다. 그리고 공유되면 절대 안된다. 그리고 Integer, Long 과 같은 래퍼 클래스나 String 같은 특수 클래스는 공유 가능한 객체이지만 변경하면 안된다. 임베디드 타입은 쉽게 말해서, 묶어낼 수 있는 타입이다. 예를 들면 주소(시, 도 등등) 같이 여러 개가 필요한 걸 하나로 묶는 그런 타입이다. 임베디드 타입의 사용법은 @Embeddable : 값 타입을 정의하는 곳에 표시 @Embedded : 값

무쟈게 먹기만 한 부산 여행기 [내부링크]

반년마다 함께 여행을 가는 대학교 친구인 태민이와 승범이랑 이번에도 여행을 갔습니다. 부산이라 차 타고 가는 건 포기하고 KTX 타고 가려고 내일로를 끊었는데, KTX는 전부 매진 돼서 ITX였나 무궁화였나 다른 열차를 타고 갔습니다. 새벽에 출발해서 너무 졸려워서 이 사진 찍고 바로 잠듬 눈 뜨니 도착했습니다. 태민이가 어디서 알아온 부산 밀면 맛집이라는 '원조 부산 밀면' 에 갔습니다. ㅋㅋ 이름부터 신뢰도 최고 이것저것 시켰는데, 솔직히 지금까지 부산에서 먹은 밀면 중 가장 별로였습니다. 근데 만두는 진짜 맛나요 이날 진짜 너무 더워서 걷기만 해도 막 땀이 나서 눈에 보이던 카페에 들어가서 아아 시원하게 싹 마시고, 빵이랑 빙수를 먹었습니다. 저기가 광안리 해수욕장 앞에 팥 전문 카페였나 뭐 그랬는데 엄청 맛있었습니다. 날씨가 진짜 미쳤죠? 저 해변을 지나면서 세 명 전부 내년엔 꼭 운동하고 오자고 그러는데 몇 년째 이 말하는지 모르겠네요.. 내년엔 정말 꼭.. 태민이가 해운대

[JPA] 객체지향 쿼리 언어 - 1 / JPQL, QueryDSL, Native SQL, JDBC API + 페이징 API + 조인 [내부링크]

[JPA] 객체지향 쿼리 언어 - 1 JPA는 다양한 쿼리 방법을 지원한다. - JPQL *** - JPA Criteria (이거 대신 QueryDSL 사용 권장) - QueryDSL - 네이티브 SQL - JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 JPQL 가장 단순한 조회 방법이다. JPA를 사용하면 엔터티 객체를 중심으로 개발 가능하고, 문제는 검색 쿼리이다. 검색을 할 때 테이블이 아닌 엔터티 객체를 대상으로 검색해야한다. 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능하다. 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요하다. JPA는 SQL을 추상화하는 JPQL이라는 객체 지향 쿼리 언어를 제공한다. -> SQL 과 문법 유사, SELECT, FROM, WHERE, GRUOP BY, HAVING, JOIN 지원 -> JPQL은 엔터티 객체를 대상으로 쿼리 -> SQL은 데이터베

[Kotlin] 코틀린을 배워야하는 이유 및 특징, 자바와 비교해보기 [내부링크]

[Kotlin] 코틀린을 배워야하는 이유 및 특징, 자바와 비교해보기 Kotlin 이란? 코틀린은 자바를 대체하기 위해 JetBrains 사에서(인텔리제이 만든 회사) 만들어진 언어이고, 2016년도에 정식으로 발표된 언어이다. 최신 패러다임을 적용해 Java의 약점을 개선하고 기존 Java에서 사용되는 JVM과 호환되게끔 만들어졌다. 성능 면에서도 자바와 비슷하다. 즉 기존 자바로 개발이 가능했던, 웹 & 안드로이드 개발에 Kotlin으로 대체할 수 있고, Javascript 및 Swift와의 연동 개발이 가능하다. 따라서 자바 + 스프링 조합이 아닌 코틀린 + 스프링 조합으로도 사용 가능하다. 자바와 같은 정적 타입 지정 언어라는 특징이 있고, 자바와 다르게 코틀린에서는 컴파일러가 문맥으로 변수 타입을 유추해서 타입 선언을 생략해도 된다. -> 이를 '타입 추론'이라고 부른다. 코틀린은 Null 이 될 수 있는 타입도 지원하기 때문에, Null 포인터로 인한 프로그램 중단도 예방

[Kotlin] 기본적인 규칙, 변수 선언 및 자료형 알아보기, 형변환 및 배열 [내부링크]

[Kotlin] 기본적인 규칙, 변수 선언 및 자료형 알아보기, 형변환 및 배열 기본적인 규칙 코틀린의 확장자 명은 .Kt 이다. fun main(args: Array<String>) { println("구문 끝에 세미콜론은 없어도 된다!") // 한 줄 주석 /** * 주석 2 * 여러 줄 주석 */ } 위에 코드처럼 주석의 경우 자바와 동일하고, 구문의 경우는 JS와 비슷하게 마지막에 세미콜론이 없어도 됩니다. 클래스 이름은 대문자로 시작하는 파스칼 표기법으로 시작해야합니다. Ex) ClassName 함수나 변수는 소문자로 시작하는 카멜 케이스로 시작해야합니다. Ex) functionName 변수 선언하기 코틀린에선 두 가지 방법으로 변수를 선언 할 수 있습니다. * var 일반적으로 통용되는 변수, 언제든 읽기 및 쓰기가 가능 * val 선언시에만 초기화 가능 및 중간에 값 변경 불가능 변수는 선언 위치에 따라 두가지 이름으로 불립니다. 클래스에 선언된 변수 Property (

[Kotlin] 코틀린 타입추론과 함수 / 조건문, 반복문 [내부링크]

[Kotlin] 코틀린 타입추론과 함수 타입추론이란 var a : Int 처럼 자료형을 명시해주는 것이다. 자료형 없이 선언을 해도 코틀린에서 알아서 자료형을 찾아주는데, 몇 가지 규칙이있다. 만약 var a = 100 이라는 정수형 리터럴을 할당하면 Int var b = 100L 은 Long var c = 12.45 는 double var d = 12.45f 은 float 마찬가지로 boolean, char 형도 같다. 함수 fun main() { println(add(1, 2, 3)) print(add2(1, 2, 3)) } // 매개변수와, 반환형의 타입을 써준다. fun add(a: Int, b: Int, c: Int): Int { return a + b + c } // 단일 표현식 함수 (타입 추론 가능하므로 반환형 타입 생략 가능) fun add2(a: Int, b: Int, c: Int) = a + b + c 뭔가 타입스크립트랑 비슷한 것 같다. 코틀린에서는 두 가지 타

[명지대 스프링 멘토링] CRUD 게시판 만들기 실습 + 포스트맨 [내부링크]

[명지대 스프링 멘토링] CRUD 게시판 만들기 실습 + 포스트맨 코딩을 하다가 혹은, 아래 글을 보고 모르는게 있으면 개인톡이 아니라 단체 톡방에 질문 올려주세요. 오늘은 라이브 코딩을 하면서 설명을 진행했습니다. 오늘 진행한 게시판 만들기는 1차 완성본으로, 고칠 점이 아직 많습니다. 다들 얼마나 따라 오는지 확인하면서 진행하겠습니다. 기억해야할 중요한 것만 다시 말씀 드리자면 다음과 같습니다. Entity 에서는 어노테이션 및 Id (기본키) 전략 설정 Service, Controller 에서는 @Service, @RestController 달아주고 @RequireArgsConstructor 와 함께 private final BoardService boardService; 처럼 객체 불러주기 (@Autowired 로 불러와도 되지만, 추천X) Service 클래스에서 @Transactional 사용하는 이유 (데이터 커밋 방식) Controller 에서 @PathVariable

[JPA] 객체지향 쿼리 언어 - 2 / 경로 표현식, Fetch join, [내부링크]

[JPA] 객체지향 쿼리 언어 - 2 / 경로 표현식, Fetch join 경로 표현식 - .(점)을 찍어서 객체 그래프를 탐색하는 것 select m.username -> 상태 필드 from Member m join m.team t -> 단일 값 연관 필드 join m.orders o -> 컬렉션 값 연관 필드 where t.name = '팀A' 상태 필드 (state field) - 단순히 값을 저장하기 위한 필드 ex) m.username 경로 탐색의 끝이고 탐색하지 않는다. 연관 필드(association field) - 연관관계를 위한 필드 단일 값 연관 필드 - @ManyToOne, @OneToOne, 대상이 엔터티 (ex. m.team) 묵시적 내부 조인(inner join) 발생하고, 탐색한다. 컬렉션 값 연관 필드 - @OneToMany, @ManyToMany, 대상이 컬렉션 (ex. m.orders) 묵시적 내부 조인 발생하고, 탐색하지 않는다. 경로 표현식 예제

[스프링 스터디] #8 NoSQL Redis 적용과 CI/CD 및 배포를 시작하자 [내부링크]

[스프링 스터디] #8 NoSQL Redis 적용과 CI/CD 및 배포를 시작하자 민준님과 진행한지 어느덧 꽤 되었고, 각자 기능을 잘 구현했습니다. 이제 거의 마지막을 보고있는데, 이번 주에는 인프라쪽을 조금 신경써야합니다. 먼저 JPA를 이용해서 N+1 문제를 찾아내고 개선을 해야하고, 연관관계 맺어진 거 조회시 성능 개선을 해야할 것 같습니다. 그리고 JWT RefreshToken 을 NoSQL인 Redis에 넣는 것까지 진행하면 기능적인 부분에서 구현은 모두 끝입니다. 이제는 백엔드의 두 번째 꽃인 인프라를 구현해야하는데 먼저 이번 주에는 다시 한 번 CI/CD & 도커 & 배포 공부를 한 번씩 더하고 배포를 진행하면 될 것 같습니다. 프론트엔드 부분은 선택이지만, 저는 리액트로 프론트엔드까지 구현 및 배포를 해서 풀스택 개발을 해볼 생각입니다. - Redis 로 JWT RefreshToken 빼기 https://blog.naver.com/sosow0212/2228254404

[Redis] NoSQL Redis를 사용하는 이유 및 배경지식 알아보기 [내부링크]

[Redis] NoSQL Redis를 사용하는 이유 및 배경지식 알아보기 Redis 배경지식 == Remote dictionary server 외부에서 Key-Value의 자료구조를 사용하는 서버라는 뜻이다. Key-Value 쌍에서 Integer 범위를 넘어가면서 Key값이 너무 많아졌다. (약 21억) Redis는 In-memory Data Structure Store로 메모리 상에 데이터를 저장하는 저장 서버이고, 다양한 자료구조를 제공한다. Redis를 알기 위해서 먼저 Cache의 개념을 알아야한다. Cache는 나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것이다. 기본적으로 데이터베이스는 컴퓨터가 종료되어도 데이터는 남아야해서 지금까지는 HDD, SDD에 데이터를 저장했다. 하지만 기술이 발달하고 하드웨어가 좋아지다보니 더 빠른 메인메모리에 데이터를 저장하면 어떨까라는 생각으로 Redis가 등장했다. Redis는 Database보다 더 빠른 Memory에 더

[Docker] 도커는 무엇이고 왜 쓰는 것일까 [내부링크]

[Docker] 도커는 무엇이고 왜 쓰는 것일까 도커를 알기 전에 아래 기업들의 백엔드 채용공고를 확인해보겠습니다. 네이버 백엔드 개발자 채용공고 카카오 백엔드 개발자 채용공고 토스 백엔드 개발자 채용공고 공통적으로 들어가는 말 보이시나요? Kubernetes (쿠버네티스), Docker(도커)가 빅테크 기업에서 많이 사용되고 있습니다. 백엔드 취업을 준비한다면, 도커는 반드시 알아야합니다. 도커는 컨테이너를 하나만 띄워서 사용하는 것이고, 쿠버네티스는 도커를 관리하는 툴이라고 생각하시면 됩니다. 즉 내가 한 개의 컨테이너만 관리하고 싶으면 도커가 낫고, 여러 개를 관리한다면 쿠버네티스를 사용하는게 좋습니다. 우리는 이 카테고리에서는 한 개의 컨테이너를 관리하는 도커에 대해 알아볼 예정입니다. 도커를 배우기 전에 먼저 컨테이너의 개념을 알아야합니다. 컨테이너란? 컨테이너는 애플리케이션과 애플리케이션을 구동하는 환경을 Host OS로부터 격리한 공간을 의미합니다. 컨테이너는 보통 마이

[Kotlin] 흐름제어 + 클래스 [내부링크]

[Kotlin] 흐름제어 + 클래스 코틀린은 배울 수록 자바와 비슷하면서도 다른 점이 있는 것 같습니다. 먼저 편리한 흐름제어에 대해 알아보겠습니다. fun main() { labelName@for (i in 1..10) { for (j in 1..10) { if(i ==1 && j ==2) break@labelName println("i : $i, j: $j") } } } 위에 소스코드처럼 레이블명을 지정해주면, 원하는 곳에서 break 명령어를 수행할 수 있습니다. 번거로운 작업이 필요 없고, 한 번에 레이블로 수행할 수 있다는 장점이 있습니다. 클래스 package classExam fun main() { var a = Person("이재윤", 1999) var b = Person("노윤재", 1999) // 보조 생성자 사용하는 인스턴스 var c = Person("이름") println(a.name) println(a.introduce()) } class Person(var

[개발일기 #20] 22년 7월의 개발 공부 - 토이프로젝트, 코틀린, 해커톤, 알고리즘, 멘토링 [내부링크]

[개발일기 #20] 22년 7월의 개발 공부 - 토이프로젝트, 코틀린, 해커톤, 알고리즘, 멘토링 드디어 1일1커밋 1년을 다 채워갑니다. 이번 달에는 방학이라 비교적으로 시간이 많았습니다. 진짜 여행도 많이 가고 놀기도 많이 놀아서 효율적으로 공부하지는 못한 것 같습니다. 항상 놀땐 놀고 쉴땐 쉬자 마인드였는데, 이번 달은 많이 논 것 같아서 돌아오는 달에는 정신차리고 다시 공부를 해야할 것 같습니다. 먼저 개인적으로 진행하는 토이 프로젝트 (커뮤니티 만들기)는 기능보다는 속도 및 최적화를 목표로 API를 개발하고 있습니다. 이제 기능은 다 구현해서 Redis 로 토큰 빼기 + 인프라 공부 후 배포할 예정입니다. 그리고 추가로 코틀린 + 스프링부트 조합을 사용해보고 싶어서 코틀린을 공부 중이고, JPA 또한 다시 한 번 공부했습니다. JPA는 공부 할 수록 더 어려워지는 것 같아요c 또 다른 이슈인 해커톤은 방학동안 자주 모여서 팀원들과 준비하였습니다. 알고리즘은 몇 개월 동안

스프링부트 커뮤니티 API 서버 만들기 #10 Redis 도입 - JWT RefreshToken 빼기 [내부링크]

프링부트 커뮤니티 API 서버 만들기 #10 NoSQL Redis로 JWT RefreshToken 빼기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community Restful API Server - Main project Community Restful API Server - Main project. Contribute to sosow0212/community development by creating an account on GitHub. github.com 모든 질문 및 피드백은 환영입니다 :) 오늘 공부할 것 오늘은 NoSQL인 Redis 데이터베이스에 JWT RefreshToken을 넣을 생각입니다. 지금까지는 MySQL에 별도 테이블을 만들어서 Username, RefreshToken 으로 각각 저장했습니다. 이런 방법 보다는 오늘은 Key 와 Value 타입 즉 Username : Refr

[AWS] EC2 서버 임대 및 Mac으로 접속하기 / EC2 서버와 방화벽 [내부링크]

[AWS] EC2 서버 임대 및 Mac으로 접속하기 / EC2 서버와 방화벽 AWS EC2 서버 임대하기 AWS 회원가입 및 로그인을 하고 EC2 로 들어가줍니다. 여기서 위에 사진처럼 지역은 '아시아 태평양(서울)' 로 바꾸시면 됩니다. 그리고 인스턴스 시작을 누르고 아래 사진처럼 설정해줍니다. Ubuntu, 22.04 LTS t2.micro 그리고 밑에 내려서 키페어도 생성해줍니다. 스토리지 구성 볼륨은 30GB로 바꿔줍니다. 그리고 인스턴스 시작을 눌러줍니다. 그러면 위에 사진과 같이 인스턴스가 생성된 것을 확인할 수 있습니다. EC2 서버 Mac으로 접속하기 위에 인스턴스를 클릭해보면 위에 사진처럼 아래 퍼블릭 IPv4 주소를 확인 할 수 있습니다. (드래그 친 부분) 이 IPv4주소를 이용해서 우리의 EC2 서버에 접속할 수 있습니다. 서버에 접속하기 위해서 먼저 터미널로 키페어의 경로로 가줍니다. 이렇게 터미널의 위치를 키페어로 이동했다면, 이 키페어에다가 실행 권한을 줘

[AWS] 리눅스 기본 명령어 / apt 알아보기 + 톰캣 설치 [내부링크]

[AWS] 리눅스 기본 명령어 / apt 알아보기 + 톰캣 설치 리눅스 기본 명령어 터미널 코드 깨끗하게 정리 clear 현재 위치 확인 pwd 이동 명령어 cd/경로 cd ../ 취소 Control + C 현재 경로에 있는 모든 파일과 폴더의 상태 조회 ls ls -l (자세히 보기) 모든 파일 (숨김 및 기본파일) 확인 (.파일명 --> 숨김파일) ls --all ls -a 폴더 생성 mkdir 폴더명 폴더 제거 rm -r 폴더명 파일 생성 touch a.txt 파일 제거 rm a.txt 파일 복사 cp a.txt b.txt --> a.txt 를 b.txt 라는 이름으로 복사 파일 이동 mv b.txt user/ --> b.txt 를 user 폴더 안으로 이동 mv a.txt user/c.txt --> a.txt 를 user 폴더 안으로 이동하는데, 이름은 c.txt로 바꿔라 소프트 링크 (바로가기 생성) ln -s 파일명 파일명-link ln -s a.txt a-link.txt

[AWS] 리눅스 명령어 ppa 저장소 사용 / 명령어 프로세스 이해 [내부링크]

[AWS] 리눅스 명령어 ppa 저장소 사용 / 명령어 프로세스 이해 ppa 저장소 사용 저번에는 톰캣9 버전을 설치했습니다. 실습을 위해 톰캣 9 버전을 삭제하고 8 버전을 받아보겠습니다. (9 버전도 상관 없습니다! 단순 ppa 이해를 위해 재설치 하는 것입니다. 저는 tomcat9 버전으로 진행합니다.) sudo apt-cache search tomcat ==> tomcat을 시스템에서 찾는다. sudo apt remove tomcat9 ==> 설정 파일은 지우지 않음 sudo apt --purge remove tomcat9 ==> 설정 파일까지 모두 깨끗하게 지움 두 번째 방법으로 지워보겠습니다. 위에 터미널과 같이 성공적으로 삭제가 완료됐습니다. 이제 tomcat 8버전을 설치해보겠습니다. sudo apt install tomcat8 ==> 저장소에 없는 거라서 오류가 뜸 위에 소스코드처럼 저장소에 tomcat8은 없어서 ppa 저장소를 이용하여 추가해주겠습니다. https

[명지대 스프링 멘토링] 팀프로젝트 설명 및 주의사항 [내부링크]

[명지대 스프링 멘토링] 팀프로젝트 설명 및 주의사항 이제 멘토링의 끝을 보고있습니다. 지금까지 잘 따라와준 멘티님들 너무 고생하셨습니다 팀은 7명씩 2팀으로 나눴습니다. 아직 많이 배운 건 없어서, 어떤 주제로 팀프로젝트를 하고 어떤 식으로 할지 모를 수 있습니다. 오늘은 이에 대해 말씀드리려고 합니다. 주제 선정 및 기술 관련 인스타그램, 페이스북 등등 어떤 플랫폼이든 기본적인 API는 비슷합니다. (플랫폼마다 조금씩 차이가 있을 뿐) 기본적으로 대부분 CRUD 기능을 기반으로 API를 기반으로 프론트엔드가 페이스북처럼 보이게 작업하면 페이스북이 되는거고, 인스타나 게시판처럼 보이게 만들면 그렇게 되는 것입니다. 그래서 일단 주제 선정에 대해서는 너무 고민하지 않으셔도 됩니다. 다만 우리가 고민해야할 점은 어떤 API를 만들어야하는지만 고민하면 됩니다. (ex. User, Board, Letter API를 만드는등 기능적인 부분 CRUD만 하면 됩니다.) 다만 프로젝트를 만들면서

[AWS] 리눅스 vi 에디터 사용, chmod, chown 로 권한 주기, find, 파일 입출력 [내부링크]

[AWS] 리눅스 vi 에디터 사용, chmod, chown 로 권한 주기, find, 파일 입출력 vi 사용하기 기존에 만들었던 a-link.txt 와 a.txt 는 rm 명령어로 먼저 지워주세요. 그 후에 아래 명령어를 치면 a.txt가 생성되고 수정할 수 있게 됩니다. vi a.txt # a.txt 를 생성하고 수정할 수 있다. # vi == vim 편집기로 가지면, 알파벳 i 를 입력해서 입력모드(INSERT) 로 바꿔줍니다. 아무 문자를 다 입력했다면, ESC를 누르고 : 키 누르고 wq 누르고 엔터를 눌러줍니다. (:q! 명령어는 강제 탈출) ESC, :, wq, Enter 위에 순서대로 입력해주시면 됩니다. 그리고 cat a.txt 명령어로 내용을 볼 수 있습니다. 만약에 또 수정하고 싶다면 다시 한 번 vi 명령어로 들어가면 됩니다. chmod, chown 사용하기 su root # 루트에 접속 (처음에 비밀번호 생성해야함) su passwd root # 루트 패스워드

[다이어트 두 달차] 9kg 감량기 [내부링크]

[다이어트 약 두 달차] 9kg 감량기 다이어트 한지 7주정도 됐습니다. 일 수로 따지면 50일 정도 됐습니다. 바쁜 날이 많아서 그런 날 빼고는, 매 주마다 4번씩 가려고 노력 했고, 매 번 3분할로 나눠 고강도 웨이트 + 인터벌 러닝을 진행했습니다. 나중에 요요 올 수 있는 좋지 않은 방식이지만, 운동을 못 가는 날에는 정말 조금만 먹었습니다. 하여튼 이렇게 두 달 정도 운동과 식단을 해서 오늘 몸무게를 측정해보니 약 9kg이 빠졌습니다. 운동하는 날은 꼭 세 끼씩 탄단지 맞춰서 챙겨먹었습니다. 운동을 안한 날에는 일반식 반씩 1~2끼 정도 먹었다고 보시면 됩니다. 두 달차 운동 분할은 하체 + 삼두 / 등 + 이두 / 가슴 + 어깨 이런 식으로 해주었고, 턱걸이는 항상 해줬습니다. 웨이트도 웨이트지만, 다이어트 할 때 가장 효과적이었던 건 인터벌 러닝이 가장 좋았던 것 같습니다. 다음 달에도 화이팅입니다!!

[명지대 스프링 멘토링] Response 만들기, 예외처리 총 정리, 테스트 코드 알아보기 [내부링크]

[명지대 스프링 멘토링] Response 만들기, 예외처리, 테스트 코드 알아보기 4주차 멘토 활동 정리입니다. 오늘 배운 내용은 코드도 중요하긴 하지만, 내용적인 부분이 더 중요합니다. ( 왜 사용하는지에 대한 이유 ) 따라서 이번 글에서는 코드를 기재하지 않을 예정입니다. 그래서 아래 내용을 충분히 보고 이해한 다음에 아래 깃허브 링크를 통해 코드를 보고 복습하시는 걸 추천드립니다. 혹시나 깃을 봐도 모르신다면, 말씀해주세요! https://github.com/sosow0212/mentoring GitHub - sosow0212/mentoring: 22년도 명지대학교 스프링 멘토활동 간단 프로젝트 22년도 명지대학교 스프링 멘토활동 간단 프로젝트. Contribute to sosow0212/mentoring development by creating an account on GitHub. github.com 지난 시간에는 프로젝트 API 즉 기능을 설계했다면, 이번 시간에는 지난

[자바] 백준 2293: 동전1 DP풀이 (점화식 구하기) [내부링크]

https://www.acmicpc.net/problem/2293 2293번: 동전 1 2293번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 동전 1 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.5 초 (추가 시간 없음) 4 MB 44399 20155 15148 45.417% 문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다... www.acmicpc.net 전형적인 DP 문제입니다. 난이도는 골드5 이고, 점화식을 구한다면 쉽게 풀 수 있습니다. 문제 설명은 n가지 동전을 이용해서 k원을 만들 수 있는 경우의 수를 구하는 문제입니다. 먼저 정답 코드부터 보고 설명하겠습니다. import

[Docker] 도커로 Spring boot(Gradle) 구축 및 실행하기 [내부링크]

[Docker] 도커로 Spring boot 구축 및 실행하기 오늘은 스프링부트를 도커로 구축해보고 실행해보겠습니다. 먼저 개발 진행 환경은 맥북M1(애플 실리콘 칩) 입니다. 도커 구축을 테스트할 스프링부트 프로젝트를 하나 만들어줍니다. 프로젝트 만드실 때, 디펜던시는 Spring Web 만 넣으시고, Gradle 및 Java11 로 진행해주시면 됩니다. 위와 같이 RestController 를 이용해서 빠르게 API 하나를 만들어줍니다. 그 다음에는 도커 구축을 위해 jar 파일을 생성해야합니다. 위에 사진과 같이 Gradle - Tasks - build - bootjar 를 클릭해줍니다. 그러고나면 위에 사진처럼 패키지 build - libs 경로에 .jar 가 생긴 것을 볼 수 있습니다. 위에 사진에서는 Dockerfile 을 만들어주었지만, 처음 진행하면 위에 도커파일이 없습니다. libs 아래 Dockerfile 하나를 만들어서 (확장자명 없음) 아래와 같은 소스코드를 입

[AWS] 배포를 위해 알아야하는 지식, AWS 등장 배경 알아보기 [내부링크]

[AWS] 배포를 위해 알아야하는 지식, AWS 등장 배경 알아보기 배포 기본 지식 클라우드 서비스를 활용하기 위해 기본지식을 알아야한다. -> AWS, Linux, Network 클라우드 서비스에 내 프로젝트를 단순 배포하기 위한 환경을 구축한다 -> EC2 == Iaas (인프라, 즉 물리적 컴퓨터 구축) 클라우드 서비스에 내 프로젝트 배포를 간편하게 한다. -> ShellScript 클라우드 서비스에 환경 구축 없이 내 프로젝트를 배포한다 -> AWS Elastic Beanstalk == Paas (플랫폼이 환경 제공) 클라우드 서비스에 배포 자동화를 구축한다. CI/CD -> GithubAction / Travis / Jenkins 클라우드 서비스에 무중단 배포를 한다. -> 로드밸런서, 롤링배포 정적 IP 할당을 위해 Network road Balancer 활용하기 배포 진행 순서도 1. 프로젝트 생성(Springboot + Test code) 2.Github Push 3.

스프링부트 커뮤니티 API 서버 만들기 #4 - 지옥의 Board API 만들기, 게시판 CRUD + 이미지 업로드 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #4 지옥의 Board API 만들기, 게시판 CRUD + 이미지 업로드 질문 및 피드백은 환영입니다! https://github.com/sosow0212/community GitHub - sosow0212/community: Community service (RestAPI Server) Community service (RestAPI Server). Contribute to sosow0212/community development by creating an account on GitHub. github.com 오늘은 Board API를 만들었습니다. 게시판에 관련 돼서 생각할게 몇 가지가 있습니다. 먼저 기본적인 게시판의 CRUD 기능 구현 및 유저 댓글, 유저가 즐겨찾기 할 경우 및 추천 수에 따른 추천글 등록을 신경써야합니다. 그 중에서 오늘은 게시판 기능 + 이미지 업로드를 구현했습니다. 코드 설명 먼저 가장 중요한 Board Entit

스프링부트 커뮤니티 API 서버 만들기 #5 - 게시글 좋아요 및 즐겨찾기 구현하기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #5 - 게시글 좋아요 및 즐겨찾기 구현하기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community service (RestAPI Server) Community service (RestAPI Server). Contribute to sosow0212/community development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다! 오늘은 지난 번에 이어서 게시판 기능을 추가했습니다. 에타 게시판을 모티브로 좋아요와 즐겨찾기를 구현했습니다. 사용자가 좋아요를 누르면 게시글의 좋아요 수가 +1이 되고, 다시 버튼을 누르면 좋아요가 -1 이 됩니다. 그리고 좋아요 수가 일정 수 이상 도달하면, 인기 게시물로 선정이 됩니다. 즐겨찾기도 마찬가지로 POST 요청으로 +- 1이 증가 되고, 유저 페이지

[Effective Java] #2 - 모든 객체의 공통 메서드 [내부링크]

[Effective Java] #2 - 모든 객체의 공통 메서드 Object 란? 객체를 만들 수 있는 구체 클래스이지만 보통 상속해서 사용한다. Object에서는 fianl이 아닌 메서드 (equals, hashCode, toString, clone, finalize)는 모두 오버라이딩(재정의)를 염두하고 설계된 것이라서 재정의 시 지켜야 하는 일반 규약이 명확하다. 그래서 Object를 상속하는 모든 클래스들은 이 메서드들을 일반 규약에 맞게 재정의 해야한다. equals 메서드는 동치관계를 구현하며 다음을 만족해야한다. - 반사성 (null이 아닌 모든 참조 값 x에 대해 x.equals(x) = true) - 대칭성 (null이 아닌 모든 참조 값 x,y에 대해 x.equals(y) = true 라면 y.equals(x) = true) - 추이성 (null이 아닌 모든 참조값 x,y,z 에 경우 x->y, y->z, x->z 도 true이다) - 일관성 (null이 아닌 모든

스프링부트 커뮤니티 API 서버 만들기 #6 - 댓글 구현하기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #6 - 댓글 구현하기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community service (RestAPI Server) Community service (RestAPI Server). Contribute to sosow0212/community development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다 :) 오늘은 댓글 API를 만들었습니다. 일단은 간단하게 댓글만 만들었지만, 아마 다음주부터 게시글 계층 카테고리 + 쪽지 무한 스크롤 + 대댓글 기능도 구현해야할 것 같습니다. 먼저 Comment Entity 입니다. package yoon.community.entity.comment; import lombok.*; import org.hibernate.annotations.OnDele

[Effective Java] #3 - 클래스와 인터페이스 [내부링크]

[Effective Java] #3 - 클래스와 인터페이스 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨서 구현과 API를 깔끔하게 분리한다. 오직 API를 통해서만 다른 컴포넌트와 소통하며 서로의 내부 동작에는 전혀 개의치 않는다. 이는 정보 은닉(캡슐화) 라는 것을 통해서 하는데, 정보 은닉의 장점은 여러가지가 있다. 개발 속도 증가, 시스템 관리 비용 저하, 성능 최적화에 도움, 재사용성 증가 등등 정보 은닉을 위해 자바에서 다양한 장치를 제공한다. 각 요소의 접근성은 그 요소가 선언된 위치와 접근 제한자 (private, public ..) 로 정해진다. 이 접근 제한자를 효율적으로 사용하는 것이 정보 은닉의 기본이다! 기본 원칙으로는 모든 클래스와 멤버의 접근성을 가능한 좁혀야 한다. 즉 소프트웨어가 올바르게 동작하는 수준으로 항상 가장 낮은 접근 수준을 부여해야한다. 패키지 외부에서 쓸 일이 없다면 private로 하는 것이 좋다. 왜냐하면 public 으로 선언하면

[다이어트 2주차] 습관화 [내부링크]

[다이어트 2주차] 습관화 다이어트 시작한지 2주차가 되었습니다. 몇 달동안 살이 급격하게 쪄서 그런지 빠지는 것도 빠르게 빠지는 것 같습니다. 아마도 수분이 빠졌겠지만, 그래도 수치상으로는 3키로가 빠졌습니다. 얏호 항상 앉아서 공부하고 밥 먹기도 귀찮아서 늦게 먹으면서 폭식하고 그랬는데, 이런 악습관과 혼술은 싹 끊었습니다. 처음에는 되게 집에서 술 마시고 싶고, 먹고 싶은 것도 너무 많았는데, 삼시세끼 일정한 시간에 맞춰서 먹다보니깐 적응이 된 것 같습니다. 앉아있는 비중이 많은만큼, 코어 운동도 열심히 하고있습니다. 이번주에는 하루 빼고 모두 운동을 했습니다. 이제는 꾸준히 하는 것만 남았습니다!

[JPA] 영속성 내부 동작 방식 [내부링크]

[JPA] 영속성 내부 동작 방식 먼저 JPA에서 가장 중요한 2가지는 객체와 관계형 데이터베이스 매핑하기 + 영속성 컨테이너입니다. 영속성 컨텍스트를 먼저 이해해보겠습니다. EntityManagerFactory 에서는 고객이 요청을 보낼때마다 고객 별로 EntityManager 를 생성해서 줍니다. 그리고 EntityManager는 내부적으로 데이터베이스 커넥션을 써서 DB를 사용하게 됩니다. 영속성 컨텍스트 - JPA를 이해하는데 가장 중요한 용어 - Entity를 영구 저장하는 환경이라는 뜻 - EntityManager.persist(entity); persist 메소드는 DB가 아닌 영속성 컨텍스트에 저장한다! 영속성 컨텍스트는 논리적인 개념으로 보이지 않고, 엔터티 매니지를 통해서 영속성 컨텍스트에 접근합니다. Entity의 생명주기 - 비영속 (new/transient) -> 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 객체를 생성한 상태 (비영속) Member

[JPA] 연관관계 (단방향 매핑, 양방향 매핑, 주의사항) [내부링크]

[JPA] 연관관계 (단방향 매핑, 양방향 매핑, 주의사항) 객체를 테이블에 맞춰 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다. 테이블은 외래 키로 조인을 사용하여 연관 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체 사이에는 이런 큰 간격이 있다. 단방향 연관관계 Member 와 Team 단방향 매핑 // User @Id @GeneratedValue @Column(name = "USER_ID") private Long id; private String username; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; // Team @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; 이렇게 두고, 팀을 바로 멤버에 넣을 수 있다. 양방향 연관관계와 연관관계의 주인 (가장 중요) // Us

[스프링 스터디] #4 API 설계 및 방향 잡기 [내부링크]

[스프링 스터디] #4 API 설계 및 방향 잡기 오늘은 민준님과 API 설계를 했습니다. 계속 바뀔 수도 있지만, 일단 이대로 진행하기로 했습니다. 민준님과 비동기/동기를 공부하기 위해 방법을 찾다가 웹소켓을 이용한 화상채팅 기능도 넣기로 했습니다. 코딩 스타일 같은 경우도 비슷하게 하고자, 깃허브에서 다른 사람 코드들 보면서 참고하고, 코드를 최대한 객체지향적으로 짜려고 얘기를 많이 했습니다. 이번주는 '유저 + 쪽지' 기능을 구현하기로 했고, 어떻게 효율적으로 코드를 작성할지 고민을 많이 해보고 개발을 해야할 것 같습니다! 유저 API 구현 https://blog.naver.com/sosow0212/222776097438 스프링부트 커뮤니티 API 서버 만들기 #2 - User API 만들기 스프링부트 커뮤니티 API 서버 만들기 #2 - User API 만들기 https://github.com/sosow0212/communi... blog.naver.com 메시지 API 구현

스프링부트 커뮤니티 API 서버 만들기 #2 - User API 만들기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #2 - User API 만들기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community service (RestAPI Server) Community service (RestAPI Server). Contribute to sosow0212/community development by creating an account on GitHub. github.com 오늘은 User API를 만들었습니다. 기능에 대해 간단하게 설명하자면 '전체 유저 조회, 개별 유저 조회, 유저 정보 수정, 회원탈퇴' 기능이 있습니다. 이렇게 만들면서 Exception도 추가하고, Swagger 설정 및 SecurityConfig 도 일부분 바꿔줬습니다. 테스트코드까지 전부 만들었으니, 비슷한 걸 구현해보고자 하시는 분들은 소스코드 참고하시면 많은 도움 될 겁니다! 포스팅으로는 간단하게

스프링부트 커뮤니티 API 서버 만들기 #3 - Message API 만들기 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #3 - Message API 만들기 https://github.com/sosow0212/community GitHub - sosow0212/community: Community service (RestAPI Server) Community service (RestAPI Server). Contribute to sosow0212/community development by creating an account on GitHub. github.com 질문 및 피드백은 환영입니다! 오늘은 Message API 를 만들었습니다. Message API의 핵심 기능은 유저 간 쪽지 기능이라고 생각하시면 됩니다. 무한 스크롤 기능은 곧 추가하고 글로 올리겠습니다. Message API 의 기능은 다음과 같습니다. 저번에도 포스팅 했지만, 여기서 중요한 점은 보낸 쪽지를 삭제한다면, 유저에게 보낸 쪽지는 안 보이지만, 받은 사람에게는 보입니다. (받은 사람도

[명지대 스프링 멘토링] #1 계획하기, 수업 로드맵 작성 [내부링크]

[명지대 스프링 멘토링] #1 계획하기, 수업 로드맵 작성 이번에 과 코딩 동아리에서 스프링 멘토링을 진행하게 됐습니다. 아무래도 과에서 스프링 백엔드로 취업을 하고 싶은 사람은 많지만, 어디서 알려주는 사람이 없어서 대부분은 독학으로 하고있다고 들었습니다. 저는 운 좋게 스프링을 미리 시작하고 여러가지 삽질을 경험하면서 경험이 쌓이다보니 다행스럽게 과 동기나 후배들에게는 노하우를 전해줄 수 있게 됐습니다. 알려준다는 행위를 통해서, 복습을 할 수도 있고 같은 과 사람들에게 가르칠 수 있다는 보람과 학습 발표력 또한 좋아질 것 같습니다. 감사하게도 20명정도 신청해주셔서 더욱 책임감 있게 확실한 자세로 수업을 해야겠습니다. 스프링 강의는 대부분 JSP, Thymeleaf 같은 템플릿 엔진으로 프로젝트 구현하는 방식으로 진행 되는데, 저는 이번 멘토링에서는 Rest API에 대해 알려줄 생각입니다. 아무래도 요즘은 프론트/백이 확실히 분업화 되는 추세다 보니 JSP는 각자 공부 시킬

[개발일기 #19] 22년 6월의 개발 공부 - 기말고사, 프로젝트, 당근마켓 불합격 [내부링크]

[개발일기 #19] 22년 6월의 개발 공부 - 기말고사, 프로젝트, 당근마켓 불합격 6월 초에는 학교 기말고사가 있어서 코딩을 제대로 하지 못했습니다. 거의 2~3주동안 알고리즘만 한 문제씩 풀었네요 ㅠㅠ 1일 1커밋 도전한게 엊그제 같은데 지금 보니 정말 많이 채웠습니다. 너무 뿌듯하고, 확실히 도전과제처럼 채우려다 보니 알아서 공부하게 되는 것 같습니다. 6월에 기말고사를 보면서, 당근마켓 합격 결과도 기대했는데 결국 떨어졌습니다. 뭐 아직 부족한게 있어서 그렇겠죠.. 빅테크 기업에 가기 위해서 더욱 열심히 해야겠다고 생각하고 시험에 전념했습니다. 항상 어떤 결과가 나오게 되면 스스로 피드백을 하는데 이번에 불합격에서 가장 큰 이유는 아무래도 RestAPI 프로젝트가 부실하지 않았나 싶습니다. 지원할 때 넣었던 프로젝트가 아무래도 예전에 한 템플릿 기반 프로젝트다 보니 현업 스타일과 안 맞은 것 같습니다. 얼른 API 서버 프로젝트를 만드는게 좋을 것 같습니다. 그래서 이번 달

[다이어트 1주차] 다이어트 시작, 운동과 식단 [내부링크]

[다이어트 1주차] 다이어트 시작, 운동과 시작 하루종일 앉아서 공부만 하고, 고칼로리 음식 시켜먹고 저녁에 혼술도 자주하다보니 살이 급격하게 쪘습니다. 도저히 이대로는 안되겠다 싶어서 배달음식과 혼술도 끊고 다이어트 계획을 세우고 바로 시작했습니다. 먼저 체지방 감량을 하고 린매스업을 하려고 아마 약 한달간은 체지방 감량 위주의 운동과 식사를 할 것 같습니다. 규칙적인 일상이 중요해서 오전 9시 일어나서 닭가슴살 + 요거트에 오트밀을 먹고 점심은 쿠팡에서 시킨 고단백 다이어트 도시락 먹고 저녁은 밥 반공기 + 일반식으로 먹고 자기 전 아르기닌 한 포 먹고 중간중간 계란 3개 먹고 운동은 점심 혹은 저녁에 하고 있습니다. 운동 후 마이프로틴 마시면서 하루 총 단백질 양을 110g 으로 맞춰 먹고있습니다. 쿠팡 고단백 다이어트 도시락입니다. 양은 적지만, 진짜 존맛 저녁으로는 일반식 먹는데, 양파 + 당근 + 소고기를 간장이랑 볶아서 먹고있습니다. 운동은 3부위로 나눠서 고강도 웨이트

[스프링 스터디] #5 코드 피드백 및 JPA [내부링크]

[스프링 스터디] #5 코드 피드백 및 JPA 오늘은 민준님과 API 코드를 보면서 피드백을 했습니다. 민준님이 JPA 단방향/양방향 매핑 부분에서 막히신 것 같아서 간단하게 설명해드리고, 진행을 했습니다. 저 또한 만들다보니 JPA를 다루는게 은근 헷갈리고 신경쓸게 많아서 따로 공부를 더 해야할 것 같다고 생각했습니다. 지난 번 과제에서 쪽지 무한 스크롤 제외하고 모두 구현했는데 쪽지 무한 스크롤 부분은 조금 더 고민해봐야할 것 같습니다. 테스트 코드도 지금은 컨트롤러 단위 테스트만 진행하는데, 공부할겸 더 확장시켜서 진행해야할 것 같아서 공부를 시작했습니다. 이번 주 과제는 게시판 + 댓글 + 기존 코드 리팩토링입니다. #1 게시글 CRUD 구현 및 이미지 처리 https://blog.naver.com/sosow0212/222784877111 스프링부트 커뮤니티 API 서버 만들기 #4 - Board API 만들기, 게시판 CRUD + 이미지 업로드 스프링부트 커뮤니티 API 서

[개발일기 #18] 첫 코드 피드백을 받고, 고쳐나가고 배워야 할 것들에 대해서, To do [내부링크]

[개발일기 #18] 첫 코드 피드백을 받고, 고쳐나가고 배워야 할 것들에 대해서, To do 방금 정말 존경하는 선배님에게 부탁 드려서 코드 피드백을 받았습니다. 누군가에게 조언은 받은 적은 있지만, 직접 코드까지 봐주시며 피드백 해주셔서 더욱 특별한 경험이었습니다. 선배님이 객관적으로 생각하셨을 때, 저의 코드를 보고 든 생각은 전반적으로 기술적인 어필이 부족하다고 하셨습니다. 이에 덧붙여서 특정 부분에 딥하게 들어가거나, 나름 해결하기 어려운 고민에 대해서는 경험한게 별로 없다고 느껴지고, 단순 CRUD로 기능 구현이 주로 이룬다고 느껴졌다고 하셨습니다. 또한 말씀 들어보니, 테스트 코드도 정말 잘 짜야되겠더라고요. 공부하면서 더 딥하게 들어가고 있다고 생각하지만, 아직은 부족한게 많은 것 같습니다. 사실 기본적인 기능은 무작정 키보드 뚜드린다면 만들 수 있다지만, 정말로 선배님 말씀처럼, "그게 최선인지"에 대한 고민과 "더 나아질 수 없는지"에 대한 고민은 많이 안 했습니다.

스프링부트 커뮤니티 API 서버 만들기 #1 - 로그인 기능 + Validation + Exception 구현 [내부링크]

스프링부트 커뮤니티 API 서버 만들기 #1 - 로그인 기능 + Validation + Exception 구현 프로젝트 소개 (계속 수정 예정) 이번에 진행하는 프로젝트는 커뮤니티 제작입니다. 단순한 기능말고, 더 깊게 생각해서 꼼꼼하게 API를 제작할 예정입니다. 효율적인 DB설계 및 최소 조회와 효율적인 JPA 사용이 중요하다고 생각해서 이 부분에 초점을 맞출 생각입니다. 단순 API 개발이지만, 타 개발자와 협업한다고 생각하고 진행합니다. 글에서 자세한 내용은 다루지 않고, 전반적인 흐름 및 간단한 설명만 작성합니다! 자세히 보고 싶으신 분들은 글 하단에 깃허브를 봐주세요. 진행 내용은 다음과 같습니다. (계속 수정 예정) - 로그인 - 게시판 CRUD - 계층형 카테고리 - 계층형 대댓글 - 페이지 번호 페이징 처리 - 무한 스크롤 페이징 처리 - 검색 - 관리자 페이지 - 배포 (자동화, 도커, AWS) 프로젝트 설정 (Java 11, Spring boot) 2. Depen

명지대 파이썬 기말고사 핵심 ppt 정리 (클래스 다음부터) [내부링크]

파이썬 기말고사 정리 (클래스 다음부터) 키 정렬하기 dictionary 에서 key가 만들어진 순서를 기억 itertools 인수들을 차례로 순회 누적합 구하기 --> for문 이용해서 구해도 됨 pprint() 깔끔하게 출력하기 --> 출력이 예쁘게 나오면 pprint() 랜덤값 random --> 로또 번호 구하기 같은 곳에서 응용 가능 (sample() 사용해서) 범위 내에서 임의의 정수 값 반환 ASCII 아스키코드 ++ 비트연산자 시간 관련 모듈 //// import time now = time.time() print(time.ctime(now)) # Sat Jun 11 16:44:31 2022 캘린더창 만들기 아래 코드 참조 파일 입출력 --> 점프투파이썬 04-3 참조 + 파일에서 위치 찾기 : seek() + requests + beautifulSoup 모듈 확인하기 (크롤링)

[안드로이드] 기말고사 정리 [내부링크]

[안드로이드] 기말고사 정리 https://github.com/sosow0212/Android-study GitHub - sosow0212/Android-study: Android study Android study. Contribute to sosow0212/Android-study development by creating an account on GitHub. github.com 7강 (OptionMenu, Dialog, Toast, ContextMenu) OptionMenu 만들기 (옵션 메뉴는 우측 상단에 점3개 누르면 내려오는 메뉴들임) menu.xml 만들어서 <menu> .. <item> </item> ... </menu> 만들어주기 MainActivity 에서 onCreateOptionsMenu 상속 받아서 MenuInflater 로 구현하기 깃허브 study_7a 참조 * menu.xml 말고 자바코드로 메뉴 사용 가능 메뉴에서 사진 선택하고, 사진 돌리기 마찬가지

[Github] 깃허브 코드리뷰를 해보자! [내부링크]

[Github] 코드리뷰를 해보자! 깃허브에는 여러가지 기능이 있습니다. 오늘은 코드리뷰를 하는 방법에 대해 알아보도록 하겠습니다. 배경지식 우리가 코드 리뷰를 하기 위해서는 Pull Request (PR)을 해줘야합니다. Pull Request 에 대해 간단하게 설명하자면, 깃허브로 협업을 할 때, 백엔드는 API를 나눠서 설계하는등 역할을 나눕니다. 각자 작업을 하고 그걸 master 브랜치에 합쳐줘야하는데, 이때 master로 합쳐주는 것을 Merge 라고 합니다. 이 Merge를 통해서 각자 작업한 것들을 master 브랜치(메인)에 전부 합쳐주는데, Merge 전에는 Pull Request 라는 작업을 합니다. Pull Request는 각각의 브랜치가 커밋을 하고 master로 Merge하기 전에 한 번더 확인하는 과정입니다. 즉 코드리뷰는 Pull Request 과정에서 Merge 하기 직전에 코드리뷰를 하는 것입니다. 이때, 코드리뷰를 통해서 코드가 문제가 없다면 Mer

명지대 파이썬 기말고사 문제 및 풀이 [내부링크]

명지대학교 파이썬 기말고사 문제 및 풀이 (배종우 교수님) 기말고사는, 중간고사에 비해 난이도가 있는 느낌이었습니다. 이번 시험은 1시간 50분 동안 보는 시험이고, 시간이 많이 부족하다는 후기가 많았습니다. 1학년 전공인만큼 코딩을 처음 배우는 신입생 기준으로는 정말 어려웠을 거라고 생각합니다. 하지만 파이썬 뿐만 아니라 C, C++, JAVA 모두 기말고사는 중간고사에 비해 난이도가 확 올라갑니다. 파이썬이 그나마 조금 쉬운 편입니다 ㅠㅠ 준비하시는 분들은 한 번 풀어보시고 모르는게 있다면 댓글 남겨주시면 설명 도와드리도록 하겠습니다. 파이썬 시험을 준비하실 때 정말 좋은 사이트가 하나 있는데 https://wikidocs.net/book/1 점프 투 파이썬 ** 점프 투 파이썬 오프라인 책(개정판) 출간 !! (2019.06) ** * [책 구입 안내](https://wikidocs.net/4321) 이 책은 파이썬 ... wikidocs.net 위에 링크가서 공부하시면 정말

[스프링 스터디] #3 프로젝트 기본 틀 잡기 + Auth API + 테스트코드 작성 [내부링크]

[스프링 스터디] #3 프로젝트 기본 틀 잡기 + Auth API + 테스트코드 작성 시험기간이라서 업로드가 늦었습니다. 이번 달은 시험 기간이라서 스터디를 안했습니다. 이번 주 목요일부터 다시 시작합니다! 오늘 포스팅할 건 이번 주 과제에 대한 내용입니다. 저번에 같이 하시는 민준님과 안정적이고 심도있는 프로젝트를 만들기 위해 서로 대화를 많이 했고, '각자 기본 틀 잡기 + 로그인 API 구현 + 테스트 코드 작성' 을 목표로 이번주 과제를 진행했습니다. 이번주 과제에 대한 코드 및 자세한 내용은 아래 링크를 통해서 확인 하실 수 있고, 깃허브 주소도 함께 올립니다. https://blog.naver.com/sosow0212/222747372730 스프링부트 커뮤니티 API 서버 만들기 #1 - 로그인 기능 + Validation + Exception 구현 스프링부트 커뮤니티 API 서버 만들기 #1 - 로그인 기능 + Validation + Exception 구현 프로젝트 소.

[자바] 백준 10026 : 적록색약 (DFS 문제 풀어보기) [내부링크]

[자바] 백준 10026 : 적록색약 (DFS 문제 풀어보기) https://www.acmicpc.net/problem/10026 10026번: 적록색약 10026번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 적록색약 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 32972 19046 14829 57.277% 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있... www.acmicpc.net 골드5 난이도 그래프 탐색 문제입니다. DFS 입문하기 정말 좋은 문제라고 생각합니다. 문제를 요약하자면, 주어지는 그래프에서 일반 사람이 그래프를 볼때, 보이는 영역의

[스프링부트] #4 쉽게 Rest API를 만들어보기 (쪽지 기능 구현하기) [내부링크]

[스프링부트] #4 쉽게 Rest API를 만들어보기 (쪽지 기능 구현하기) 오늘은 쪽지 보내기를 구현해보겠습니다. A 유저가 B 유저에게 쪽지를 보내면, A유저의 보낸 쪽지함에는 보낸 쪽지로 남고, B유저의 받은 쪽지함에는 받은 쪽지로 남게 됩니다. 만약에 B유저가 받은 쪽지함에서 이 편지를 지우게 되면, B유저의 받은 쪽지함에서는 이 편지가 지워지게 되지만, A유저의 보낸 쪽지함에서는 지워지지 않습니다. 만약 B유저가 받은 쪽지함에서 편지를 삭제하고, A유저도 보낸 쪽지함에서 편지를 삭제하면, 데이터베이스에서도 삭제하게끔 만들었습니다. 오늘 구현할 편지 보내기에서 기능은 1. 편지보내기 2. 받은 편지함 보기 3. 보낸 편지함 보기 4. 받은 편지 삭제하기 5. 보낸 편지 삭제하기 이렇게 5가지 입니다. 오늘은 조금 까다로울 수 있습니다. Message 엔터티를 추가하는데, Message 엔터티에는 @ManyToOne 어노테이션을 이용해서, Receiver, Sender 라는 이

[네이버 d2] '그런 REST API로 괜찮은가' 후기 [내부링크]

[네이버 d2] '그런 REST API로 괜찮은가' 후기 이번 강의는 REST API 강의로 되게 유명합니다. 그래서 들어봐야지 생각만하다가, 오늘 들었습니다. 역시 명강의답게, 초보자들도 이해하기 쉽고, REST에 대한 원초적인 의미를 알 수 있었습니다. 강의 정리 REST 분산 하이퍼미디어 시스템(예: 웹)을 위한 아키텍쳐 스타일 REST API REST 아키텍쳐를 따르는 API 출처: 그런 REST API로 괜찮은가 Uniform interface의 제약조건이란?! 출처: 그런 REST API로 괜찮은가 self-descriptive-messages 즉 메시지는 스스로를 설명해야한다. 'GET / HTTP / 1.1' 'HOST: www.example.org' 이런게 예시이다. 단순히 'GET / HTTP / 1.1' 이런 건 self-descriptive-messages 에 해당되지 않는다. HATEOAS 는 애플리케이션의 상태는 Hyperlink를 이용해 전이되어야한다. 출

[자바] 백준 1926 : 그림 (DFS + BFS 풀이) / DFS, BFS 추천 문제 [내부링크]

[자바] 백준 1926 : 그림 (DFS + BFS 풀이) / DFS, BFS 추천 문제 https://www.acmicpc.net/problem/1926 1926번: 그림 1926번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 그림 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 14667 6311 4455 42.084% 문제 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다. 입력 첫째 줄에 도화지의... www.acmicpc.net '2667번 단지번호붙이기' 문제와 거의 똑같다고 보시면 됩니다. 처음에 DFS, BFS 공부할 때에는, 이런 문제가 진짜 최고입니다! 처음에는 DF

[스프링부트] #5 쉽게 Rest API를 만들어보기 (Jwt + Spring Security로 회원가입 및 로그인하기, 리팩토링) + 깃허브 링크 [내부링크]

[스프링부트] #5 쉽게 Rest API를 만들어보기 (Jwt + Spring Security로 회원가입 및 로그인하기, 리팩토링) 안녕하세요. 원래 회원가입 및 로그인은 보통 처음에 진행하는데, 어쩌다보니 다섯 번째 포스팅에서 하게 됐습니다. 오늘은 Spring Security + Jwt 를 이용해서 회원가입 및 로그인 기능을 만들 것이고, User Entity 권한 추가 및 로그인 기능을 이용해서, 지금까지 컨트롤러에 임의로 1번 유저로 넣었던 것들을 로그인한 유저의 정보를 바탕으로 기능이 작동하도록 코드 리팩토링을할 것입니다. Spring Security + Jwt 는 구글에 검색해보시면, 설명을 정말 잘해주시는 분들이 많으니 이번 포스팅을 통해 프로젝트 제작을 하기 전에 꼭 개념을 익히고 따라하시는게 좋습니다. 전반적으로 오늘 다뤄볼 내용은 다음과 같습니다. 1. Spring Security + Jwt 디펜던시 추가 및 config 설정하기 2. 코드 리팩토링하기 3. 로그인

Spring Security + JWT 조금 더 살펴보기 [내부링크]

Spring Security + JWT 조금 더 살펴보기 Spring Security 와 JWT는 자주 쓰는만큼 조금 더 공부해봤습니다. JWT에 대한 글은 아래 링크로 대체합니다. https://blog.naver.com/sosow0212/222719613386 [스프링부트] JWT 인증 파헤치기 및 JWT + Spring security로 회원가입 로그인 구현해보기 스프링부트] JWT 인증 파헤치기 및 JWT + Spring security로 회원가입 로그인 구현해보기 JWT (... blog.naver.com Spring Security Spring Security 는 공격 보호 및 사용자 정보 검증 및 유저 정보 관리를 도와줍니다. 즉, 인증(Authenticate)과 인가(Authorize) 를 담당하는 프레임워크입니다. 기본적으로 Spring Security는 세션 & 쿠키 방식으로 인증을 합니다 Spring Security의 서블릿 보안 지원은 Servlet Filter

[스프링 스터디] #2 JWT, Spring Security 공부 및 Entity 설계, 테스트 코드 협의 [내부링크]

[스프링 스터디] #2 JWT, Spring Security 공부 및 Entity 설계, 테스트 코드 협의 오늘은 Spring Security + JWT 를 발표했습니다. 확실히 개념을 이해하게 됐습니다. 그리고 다음주까지 User Entity 만들고, 회원가입 및 로그인을 구현하고나서 테스트코드까지 작성하기로 했습니다. 다음주에는 만든 거 각자 발표를하고, 설계를 하고 본격적으로 개발을 시작할 예정입니다.

[스프링부트] #2 쉽게 Rest API를 만들어보기(JPA로 게시판 구현하기 및 유저 정보 넣기, Dto로 데이터를 예쁘게 받자) [내부링크]

[스프링부트] #2 쉽게 Rest API를 만들어보기 (JPA로 게시판 구현하기 및 유저 정보 넣기, Dto로 데이터를 예쁘게 받자) 지난 포스팅에 이어서 오늘은 Rest API를 이용해서 게시판 만들기를 알아보려고 합니다. 코드는 1편부터 쭉 이어지니, 따라 해보고 싶으신 분들은 1편부터 쭉 따라하시거나, 추후에 다 만들고나서 이번 시리즈의 처음 포스팅, 혹은 마지막 포스팅에 깃허브 링크를 넣어둘테니 확인 해보시면 좋을 것 같습니다. 시작하기 앞서서 이해의 도움이 되고자 먼저 코드 및 간단한 설명을 보시고, 밑에 자세한 설명을 보시는게 좋습니다. UserRepository의 코드가 추가 됐습니다. import org.springframework.data.jpa.repository.JpaRepository; import self.study.entity.User; public interface UserRepository extends JpaRepository<User, Integer

[자바] 2019 '카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임' 알고리즘 풀이 [내부링크]

[자바] 2019 '카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임' 알고리즘 풀이 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차... programmers.co.kr 구현 + 스택을 이용해서 푼 문제입니다. 일단 문제가 좀 길어서 헷갈릴 수 있는데, 간단

[스프링부트] #3 쉽게 Rest API를 만들어보기 (게시판 댓글 구현하기) [내부링크]

[스프링부트] #3 쉽게 Rest API를 만들어보기 (게시판 댓글 구현하기) 오늘은 지난 번에 이어서 게시글에 댓글 다는 것을 만들어봤습니다. 마찬가지로 DTO를 이용해서 예쁘게 값을 주고 받았습니다. 지난번 게시글 CRUD 제작과 거의 똑같다고 보시면 됩니다. 댓글 수정은 안 만들었고, '작성, 불러오기, 삭제' 기능만 구현했습니다. JWT + Spring Security 로그인 기능과 특정한 유저가 작성한 글 및 작성한 댓글 보는 건 추후에 구현하도록 하겠습니다. 시작에 앞서서 먼저 추가된 코드부터 말씀드리겠습니다. Comment import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.annotations.OnDelete; import org.hibernate.annotations.OnDeleteAction; import javax.persi

[명지대 파이썬 멘토링 #7] 파이썬 클래스 배우기 2 - 상속, 오버라이딩, 모듈 [내부링크]

[명지대 파이썬 멘토링 #7] 파이썬 클래스 배우기 2 - 상속, 오버라이딩, 모듈 오늘은 클래스의 상속에 대해 배울 예정입니다. 클래스의 상속이란 말 그대로 물려받는다는 뜻이고, 이 개념을 클래스로 풀어 설명하자면, 어떤 클래스를 만들 때, 다른 클래스의 기능을 받아서 쓸 수 있게 해주는 것입니다. 클래스의 상속을 쓰는 이유는 기존 클래스를 변경하지 않고, 기능을 추가하거나 기존 기능을 변경하기 위해서 사용합니다. 즉 쉽게 말해서, 코드 수가 1000줄이 되는 A클래스가 있는데, B클래스를 하나 만들 생각인데 A클래스와 되게 비슷한데, 기능 몇가지가 추가 되는 경우가 있다고 칠 때, B클래스를 만들기 위해서 기존 A클래스의 코드를 재활용 하면 되는데 굳이 다시 만들 필요가 없겠죠? 그럴 경우 새로 만들 B클래스는, 기존에 있던 A클래스를 상속받고 기능을 추가 해주면 됩니다. 컴퓨터의 자원(CPU, RAM 등등 ...)은 한정적입니다. 요즘 나오는 컴퓨터가 좋다고 하더라도, 개발자의

Agile - 애자일 개발 방법론에 대해 알아보기 [내부링크]

Agile - 애자일 개발 방법론에 대해 알아보기 개발자 면접 후기를 보면 종종 애자일 개발 방법론에 대해 몰라서 대답을 못했다는 사람들을 많이 봤습니다. 그리고 기술 블로그나, 테크톡을 봐도 '애자일' 이라는 단어는 많이 나옵니다. 사실 지금까지 공부하는데에 있어서 애자일을 몰라도 지장은 없었지만, 여러 사람들이 '애자일'을 물어보고 블로그에 정리한다는 뜻은 중요하니깐 그러겠죠? '애자일' 너무 생소한 단어라서 감도 안 왔는데, 이왕 생각난 김에 오늘 정리 한 번 해볼 생각입니다! Agile (애자일) 이란? Agile Software Development 소프트웨어 개발 방법론의 하나로, 처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과는 달리 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다. 정식 명칭은 애자일 소프트웨어 개발(Agile[1] Software Development). 한국에서는 주로 애자일 방법론 이라고 부른다. 켄트 벡

[개발일기 #17] 22년 5월의 개발 공부 - RESTful 하게 개발하기, 해커톤 및 새로운 팀프로젝트 [내부링크]

[개발일기 #17] 22년 5월의 개발 공부 - RESTful 하게 개발하기, 해커톤 및 새로운 프로젝트 이번 달에도 매일 꾸준하게 공부했습니다! 매일 2~3문제씩 알고리즘을 푸는데, 많이 풀었지만 아직도 알고리즘 푸는 건 좀 벅찰 때가 많습니다. 이제 슬슬 코테 볼 일이 많아질텐데, 얼른 더 잘해지길 그리고 이번 달에는, 데이터베이스 조회는 최소화 해야 한다는 것을 배웠습니다. 전에는 잘 몰라서 막 조회하고, JPA도 효율적으로 안 썼음을 반성하고, 시험 끝나고 바로 리팩토링 할 생각입니다. 또한 4~5월달이 되면서, 파이썬 백엔드 프레임워크인 Flask를 가볍게 공부했습니다. 언젠가 서버 통신을 많이 할텐데, 가볍게라도 공부해서 협업할 때 피해가 되지 않고 싶고, 플라스크를 배워보고 싶기도 했습니다. 저의 생각이지만, 맛 본 결과 스프링에 비해서, 입문하기에 쉽고 조금 더 직관적이었습니다. 그리고 이번에 풀스택으로 혼자서 건강관리 프로젝트를 진행하고있는데, 기존에 템플릿 엔진으

[자바] 백준 7562 : 나이트의 이동 (BFS 문제 풀어보기) [내부링크]

[자바] 백준 7562 : 나이트의 이동 (BFS 문제 풀어보기) https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 7562번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 나이트의 이동 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 37165 18534 13859 48.925% 문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 ... www.acmicpc.net 먼저 이 문제는 BFS로 접근해서 풀어야합니다. DFS가 아닌 BFS로 풀어야 하는 이유는, 문제에서 '최소' 라는 말이 나왔기 때문입니다. 둘다 완전 탐색은 맞지

[스프링 스터디] #1 프로젝트, 공부 계획 및 회의록 [내부링크]

[스프링 스터디] #1 프로젝트, 공부 계획 및 회의록 부트캠프 및 취업시 기술면접을 위한 스프링부트 2인 스터디입니다. 공장식 프로젝트보다는, 현업에 가깝고 신입이 할 수 있을만큼 최대한 완벽하게 만들자는 목표로 만들어진 스터디이고, 중간중간 기술 개념은 꼭 짚고 넘어가기로 했습니다. 백엔드 프로젝트인만큼 템플릿 엔진을 위한 프로젝트 설계보다는, RESTful 하게 만드는게 목표입니다. 1회 회의는 브레인스토밍으로 빠르게 프로젝트 관련 아이디어를 내고, 고쳐나가는 식으로 진행했습니다. 1회 회의 - 프로젝트 계획 (22.05.15) 프로젝트 주제 - 커뮤니티 사이트 만들기 1. 기능적인 측면 (임시) 회원가입 및 로그인, 개인 및 어드민 페이지, 게시판, 유저 간 쪽지 및 채팅, 기본적 글(CRUD)기능, 무한스크롤, 국제화, 카테고리 나누기, 글 추천(추가로 추천을 많이 받으면HOT글), 회원간 결제?, 공지(카테고리 나누기로 해결 가능), 악성회원 정지기능, 댓글 2. 사용할

[명지대 파이썬 멘토링 #5] 파이썬 함수 배우기 [내부링크]

[명지대 파이썬 멘토링 #5] 파이썬 함수 배우기 먼저 함수는 무엇일까요? 함수는 다양한 프로그래밍 언어에서, 보통의 경우 반복되는 작업을 줄이기 위해서 사용합니다. 예를 들어 아래와 같은 경우를 생각해보면 됩니다. 변수 a, b의 입력을 계속 받아서 이 두 변수를 더하는 걸 만들고 싶을 때, 지금까지는 아래와 같은 방법으로 했을거에요. # 함수 배우기 이전 a = 1 b = 2 print(a + b) a = 2 b = 3 print(a + b) a = 3 b = 4 print(a + b) 하지만 아래와 같이 함수를 만들어 놓는다면, 조금 더 편하고 빠르게 계산을 할 수 있습니다. def plus(a, b): print(a+b) plus(1, 3) plus(2, 4) plus(3, 5) 코드가 훨씬 깔끔해지고 코드 수가 줄은 걸 확인할 수 있습니다. 위와 같은 간단한 예제는 사실 함수를 굳이 안 써도 되지만, 엄청나게 많은 양의 데이터를 각각 다뤄줘야 되는 경우에는 함수를 쓰면 작업

[스프링부트] JWT 인증 파헤치기 및 JWT + Spring security로 회원가입 로그인 구현해보기 [내부링크]

스프링부트] JWT 인증 파헤치기 및 JWT + Spring security로 회원가입 로그인 구현해보기 JWT (Json Web Token) 란 ? 먼저 JWT를 공부하기 앞서, 기존에 인증 체계는 Cookie, Session으로 이뤄졌습니다. 쿠키는 노출 될 때, 민감정보(로그인 정보 같은)가 전부 노출이 되어서 보안에 좋지 않다는 이유와, 쿠키 조작의 가능성, 다른 브라우저간 공유 불가능 및 4KB라는 적은 사이즈로 충분한 데이터를 담을 수 없는 이유로 쿠키를 온전히 인증에 사용하지 않습니다. 세션 또한 쿠키에 비해 좋다고 하더라도, 문제점이 있습니다. 세션 저장소에 문제가 발생하면, 인증 체계가 무너지고 이전에 다른 인증된 유저 또한 인증이 불가해진다는 점과 stateful하기 때문에, http의 장점을 발휘하지 못한다는 점, 세션 ID가 탈취 됐을 때, 클라이언트로 위장하는 보안의 약점이 있습니다. 그리고 사용자가 많아지면 메모리를 많이 차지하고, 매번 요청마다 세션 저장소

[풀스택] 건강관리 서비스 제작기 #2 - 기본 기능 구현 [내부링크]

[풀스택] 건강관리 서비스 제작기 #2 - 기본 기능 구현 리액트와 스프링부트 서버를 연결시키고 프론트엔드 기본적인 뷰 구성 및 백엔드의 기본적인 기능을 구현했습니다. 기존 jsp 같은 템플릿 엔진을 사용해서 만드는 방법에 너무 익숙해서 처음에 걱정을 좀 했는데 다행히 서버 통신 하는데 지장이 없었습니다. 회원가입부분입니다. 리액트 서버에서 데이터를 스프링 서버로 POST 요청을 보내고, 스프링 서버에서 회원가입 로직을 처리하고 return 또한 잘 응답해주는 것을 확인 할 수 있습니다. 로그인 부분에서 처음에 많이 막혔습니다. 기존 Spring Security을 통해 로그인을 하면, x-www-form-urlencoded 방법으로 폼 로그인을 사용했는데, 공부를 하다가 알게 된 사실인데 x-www-form-urlencoded 방법은 보안 및 여러 문제 때문에 이제는 잘 사용하지 않는 방법이라고 그래서 JSON 통신으로 더 좋은 로그인 방법이 뭘까 공부하다가 JWT + Spring

[명지대 파이썬 멘토링 #6] 파이썬 클래스 배우기 [내부링크]

[명지대 파이썬 멘토링 #6] 파이썬 클래스 배우기 클래스라는 개념은 처음 볼 때 함수와 헷갈릴 수 있습니다. 보통 클래스를 쓰는 경우는 어떤 경우에 쓰는지 예시를 보겠습니다. 만약에 사람 관리 프로그램을 만든다고 했을 때, 각각의 사람에게는 name, age, address 의 정보를 넣고 싶을때 기존에는 다음과 같이 했습니다. name1 = "yoon" age1 = 24 address1 = "yongin" name2 = "hong" age2 = 23 address2 = "seoul" 이런식으로 사람 100명 만든다고 생각해보면 생각만해도 되게 힘들죠? 그래서 나온게 클래스입니다. class를 사용하는 방법은 다음과 같습니다. class 클래스명 : 수행할 문장 class human: def __init__(self, name, age, address): self.name = name self.age = age self.address = address yoon = human("yo

[풀스택] 건강관리 서비스 제작기 #3 - 게시글 및 댓글 백엔드 로직 구현하기 [내부링크]

[풀스택] 건강관리 서비스 제작기 #3 - 게시글 및 댓글 백엔드 로직 구현하기 오늘은 게시글 및 댓글 작성 기능을 스프링부트로 구현했습니다. 이제 통계 기능 및 운동 관련 기능만 추가하면 백엔드는 얼추 끝이 날 것 같습니다. 항상 템플릿 엔진만 쓰다가 RestAPI 기반으로 코드를 작성하다보니 생각보다 많은 오류들을 발견했습니다. 예를 들면, 포스트맨으로 작동 테스트를 할 때, 무한참조가 발생하는 문제들은, 템플릿 엔진을 썼을 때에는 JSON 형식으로 뿌리는게 아니라서 확인도 못하고, 틀린지도 몰랐는데, 기존에 하던 방식대로 코드를 짜니 무한참조 오류가 발생해서 @JsonIgnoreProperties에 대해 더 잘 알게 됐고, JPA에 대한 지식도 조금씩 더 쌓여가는게 느껴집니다. 얼른 기능 개발하고, DTO 구현해서 RestAPI 표준으로 데이터 전송하는 것을 목표로 도전해봐야겠습니다!

[자바] 백준 13417 - 카드 문자열 (그리디) [내부링크]

[자바] 백준 13417 - 카드 문자열 (그리디) 백준 13417 문제입니다. https://www.acmicpc.net/problem/13417 13417번: 카드 문자열 13417번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 카드 문자열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 2038 1212 1040 62.016% 문제 N장의 카드가 일렬로 놓여있다. 각 카드에는 알파벳이 하나씩 적혀있다. 태욱이는 가장 왼쪽에 있는 카드부터 차례대로 한 장씩 가져올 수 있다. 가장 처음에 가져온 카드는 자신의 앞에 놓는다. 그다음부터는 가져온 카드를 자신의 앞에 놓인 카드들의 가장 왼쪽, 또는 가장 오른쪽에 놓는다. 태욱이는 모든 카드를 다 가져온 후에 자신의 앞... www.acmicpc.net 그리디 문제입니다. 처음 입력된 알파벳을 저장해주고, 그 후부터 들어오는 알파벳이 마지막 값보다 클 경우와 마지막 값보다 작으면서 처음 값보다 큰

[개발일기] 번아웃, 취업, 연락 [내부링크]

[개발일기] 번아웃, 취업, 연락 3학년이 되면서 취업에 대한 압박이 시작 됐습니다. 처음에는 매일매일 성실히 공부하고, 공부 한 걸 올리자라는 마음으로 깃허브에 1일 1커밋 도전 및 늘 블로그에 기록하자는 마음을 먹었습니다. 처음에는 그 도전이 강박이 됐지만, 이제는 강박이 습관과 일상이 되었습니다. 처음과 다르게 이제는 여행을 가든, 뭐든 어디서든 노트북을 가져가서 공부하는게 습관이 되었고, 그런 습관이 이제는 그럭저럭 나쁘지 않은 것 같다고 생각했는데, 요즘 들어서는 공부에 대한 회의감이 많이 들었습니다. 내 기준에서는 100점이라는 기준으로 정말 최선을 다해서 공부하지만 남들이 한 걸 보면 150점 200점으로 뽑아내니깐, 타고난 머리를 탓하기도 하고 "덜 성실했던가" 라는 스스로에 대한 회의감이 들면서 번아웃이 왔습니다. 산다는게 여러 변수로 인해, 노력과 비례해서 좋은 성과를 뽑을 수는 없기 때문에, 늘 노력을 기반으로 효율적인 방법을 추구했는데, 요즘은 스스로가 노력은

[스프링부트] #1 쉽게 Rest API를 만들어보기(로그인, DTO, 예외 처리, JSON 리턴) [내부링크]

[스프링부트] #1 쉽게 Rest API를 만들어보기(로그인, DTO, 예외 처리, JSON 리턴) 오늘은 회원가입 및 로그인 로직으로 Rest API를 만들어 봤습니다. 예시로 쓰는 회원가입 및 로그인 로직은 간단하게 이해하는게 목적이라서 BCrypt 등등 전부 생략했습니다. 시작하기 앞서, 우리가 오늘 배우는 방식에 대해서 간단히 설명해드리자면 Dto, 예외처리, JSON 다루기 입니다. 전부 간단하게 설명하는 것에 초점을 뒀습니다. 경험해본 바로는 이런 개념들이 구글링하면 전부 깊은 내용이고, 초보자 입장에서는 어려워서, 이 세가지가 연결되기도 힘들고 삽질을 많이하게 되더라고요. 그래서 최대한 쉽고 얕게 세가지를 설명하고 이해시키는게 이 포스팅의 목적입니다. 이제 정말 들어가기 앞서서 간단하게 예습을 하고 가자면 (정확하진 않지만 이런 느낌으로 이해하시면 돼요) 1. Dto란 예민한 정보의 노출을 막기 위해서 Entity 대체품으로 사용하는 것이다. 2. 예외처리란 말 그대로

[스프링부트] RestAPI 반환을 맞춤으로 만들어보자 [내부링크]

[스프링부트] RestAPI 반환을 맞춤으로 만들어보자 RestAPI 를 사용하면서, 반환을 해주는 방법은 여러가지가 있습니다. 오늘은 1. Object형 반환 2. ResponseEntity 반환 3. Custom으로 만들어서 반환 4. ResponseEntity + Cusom 반환 이렇게 세 가지의 반환 방법에 대해 알아보려고 합니다. 반환을 잘 해야하는 이유는, 프론트엔드 개발자들과 협업할 때, 서로 작업을 편하게 하기 위해서입니다. 예를들면 프론트엔드 개발자들이 'user 정보를 data라는 껍데기에 담아주세요~~' 이런 식으로, 리턴을 잘 해주면, 코드의 가독성도 높아지고 업무의 효율성도 높아지게 됩니다. 아래 케이스들은 모두 당연하게도 @RestControlle가 붙은 경우입니다. 1. Object형 반환 // Board형으로 전달 @GetMapping("/api/v1") public Board apiV1() { Board board = new Board(); board.

[스프링부트] Gradle 환경에서 Swagger 3.0 적용해보기 (API 명세서) [내부링크]

[스프링부트] Gradle 환경에서 Swagger 3.0 적용해보기 (API 명세서) Swagger 란? 간단히 말해서 스웨거는 우리가 만든 REST API 서비스를 설계, 빌드, 문서화, 소비하는 일들을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크입니다. 이런 말은 너무 어려우니깐, 쉽게 말하자면, 스웨거는 보통 협업할 때, 많이 씁니다. 즉 내가 어떤 API를 만들었는지 문서화 시켜서 프론트나, 다른 백엔드 개발자들과의 협업을 조금 더 효율적이고 편하게 만들어줍니다. Gradle 환경에서 Swagger 적용해보자 1. build.gradle 에서 아래와 같은 dependencies 를 추가해줍니다. // Swagger implementation 'io.springfox:springfox-boot-starter:3.0.0' 디펜던시 추가 후에 코끼리를 눌러서 디펜던시 적용을 시켜주고, 프로젝트 실행을 해보세요. 만약에 프로젝트가 실행되지 않고, Swag

[자바] 백준 2667 - 단지번호 붙이기 풀이 (DFS + 그래프탐색) [내부링크]

[자바] 백준 2667 - 단지번호 붙이기 풀이 (DFS + 그래프탐색) https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 2667번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 단지번호붙이기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 115282 49127 30980 40.449% 문제 <그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된... www.acmicpc.net 실버1 그래프탐색, DFS, BFS 문제입니다. 저는 DFS를 이용해서 풀었고, 설명은 주석에 달아놓았습니다. DFS, BFS 문제는 처음에 이해하기 너무

[풀스택] 건강관리 서비스 제작기 #1 준비하기 [내부링크]

[풀스택] 건강관리 서비스 제작기 #1 준비하기 최대한 현업과 비슷하게 프로젝트를 진행해보고자 이번 토이 프로젝트를 시작했습니다. 1인 프로젝트이고, 사용 기술 스택은 프론트엔드 : React 백엔드 : Spring boot, Flask DB : MariaDB 이렇게 생각하고있습니다. 프로젝트 개요 및 기능 1. 건강 관리 및 식단 및 운동 관리에 대한 기능을 제공해주는 프로젝트입니다. 2. 추가 계획으로는 파이썬 Flask 서버에서는 헬스 관련 커뮤니티에 특정 검색어(ex. 보충제) 를 검색하면 '___ 보충제' 같은 데이터를 뽑아서, 현재 유저들에게 인기있는 정보를 추출해줄 생각입니다. /user 유저 관련 /register, login 로그인 관련 /menu/~~ 정보 제공 /admin 어드민 페이지 프로젝트 진행시에 주의할 점 1. Git 커밋 메시지 신경쓰기 # Git 커밋 메시지 feat: 새로운 기능 fix: 버그 해결 docs: 문서 변경 style: formattin

[React] vscode에서 리액트 자동 정렬시 이상하게 되는 문제 해결 방법, 자동으로 Import 입력이 안 되는 경우 해결하기 [내부링크]

[React] 리액트 자동 정렬시 이상하게 되는 문제 해결 방법, 자동으로 Import 입력이 안 되는 경우 해결하기 풀스택으로 개발을 해보려고 오랜만에 리액트를 공부중인데, 컴포넌트 입력시, 자동으로 Import 되지도 않고 vscode에서 맥 기준 커맨드 + k + f 로 정렬을 해도 이런식으로 정렬이 됐습니다. 그래서 검색을 해보니깐 다음과 같이 해결할 수 있었습니다. 맥 기준 " Command + , " 키 눌러서 위에 사진과 같이 설정으로 들어간 후에, 사진에서 동그라미 친 부분을 클릭하여 settings.json 으로 들어가줍니다. settings.json 맨 마지막 줄에 "files.associations": { "*.js" : "javascriptreact" }, 코드를 입력해주면 문제가 전부 해결됩니다!

[스프링부트] Spring 서버에서 Flask서버의 API 받아오기 [내부링크]

[Spring] Spring 서버에서 Flask서버의 API 받아오기 - 서버끼리 통신 - 플라스크 스프링 통신 - Flask to Spring 최근에 파이썬 Flask 개발을 시작했습니다. 목적은 파이썬이 데이터분석에 적합하기 때문에, 파이썬으로 데이터 처리를 하고, Flask 를 통해 API를 배포하고 스프링으로 받아서, 프로젝트를 진행하기 위해서입니다. 어쨋든, 나중에 프로젝트를 하려면 다른 서버에서 데이터를 스프링서버로 불러와야하므로 연습할겸 공부해봤습니다. 결과를 먼저 보자면 spring 서버는 8080포트를 사용하고, 스프링서버의 /work 경로로 들어가면, Flask의 서버에 GET 요청을 보내서 Flask 서버에 있는 데이터를 가져 온 것입니다. 플라스크 서버 포트 = 7000 /get 주소로 GET 요청을 보내면 미리 저장해둔 data 리턴 스프링부트 서버 포트 = 8080 /work 주소로 GET 요청을 보내면, 플라스크 서버의 데이터 받아옴 스프링부트 컨트롤러 p

[DB] 데이터베이스 개념 탈탈 털어보기 [내부링크]

[DB] 데이터베이스 기본 개념 데이터베이스의 기본 개념 데이터 : - 현실에서 관찰 및 측정해서 수집한 사실이나 값 정보 : 데이터를 처리한 활용할 수 있는 결과물 정보처리 : 데이터에서 정보를 추출하는 과정 또는 방법 정보 시스템 : 데이터를 수집 했다가, 조직 운영에 유용한 정보를 만들어 주는 수단 데이터베이스 : 정보 시스템 안에서 데이터를 저장하고, 필요할 때 제공하는 역할을 담당 데이터베이스의 정의 : - 공유 데이터 통합 데이터 - 저장 데이터 - 운영 데이터 데이터베이스의 특징 : - 실시간 접근 - 내용 참조 기반 - 동시 공유 - 계속 변화 데이터의 분류 : - 정형 데이터 (엑셀) - 반정형 데이터 (JSON, XML) - 비정형 데이터 (워드, 이미지) 파일시스템 VS 데이터베이스 파일 시스템 : - 데이터를 파일로 관리하기 위해 파일을 생성, 삭제, 수정, 검색하는 기능을 제공하는 소프트웨어 파일 시스템의 문제점 : - 같은 내용의 데이터가 여러 파일에 중복

[안드로이드] 모바일프로그래밍 중간고사 (~고급위젯) 후기 [내부링크]

모바일프로그래밍 안드로이드 중간고사 (~고급위젯) 후기 1번 문제 주어진 대로 풀면 되는 문제입니다. 자바 코드 짜는 건 쉬워서, 레이아웃만 신경써주면 되는 문제입니다. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <Chronometer android:id="@+id/chronometer" android:layout_w

[FastAPI] 파이썬 백엔드, FastAPI 란? / FastAPI 시작해보기 [내부링크]

파이썬 백엔드, FastAPI 란? 안녕하세요. 최근에 파이썬 웹 프레임워크인 FastAPI 공부를 시작했습니다. FastAPI의 장점은, 파이썬의 기능을 담고 있고, 다른 파이썬 웹 프레임워크인 django, flask 보다도 빠른 성능, 코드 버그 감소, 쉽게 사용의 장점이 있습니다. 비교적 최근에 나온 프레임워크라서 자료가 많이 없지만, 엄청나게 빠른 속도로 성장중입니다. https://fastapi.tiangolo.com/ko/tutorial/ 자습서 - 사용자 안내서 - 도입부 - FastAPI 자습서 - 사용자 안내서 - 도입부 ¶ 이 자습서는 FastAPI 의 대부분의 기능을 단계별로 사용하는 방법을 보여줍니다. 각 섹션은 이전 섹션을 기반해서 점진적으로 만들어 졌지만, 주제에 따라 다르게 구성되었기 때문에 특정 API 요구사항을 해결하기 위해서라면 어느 특정 항목으로던지 직접 이동할 수 있습니다. 또한 향후 참조가 될 수 있도록 만들어졌습니다. 그러므로 다시 돌아와서

[Flask] 파이썬 백엔드, Flask 란? / Flask 시작해보기 [내부링크]

[Flask] 파이썬 백엔드, Flask 란? / Flask 시작해보기 Flask 알아보기 지난 포스팅으로 파이썬 백엔드 프레임워크인 FastAPI를 간단하게 알아봤습니다. DB 연결 및 CRUD 기반 간단한 프로젝트를 생성 해봤는데, 확실히 자바 스프링에 비해서 간단하다는 장점이 있는데, 아직은 자료가 너무 없는 것 같습니다. 메인으로 파이썬 백엔드 프레임워크를 쓸 것도 아니라서 차라리 자료가 많은 Flask를 하는게 나을 수도 있겠다라고 생각했습니다. https://flask-docs-kr.readthedocs.io/ko/latest/ Flask의 세계에 오신것을 환영합니다. — Flask 0.11-dev documentation Flask 머리말 경험있는 프로그래머를 위한 머릿글 설치하기 빠르게 시작하기 튜토리얼 템플릿 Flask 어플리케이션 테스트하기 어플리케이션 에러 로깅하기 어플리케이션 에러 디버깅 설정 다루기 시그널(Signals) 플러거블 뷰(Pluggable View

[Flask] CRUD 작성해보기 - 1 (Notion으로 HTML 만들어보기) [내부링크]

[Flask] CRUD 작성해보기 - 1 (Notion으로 HTML 만들어보기) 파이썬 Flask를 이용해서 CRUD 웹사이트를 만들어보기 API 개발이 아닌, Templates 를 이용한 CRUD 개발입니다! 먼저 강의를 듣다가 꿀팁을 배웠는데, 지금까지 api 서버를 만드는 거 말고 바로 html로 렌더링 해줄 때, 직접 html 파일을 하나하나 만들거나, 부트스트랩을 이용해서 프론트단을 구현했는데 Notion을 통해서 웹 템플릿을 html로 추출하면 그대로 나오더라고요. 이건 너무 꿀팁이라서 써봤습니다. 이렇게 노션으로 작성을하고, 추출한다음 템플릿 폴더에 넣어놓고 실행을 해보면 이렇게 노션처럼 똑같이 html, css가 구현이 됩니다. app.py from flask import Flask, render_template, request, redirect, url_for import database import sys app = Flask(__name__) @app.route(

[개발일기] 멋진 토이 프로젝트 계획해보기 [내부링크]

[개발일기] 멋진 토이 프로젝트 계획해보기 지금까지 스프링부트로 프로젝트를 하면서, 대부분 CRUD 로 개발했습니다. 프로젝트를 의미없이 공장처럼 찍어냈는데, 생각을 해보면, 참 의미 없다고 느껴졌습니다. 그러다가 API의 중요성을 알게 돼서 API 개발 공부와 더불어 인프라까지 조금조금 공부 했습니다. 어차피 현업가면 백엔드는 API 개발할테고, 프론트엔드는 백엔드가 보낸 걸 바탕으로 웹을 구상하기 때문에 지금까지 했던 프로젝트의 방식보다는 백엔드로 API를 개발해서 배포하는게 더 맞지 않나 생각이 들었습니다. 그래서 지금까지 했던 프로젝트 방식보다는, 조금 더 현업에 가까운 방법으로 프로젝트를 혼자서 진행을 해보려고 합니다. 최근에 파이썬 플라스크를 배우기 시작했고, 플라스크를 배우는 목적은 파이썬에게 유리한 데이터 분석 및 가공을 해서 플라스크를 통해 api 배포를 하기 위해서입니다. 그래서 지금 계획하는 프로젝트도 이런 식으로 해볼 생각인데, 지금 일단 생각한건 다음과 같습니

[Flask] API 통신을 위한 GET, POST + JSON 통신을 해보자 (jsonify) [내부링크]

[Flask] API 통신을 위한 GET, POST + JSON 통신을 해보자 (jsonify) Flask 또한 어느 백엔드 웹 프레임워크처럼 GET, POST 요청을 받을 수 있습니다. 오늘은 Flask에서 jsonify를 이용해서 JSON 통신을 하는 방법에 대해 말씀 드리려고 합니다. from http import HTTPStatus from flask import Flask, jsonify, redirect, render_template, request, url_for app = Flask(__name__) data = { "age": 14, "money": 100000 } @app.route('/get', methods=['GET']) def get(): return jsonify({"data": data, "status": HTTPStatus.OK}) @app.route('/post', methods=['POST']) def post(): params = request.g

[명지대 파이썬 멘토링 #3] while, List, Dictionary, Set 배워보기 [내부링크]

[명지대 파이썬 멘토링 #3] while문, List, Dictionary, Set 배워보기 while문과 for문 차이점과 언제 써야할지 알아보기 오늘은 먼저 while문에 대해서 배워볼 예정입니다. while 문법은 for와 비슷한 반복문입니다. 지난 시간에 for문 기억 잘 나시죠? while문도 비슷한 반복문이지만, 살짝 다른 느낌으로 사용합니다. for로 풀 수 있는 문제는 while로 해결이 가능하고, while로 해결이 가능한 문제는 for로 해결이 가능합니다. 하지만 while, for 각각 특징이 있어서, 어떤 문제는 while 문을 써야 쉽게 풀리고, 어떤건 for문을 써야 쉽게 풀립니다. 더 자세히 알아보기 위해서 아래에서 while문과 for문 예시를 보면서 차이점을 알아보겠습니다! while while 문법의 공식적인 사용법은 아래와 같습니다. while 조건문: <수행할 문장1> <수행할 문장2> <수행할 문장3> ... 위에 코드처럼 공식적인 문서는 머리가

[Android] 버튼 클릭시마다 배경색 바꾸기 (작년 중간고사 1번 문제) [내부링크]

[Android] 버튼 클릭시마다 배경색 바꾸기 (작년 중간고사 1번 문제) 작년 모바일프로그래밍 중간고사 1번 문제 첫 배경색은 흰색이고, Btn 첫 클릭시에 빨간색 배경으로 바꾸고, 그 이후부터는 전 배경이 빨간색이면 파란색, 파란색이면 빨간색으로 바꾸는 문제 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="ce

[Android] 체크, 라디오박스 클릭해서 동물 사진 띄우기 (작년 중간고사 2번) [내부링크]

[Android] 체크, 라디오박스 클릭해서 동물 사진 띄우기 (작년 중간고사 2번) 안드로이드가 처음이라 효율적인 코드인지도 모르겠습니다. 아래 사진처럼 체크박스(시작함)을 누르면 라디오 그룹이 쭉 뜨고 라디오 버튼을 하나 클릭하고 버튼을 누르면 Dialog와 함께 사진이 뜹니다. activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="20dp" android:or

[개발일기 #16] 22년 4월의 개발 공부 - 스프링 테스트 코드, MSA와 코틀린, 백준 알고리즘 골드2 달성 [내부링크]

[개발일기 #16] 22년 4월의 개발 공부 - 스프링 테스트 코드, MSA와 코틀린, 백준 알고리즘 골드2 달성 2022년 커밋 기록 1. 프레임워크, 자바 공부 약 한 달 동안스프링부트 테스트 코드와 JPA 그리고 DevOps에 대해 공부를 했습니다. 스프링부트 JPA 사용을 지금까지 막 썼는데, 효율적인 성능 처리를 위해서 공부를 진행하였고, 테스트 코드는 JUnit5 기반으로 단위 테스트 공부를 했습니다. 당장 학부생 수준에서야 프로젝트도 가벼우니 테스트 코드 짜기보다는, 서버 돌리고 포스트맨으로 정보 주고받고 하면 더 빠르긴 합니다. 하지만 나중에 현업에 나가면, 대형 프로젝트를 하고 성능 문제가 더 중요하게 판단되기 때문에, 테스트 코드를 잘 짜야해서 열심히 공부하고 있습니다. TDD 기반의 코드를 짜는 개발자가 되어봅시다..! DevOps 같은 경우는 거의 지식이 없다고 봐도 무방해서, 우테코 세미나 강의나, 구글링, velog 등등 다양한 곳에서 많은 글을 읽으면서 배

[명지대 파이썬 멘토링 #4] 배종우 교수님 중간고사 문제 분석 + 김성철 교수님 문제 예상하기 [내부링크]

[명지대 파이썬 멘토링 #4] 배종우 교수님 중간고사 문제 분석 + 김성철 교수님 문제 예상하기 파이썬 시험이 얼마 안 남았습니다. 이번 파이썬 수업은 '배종우, 김성철' 교수님 수업만 열렸는데 교수님마다 시험 스타일이 달라서 각각 기출 예상 해보고, 같이 문제를 풀어보겠습니다. 공통사항 및 꿀팁 - 시험 볼 때 출력 예시를 보고 print() 코드를 작성할 때 출력이 잘 나오도록 정확하게 입력하는게 좋습니다. - 문제를 무작정 풀기보다는, 보기 조건을 한 번 쭉 다보고나서 '어떻게' 풀지 단계를 나눠서 푸는게 좋습니다. (이건 멘토링 시간에 어떻게 하는지 알려드릴게요.) - 족보가 있더라도, 수업 때 작성해본 코드와 과제에 나온 코드는 꼭 숙지하는게 좋습니다. - 시험 볼 때, 도저히 정답이 나오지 않으면, 부분 점수라도 받을 수 있게 최대한 비슷하게라도 작성하는게 좋습니다. 1. 배종우 교수님 파이썬 시험 분석 - 하드코딩 스타일 - while, if, 자료형 너무 좋아하심 배종

새로운 백엔드 언어를 골라보자 (파이썬, 자바스크립트) [내부링크]

새로운 백엔드 언어를 골라보자 (파이썬, 자바스크립트) 스프링을 메인으로 두고, 서버간의 통신을 해서 퀄리티 있는 프로젝트를 만들어 보고 싶어서 중간고사가 끝나면 새로운 백엔드 언어를 배워 볼 생각입니다. 지금 고민중인 것은 자바스크립트 기반의 node.js (express), 파이썬 기반의 (django, Flask, FastAPI) 이렇게 고민 중입니다. 원래는 노드를 가장 배우고 싶었습니다. (스타트업 취업의 이유 + JSON 통신 최적화) 근데 취업 때문에 노드를 하는 건 조금 흥미가 안 생길 수도 있기 때문에 앞으로 인공지능까지 배운다는 걸 생각한다면 파이썬 기반의 django, flask, fastAPI 중 하나를 골라도 괜찮을 것 같다라고 생각했습니다. 자바 기반인 스프링으로만 모든 걸 하기에는 조금 어렵기도하고 자료도 많이 없어서 (서버 개발 제외) 하나를 더 골라야하는데 취업을 생각한다면 조금 시장이 넓은 노드가 맞지만 정말 재밌게 할 수 있는 건 파이썬일 것 같아서

[안드로이드] 자동 텍스트 완성, ProgressBar, SeekBar, RatingBar, ScrollView, 슬라이딩드로어, 뷰플리퍼, 탭호스트, 액션바, 프래그먼트, 웹뷰 [내부링크]

[안드로이드] 고급위젯 <SlidingDrawer> 사용방법이 있다. 예제는 서랍 과제 참조 <EditText> 문자입력받기 <AutoCompleteTextView> 자동 완성 텍스트뷰 <MultiAutoCompleteTextView> 여러 개의 값을 자동 완성 받을 수 있음 <ProgressBar> 로딩시 동그라미가 빙빙 도는 모양 <SeekBar> 음악 재생시 보이는 재생 시간 바 같은 것 <RatingBar> 별점 표기할 때 쓰는 바 <ScrollView> 영역이 너무 커서 화면 안에 다 보여주지 못할 경우 사용됨 즉 스크롤로 밑에 영역도 다 볼 수 있게해줌 <HorizenScrollView> 스크롤뷰의 가로버전 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/ap

[DevOps] 빌드와 배포 그리고 CI/CD 알아보기 [내부링크]

빌드 소스 코드를 실행 가능한 독립적인 소프트웨어 산출물로 만드는 과정을 뜻합니다. 빌드의 과정은 다음과 같습니다. '컴파일 - 링크 - 패키징 - 테스트' 빌드를 마치게 되면, 리소스와 클래스 파일이 뭉치게 되면서 JAR 혹은 WAR 로 만들어집니다. JAR (Java Archive) : 자바에서 사용되는 압축 양식, 클래스 + 리소스파일로 구성 WAR (Web Archive) : 웹 어플리케이션을 압축하고 배포하는데 사용되는 파일 형태이고, JAR에 비해 자바 서블릿, XML 파일, 정적 파일 등 필요한 자원이 더 많다. 빌드 도구 Ant : + XML 형식으로 작성 + 자유도가 높음 + 절차적 작성 + 스크립트 직접적 명시 및 다양한 Task 가능 - 스크립트 재사용 불가 - 복잡할수록 구조 및 스크립트 파악 힘듬 Maven : + porm.xml 형식으로 작성 + 전체적인 프로젝트 관리 가능 + 편리한 의존성 관리 및 다운로드 가능 + 표준화된 빌드 스크립트 + Lib가 존재

[영통 쥬디 헤어 룸] 아이비리그컷부터 리프컷까지 기르는 과정 (주혁쌤) [내부링크]

[영통 쥬디 헤어 룸] 아이비리그컷부터 리프컷까지 기르는 과정 (주혁쌤) 최근에 제 머리를 항상 해주시는 주혁쌤이 가게를 오픈 하셨습니다. 항상 갈 때마다 만족하고, 친구들도 너무나도 만족하는 곳입니다. 두상에 맞게 머리를 정말 잘 해주십니다! '영통 쥬디 헤어 룸' 입니다. 쥬디 헤어 룸 경기도 수원시 영통구 매영로345번길 95 동아프라자 1층 쥬디헤어룸 사진을 잘 못 찍었는데, 내부 또한 굉장히 쾌적하고 좋습니다. 주차장도 넓어서 마음 편하게 주차 했습니다. 주차를하고, 밖으로 나오면 칸지고고 맞은편에 쥬디헤어가 있습니다. 오늘은 작년 8월에 아이비리그컷을 하고나서 기르기까지 어떻게 길렀는지 올려보려고 합니다. 머리는 전부 주혁쌤이 해주셨습니다. 작년 8 ~ 9월 왼쪽 사진은 주혁쌤에게 아이비리그컷 시술을 받고나서 얼마 안 됐을 때이고, 아이비리그 스타일도하고, 포마드도 하고 이것저것 했을 때입니다. 원래 머리가 강직모에 엄청 뜨는데, 옆이랑 뒷 머리 상고를 두상에 맞게 잘

[파이썬] 파이썬 중간고사 후기 및 풀이 [내부링크]

파이썬 중간고사 후기 및 풀이 총 10문제입니다. 1학년 과목인데, 신입생 기준으로는 난해할 수 있었던 문제 같습니다. 문제에서 교수님의 의도가 정확히 뭔진 모르겠지만, 일단 풀어봤습니다. 신입생 기준이라면, 조금 난해할 수도 있었을 것 같아요. 주변 얘기를 들어보면, 9번 10번에서 학점이 결정될 것 같고, 다른 사람들은 5번에서 실수를 많이한 것 같습니다. 5번 문제 해설 => 튜플은 값 변경이 안 되므로, 리스트로 바꾼 후에 값을 변경하고, 다시 튜플 타입으로 바꿔줘야한다. ==> 리스트에서 튜플로 바꾸지 않았으면, 틀린 답이 됩니다. 9번 문제 해설 => 교수님의 의도가 뭔지는 모르겠습니다. www.daum.net 이라면 daum이 출력되고, www.naver.com 이라면 naver가 출력되어야 조금 더 변별력 있었을텐데 딸랑 저렇게 줘서 슬라이스로 풀 수도 있었고, split(".") 을 이용해서 풀 수도 있는 문제입니다. 10번 문제 해설 => 랜덤 넘버를 반복문이 실행

[명지대 파이썬 멘토링 #2] if, for 문 [내부링크]

목차 - 복습 - if 문법 - for 문법 - 과제 Input 복습하기 먼저 복습겸 지난 시간에 배운 input()에 대한 추가적인 설명입니다. 앞으로 알고리즘 문제 풀거나, 학교 시험에 자주 나오니 꼭 알고 계셔야합니다. # 기존에 입력 받던 방식 A = input() B, C = input().split() print(int(A)) # 정수형으로 바꿔서 출력 # 한 수 정수형으로 입력 받기 c = int(input()) # 여러 수 한 번에 정수형으로 입력 받기 a, b = map(int, input().split()) # list로 여러 수 입력 받기 list = list(map(int, input().split())) if (조건문) if문은 컴퓨터에게 주어진 조건을 판단하고 상황에 맞게 처리하게 끔 명령을 내리는 문법입니다. 쉽게 예시를 들면 다음과 같습니다. # if문 예시 a = int(input()) if(a == 1): print("a == 1 입니다.") elif

[Java] 프로그래머스 - 체육복 (그리디 문제 Set과 배열로 풀어보기) [내부링크]

[Java] 프로그래머스 - 체육복 (그리디 문제 Set과 배열로 풀어보기) https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 ... programmers.co.kr 프로그래머스 그리디 유형 1단계 문제입니다. 학생수 n이 주어지고, 체육복을 잃어버린 학생의 번호가 담긴 배열 l

[Junit5] 스프링 테스트 코드 개념 및 JUnit5 테스트 코드 작성법 조금 더 살펴보기 [내부링크]

[Junit5] 스프링 테스트 코드 개념 및 JUnit5 테스트 코드 작성법 조금 더 살펴보기 https://blog.naver.com/sosow0212/222677120375 [스프링부트] JUnit5 이용한 테스트 코드 작성 방법 및 설명 [스프링부트] JUnit5 이용한 테스트 코드 작성 방법 및 설명 보통 스프링을 처음 공부하면, 테스트 코드 ... blog.naver.com 위에 게시글에 이은 테스트 코드 개념 및 작성 방법입니다. 테스트 코드 알아보기 스프링 백엔드 개발자는 현업에 갈 수록 테스트 코드가 더욱 중요해집니다. 코드의 퀄리티는 결국 돈인데 (효율적인 코드 -> 서버비용 절감) 퀄리티가 높아지려면, 테스트 코드를 잘 작성하여 테스트를 하고, 리팩토링 하는 과정을 거쳐야합니다. TDD (Test-Driven Development) 란? 테스트 코드를 먼저 만들고, 실제 프로덕션 코드를 나중에 만드는 개발 방법입니다. 기존 개발 프로세스가 '설계 - 개발 - 테스트

[Java] 백준 1990 - 소수인팰린드롬 풀이 (수학 구현 문제) [내부링크]

[Java] 백준 1990 - 소수인팰린드롬 풀이 (수학 구현 문제) 골드5 난이도의 수학 구현 문제입니다. 백준에서 소수 판별 문제랑 팰린드롬수 문제를 많이 풀어봤다면 익숙한 문제입니다. 익숙한만큼 금방 풀고, 테스트 해보고 잘 출력 돼서 제출 하니 시간 초과 오류가 계속 떴습니다. 분명 맞게 풀었는데 시간 초과가 뜬 이유를 생각해보니 b가 최대 10^8까지인 큰 수라서 원래 구현하던 방식으로는 시간 초과가 뜰 수 밖에 없었습니다. 기존코드 ( 시간초과 코드) import java.util.Scanner; public class Main { public static boolean isPrime(int num) { if (num <= 1) return false; for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) return false; } return true; } public static boolean isPal(int

[Java] 백준 1747 - 소수&팰린드롬 [내부링크]

https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 1747번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 소수&팰린드롬 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 13008 4021 2964 29.507% 문제 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진... www.acmicpc.net 실버1 난이도의 문제입니다. 입력 n이 주어지고, 정답은 n보다 크거나 같은 수 중에서 소수이고, 팰린드롬 수가 정답이 됩니다. 팰린드롬 수는 101 23032 123321 같이 뒤집어도 똑같은 수입니다. 이 문제를 풀기 위해서

[우아한테크세미나] '실시간 음식배달 플랫폼에서 활용한 분산 이벤트 스트리밍' 세미나 후기 [내부링크]

[우아한테크세미나] '실시간 음식배달 플랫폼에서 활용한 분산 이벤트 스트리밍' 후기 이번에 우아한형제들 기술 블로그을 통해 테크 세미나에 참석할 수 있는 좋은 기회를 얻었습니다. 평소에 백엔드 개발을 하면서 늘 궁금했던게 있었습니다. 배민 같이 대규모 주문을 처리해야하는 플랫폼에서 발생하는 대량의 트랜잭션을 어떻게 처리하는지 궁금했습니다. 하나하나 붙잡아서 처리하기에는 비효율적이라서, 특별한 방법이 분명 있을 거라고 생각했습니다. 사실 학부생이고 공부중이라서 대규모 트래픽을 받을 경험이 아직은 특별히 없어서 이런 고민은 하기만 할 뿐, 직접 구현 및 해결 해볼 기회도 없었습니다. 분명 현업에 나가면 트래픽을 기술적으로 처리할 일이 생길텐데, 이번 세미나를 통해 적게나마 이해할 수 있을 것 같습니다. 대규모 트래픽을 받는 IT회사에서는 어떻게 대량의 실시간 트랜잭션 문제를 해결하는지 알 수 있는 정말 좋은 기회라고 생각했습니다. 세미나 후기 세미나의 첫 시작은 배민의 토탈 프로세스는

[JUnit5] 자바 스프링 JUnit5 이용한 테스트 코드 작성 방법 및 설명 [내부링크]

[JUnit5] 자바 스프링 JUnit5 이용한 테스트 코드 작성 방법 및 설명 보통 스프링을 처음 공부하면, 테스트 코드 작성을 안하고 서버를 실행시켜서 포스트맨이나, 웹에서 직접 확인합니다. 테스트 코드를 작성하는게 귀찮기도 하고 낯설기도 하기 때문에, 보통 대부분은 작성하는 방법을 잘 모릅니다. 하지만 테스트 코드를 작성해야만 하는 이유는, 에러없이 잘 작동되는 깔끔한 코드를 얻을 수 있고, 시간을 단축할 수 있게됩니다. 테스트 코드를 작성할 때, 시간이 들긴 합니다. 하지만, 실제 코드를 실행 시키고, 디비 입력하고 서비스 테스트 하면 시간이 더욱 걸리고, 이건 큰 프로젝트일 수록 더욱 그렇게 됩니다. 즉 처음에 시간이 조금 걸리는 테스트 코드를 한 번만 만들어두면, 깔끔한 코드를 가져올 수 있고, Service, Controller 등 여러가지 기능들을 빠르게 테스트할 수 있게됩니다. 또한 개발 초기에 문제를 발견, 리팩토링 및 동작 확인, 기능의 불확실성 감소 등등 여러

[명지대 파이썬 멘토링 #1] 프로그래밍 언어 특징 및 프레임워크, 과제 설명 [내부링크]

[명지대 파이썬 멘토링 #1] 언어별 특징 및 프레임워크, 과제 설명 프로그래밍 언어의 종류에는 여러가지가 있습니다. C, C++, C#, Java, Kotlin Javascript, Go, Python 등등 위에 언어들뿐만 아니라 굉장이 많은 기본 언어가 있습니다. 우리가 기본적으로 이런 프로그래밍 언어를 배우는 이유는 무엇일까요? 아마도 여러가지 목적이 있겠지만, 가장 중요한 것은 서비스(게임, 웹, 알고리즘 등등)를 효율적으로 구현하기 위해서입니다. 웹 백엔드 서버 개발을 예시로 알아보겠습니다. 웹 백엔드 서버 개발을 할 때, 많이 쓰는 언어 3가지가 있습니다. (괄호 안에는 프레임워크) Java(Spring), Javascript(Node.js) Python(Django) 이렇게 위에 세 가지 언어를 백엔드 서버 개발에 많이 사용하는데, 기본 언어 옆에 괄호 안에 적혀있는 것들은 그 언어를 기반으로 만들어진 프레임워크입니다. 프레임워크란 간단하게 말해서 다음과 같습니다. Ja

[스프링부트 + JPA] @JsonIgnoreProperties, cascade 알아보기 [내부링크]

[스프링부트 + JPA] @JsonIgnoreProperties, cascade 알아보기 JPA를 사용하다보면, @JsonIgnoreProperties 와 Cascade 속성을 사용할 일이 생깁니다. 먼저 @JsonIgnoreProperties 는 무엇이고 언제쓰는지 예시부터 보겠습니다. User, Book 클래스가 Entity로 있고 연관관계가 있다고 가정해보겠습니다. User.js package self.study.entity; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.List; @AllArgsConstructor @NoArgsConstructor @Data @Entity pub

[Java] 프로그래머스 - 소수찾기 (브루트포스 재귀 풀이 방법) [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "1... programmers.co.kr 프로그래머스 소수찾기 문제 자바 풀이 문제는 다음과 같습니다. 예를들어 입력이 "17" 이라면 17로 만들 수 있는 수는 1, 7, 17, 71 총 4개이고, 이 중 소수는 7, 17,

[Java] 프로그래머스 - 위장 (해시문제 풀이) [내부링크]

[Java] 프로그래머스 위장, 해시문제 풀이 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은... programmers.co.kr 옷의 모든 조합을 구하는 문제입니다. 2차원 배열로 옷의종류와 옷의이름이 주어지고, 이를 바탕으로 구할 수 있는 모든 옷의 조합 수를 구하는 것입

[Java] 프로그래머스 - 완주하지 못한 선수 (해시 문제 2가지 풀이 : 해시 + 정렬) [내부링크]

[Java] 프로그래머스 - 완주하지 못한 선수 (해시 문제 2가지 풀이 : 해시 + 정렬) https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알... programmers.co.kr 프로그래머스 사이트에서 해시 문제 중 하나입니다. 두 가지의 방법으로 풀 수 있었습니

[자바] 백준 1912 연속합, DP문제 Bottom-Up 방식으로 쉽게 풀어보기 [내부링크]

[자바] 백준 1912 연속합, DP문제 Bottom-Up 방식으로 쉽게 풀어보기 연속된 수를 더하는데, 그 중 가장 큰 값을 출력하는 문제입니다. 여기서 우리가 고려해야 할 건, 연속된 수라고 무조건 2개 이상 고를 필요는 없다는 점과, 음수가 나올 수 있다는 점입니다. 정답 package com.sosow0212.백준; import java.util.Scanner; public class q1912 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; int[] dp = new int[n]; int max = 0; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } dp[0] = arr[0]; max = arr[0]; // 핵심! for (int i = 1; i <

[나이키] 조던1 미드 라이트 스모크 그레이 앤트러사이트 후기 [내부링크]

[조던] 조던1 미드 라이트 스모크 그레이 앤트러사이트 후기 안녕하세요. 22년도 1월에 나이키에서 새로운 조던을 출시 했습니다. 엄청나게 인기가 많은 미드 스모크 그레이 제품과 컬러웨이가 비슷한 그레이 앤트러사이트 제품입니다. 먼저 옆면입니다. 기존 스모크그레이와 조금 다른 점이 있는데, 회색 부분이 조금 더 진하고, 조던 농구공 부분이 흰색으로 됐다는 것과, 스우시 라인에도 흰색 박음질 처리가 되어 있는 걸 확인하실 수 있습니다. 그리고 원래 기본 제공 끈은 흰끈이지만, 위에 사진은 검정 고무끈으로 바꿨습니다. 고무끈은 미드, 하이 제품 신을 때 필수입니다.. 너무 편하게 신고 벗을 수가 있어요. 위에서 봤을 때에도 무.......

[스프링부트] 블로그 프로젝트 #3 - 관리자 페이지 만들어보기 [내부링크]

[스프링부트] 블로그 프로젝트 #3 - 관리자 페이지 만들어보기 Navbar에 로그인한 세션의 등급이 admin이면 nav에 어드민 페이지 탭이 나오게 만들었습니다. 어드민 페이지에는 전체 회원을 관리할 수 있고, 방문 통계를 확인할 수 있게끔 기능을 추가하였습니다. 먼저 전체 회원 관리를 누르면 회원가입된 User 정보들이 쭉 나오게됩니다. 오른쪽 링크를 클릭해보면 위에 사진과 같이 유저의 등급을 수정시킬 수 있고, 선택된 유저가 작성한 글을 모두 확인할 수 있습니다. 방문 통계 페이지는 별 거 없어요 ㅋㅋㅋㅋ 전체 회원수, 조회수를 볼 수 있습니다. 추후에 생각나면 기능을 더 넣어 볼 생각입니다.

[Android] Layout 및 버튼 클릭 이벤트 달기 [내부링크]

[Android] Layout 및 버튼 클릭 이벤트 달기 MainActivity.java activity_main.xml 실행결과 체크박스를 클릭하면, 하단부 버튼이 명령에 맞게 작동한다.

뱅크샐러드 유전자검사 선착순 신청 당첨 후기 (30:1 경쟁률 뚫는 꿀팁) [내부링크]

이번 포스팅은 선착순 신청 당첨 후기입니다. 결과에 대한 후기는 뱅샐에서 결과가 나오면 포스팅 하고, 링크 남기겠습니다. 요즘 되게 핫한 유전자검사를 뱅크샐러드에서 매일 오전 10시 선착순 700명을 대상으로 무료로 제공합니다. 경쟁률은 약 30:1 이고, 당첨된 사람은 뱅샐에서 키트를 제공해주므로 시중에서 약 10~30만원정도 되는 유전자 검사를 무료로 받을 수 있게됩니다. 뱅크샐러드에서 제공하는 유전자 검사는 65가지 검사결과를 제공하고 그 안에는 비만, 수면습관, 알코올 의존성, 탈모 가능성 등등 여러가지 정보가 있습니다. 유전자 검사 기관은 국내 1위, 글로벌 최정상 수준의 분석 규모를 자랑하는 &#x27;마크로젠&#x27; 에.......

[개발일기 #15] 22년 3월의 개발 공부 / 스프링부트 Rest API 뿌시기, 백준 스트릭 130달성 [내부링크]

[개발일기 #14] 22년 3월의 개발 공부 / 스프링부트 Rest API 뿌시기, 백준 스트릭 130달성 2월 중순 이후로도 열심히 커밋! 이제는 커밋이 일상이 되어 버렸습니다. 늘 성실하게 공부하려고 마음 먹고 노력하고 있습니다. 백준 문제를 130일 연속 풀면서 동시에 solved 새싹 7단계 뱃지를 받았습니다. 얏호 당분간은 알고리즘은 잠깐 쉬고, 개발에 조금 더 집중해보려고 합니다. 2월부터 3월달에는 Rest API 개발 공부를 목표로 잡았습니다. Rest API 학습하기에 앞서 프론트엔드도 함께 다뤄봐야지 Rest API 학습에 도움이 된다고 들었기 때문에 스프링부트 + 리액트 조합으로 풀스택 프로젝트를 간단하게 했습니다. 그리고 blog를 만들었는데.......

수능 버킷리스트 [내부링크]

수능 끝나고 할 것들 1. 운전면허 2. 다이어트 3. 2017 개봉영화 보기 4. 노트북사기 AOC (애플), 대학...

수능 일기 D-64 [내부링크]

우리 학교는 혁신 학교여서 수요일은 5교시 마치고 집 간다. 오늘 친구들끼리 원서접수 얘기 하면서, 일찍 ...

수능 일기 D-63 [내부링크]

오늘 학교 점심시간에 친구들이랑 몰래 담 넘고 밥 먹으러갔다. 역시 학교다닐때는 학교 급식 빼고 다 맛있...

수능 일기 D-62 [내부링크]

드디어 오늘 원서접수가 끝났다. 최저 없는 곳 썼는데, 수능 전에 합격해서 마음 편히 수능 보고 싶다ㅠㅠ ...

수능 일기 D-61 [내부링크]

와 주말에 공부 이렇게 안한적은 처음이다. 원서 접수하고나서, 최저 없는 곳에 수능 전에 붙을 것 같다는 ...

수능 일기 D-60 [내부링크]

오늘은 10시에 일어나서 친구랑 라면 먹고 같이 독서실을 갔다. 가서 마닳을 풀고 오답하는데, 국어는 정말...

수능 일기 D-59 [내부링크]

오늘은 그냥 평범하게 공부한 날이다. 문득 생각났는데, 3월 달에 주변 사람들이 늘 해주셨던 말이 있다. ...

수능 일기 D-58 [내부링크]

수능이 얼마 남지 않았다. 우리반 학생 수는 28정도 되는데, 오늘은 12명이 조퇴했다. 예체능 실기 준비하...

이지영 사회문화 4step 리뷰 [내부링크]

안녕하세요. 고 3 수험생 여러분들 이번에 리뷰할 책은 스카이에듀에서 강의 하시는 이지영 선생님의 사회...

이지영 생활과윤리 4step 리뷰 [내부링크]

안녕하세요. 이번에 리뷰할 책은 스카이에듀 이지영 선생님의 생활과윤리 4step 입니다. 이 책은 스카이에...

수능 일기 D-57 [내부링크]

오늘은 동아리 시간이 있는 날이다. 점심먹고 3시 30분 정도까지 동아리 활동을 하는데, 굉장히 재미있다. ...

수능 일기 D-56 [내부링크]

수능이 코 앞이어서 그런지 드디어 미친 것 같다. 독서실에서 갑자기 웃긴게 떠올라서 계속 끅끅 거리면서 ...

수능 일기 D-55 [내부링크]

오늘 아침부터 몸이 너무 쑤시고 힘들었다. 그래서 학교 1교시 끝나고 조퇴를했다. 그리고 병원 갔다가 집...

수능 일기 D-54 [내부링크]

오늘 10시에 일어나서 밥먹고 독서실에 갔다. 이지영 파이널 인강을 듣고, 수학만 주구장창 풀었다. 친하게...

수능 일기 D-53 [내부링크]

오늘 친구들이 가천대 적성을 봤다. 다들 수학이 어렵다고 하는데, 친구들이 시험을 잘 봐서 붙었으면 좋겠...

수능 일기 D-52 [내부링크]

오늘 학교 체육시간에 탁구도 치고, 원바운드도 하고 땀을 엄청 흘렸다. 더럽지만 등짝은 땀으로 폭포가 되...

수능 일기 D-51 [내부링크]

오늘 학교 끝나고 독서실에 갔다. 공부를 조금하고 친구들하고 피시방을 갔다. 너무 웃기고 재밌어서 스트...

수능 일기 D-50 [내부링크]

드디어 수능 50일 남았다. 오늘은 학교 중간고사 날이여서 일찍 끝났다. 학교 끝나고 독서실에 가서 공부를...

수능 일기 D-49 [내부링크]

오늘 여자친구 생일이여서 학교 끝나고 애슐리가서 밥을 먹었다. 그리고 '아이 캔 스피크' 를 봤다. 영화 ...

수능 일기 D-48 [내부링크]

황금 연휴 시작이다. 왜 하필 이때 수험생인걸까ㅠㅠ 오늘 오랜만에 영어 수특을 봤는데, 많이 까먹었다. ...

수능 일기 D-47 [내부링크]

오늘은 평범하게 공부했다. 공부밖에 한게 없어서 쓸 것이 없다ㅋㅋㅋ 요즘 부쩍 추워진 것 같다. 저녁에 ...

수능 일기 D-46 [내부링크]

오늘 아침에 LA갈비를 먹고 독서실에 갔다. 독서실에서 사회문화 인강을 들었는데, 도표 문제는 정말 들...

수능 일기 D-45 [내부링크]

오늘 스파오가서 옷을 샀다. 오랜만에 옷 사러 오니깐 살 것도 너무 많고, 옷이 전부 예뻐 보였다. 그렇게 ...

플러스 알파닷 리뷰 [내부링크]

안녕하세요. 오늘은 플러스 알파닷을 리뷰 할 건데요. 플러스 알파닷은 이찬희 선생님께서 배포하신 것이고...

수능일기 D-44 [내부링크]

수능이 코 앞이다. 수능 100일 남았을때가 어제 같은데, 벌써 시간이 이렇게 흘렀다. 차라리 얼른 수능을 ...

너희들의 기출 문제 리뷰 [내부링크]

안녕하세요. 오늘 리뷰할 책은 '너희들의 기출 문제 미적분1' (너기출) 입니다. 이 책은 인터넷에서 구매 ...

마더텅 비문학 리뷰 [내부링크]

안녕하세요. 이번 리뷰는 수능 국어 비문학 문제집 '수능 기출 문제집 마더텅 독서' 입니다. 주제 별로 지...

수능 일기 D-43 [내부링크]

오늘 독서실에 갔다. 추석이라 그런지 사람이 거의 없었다. 그렇게 공부를 하다가 저녁을 먹으려고 밖에 나...

수능 일기 D-42 [내부링크]

오늘 깜빡하고 스마트폰을 두고 독서실에 갔다. 진짜 스마트폰을 안가져오니 너무 불편했다. 인강도 못 보...

수능 일기 D-41 [내부링크]

연휴가 다 끝나간다. 시간이 점점 빨리 가는 것 같다. 요즘은 수능 끝나지도 않았는데 느낌은 벌써 수능이 ...

수능 일기 D-40 [내부링크]

오늘 공부를 많이 한 것도 아닌데 많이 피곤한 날이다 ㅠㅠ 오늘 같은 날에 맛있는거 먹어야 하는데 수험생...

수능 일기 D-39 [내부링크]

드디어 수능 디데이 앞자리가 3 이다. 고1때부터 언제 수능 볼까 조마조마 했던게 39일밖에 남지 않았다. ...

수능 일기 D-38 [내부링크]

오늘은 연휴 마지막 날이다. 몸살 걸려서 몸도 안좋아서 국어 공부만 하고나서 평소에 하고 싶은 것도 하고...

수능 일기 D-37 [내부링크]

감기 몸살이 아직도 심하다ㅠ 보통 하루 지나면 괜찮아지는데, 요즘은 몸살도 자주 걸리고 오래간다. 하여...

수능 일기 D-36 [내부링크]

와우 오늘 2014 6월 영어 모의고사를 풀었는데 다 맞았다!!사실 쉽게 나와서 다 맞은거지만 요즘 영어 성적...

수능 일기 D-35 [내부링크]

오늘 범죄도시를 봤다. 진짜 느와르 장르 좋아하는데, 개인적인 생각으로 신세계, 베테랑급 이상으로 재밌...

수능 일기 D-34 [내부링크]

오늘 하루종일 너무 피곤해서 학교끝나고 독서실에 안가고 집에 바로갔다. 집에 와서 지금까지 자다 일어났...

수능 일기 D-33 [내부링크]

오늘은 평범하게 공부했다. 내일은 친구들이랑 고기 먹기로 했다ㅋㅋㅋ 수능이 코 앞이니 사소한 것에 행복...

수능 일기 D-32 [내부링크]

날이 부쩍 추워졌다. 나무도 붉어지고 가을이 된 것 같다. 올해 1월에 독서실에서 공부할때 올해 가을이 오...

수능 일기 D-31 [내부링크]

내일은 10월 모의고사를 보는 날이다. 수능 전 마지막 모의고사인데 잘 봤으면 좋겠다. 오늘은 저녁에 여자...

수능 일기 D-30 + 10월 모의고사 [내부링크]

오늘은 드디어 수능 D-30 일인 날이다. 게다가 오늘 10월 모의평가를 봤다. 난이도는 개인적인 생각으로 ...

수능 일기 D-29 [내부링크]

오늘 학교 일찍 끝나고 친구들이랑 피시방에 갔다. ㅋㅋㅋㅋ 가면 안되는걸 알면서 가버렸다 피시방 가서 ...

수능 끝나고 읽을 책 [내부링크]

읽고 싶은 책 원래 책을 거의 안 읽지만 주변 사람들이 책 읽기를 엄청 추천 해주시고 생각보다 재밌다고 ...

수능 일기 D-28 [내부링크]

얼른 수능 끝나고 컴퓨터랑 인공지능 공부를 하고싶다. 문과에서 그대로 어문계열이나 상경계열 갔으면 좋...

수능 일기 D-27 [내부링크]

오늘 학교에서 체육대회를 했는데 3학년만 수업을 들었다ㅠㅠ 그래도 2시30분에 끝나서 조금 기쁘긴 했다. ...

수능 일기 D-26 [내부링크]

오늘은 평범했다. 점심에 김밥천국 치즈라뽂이에 김밥을 먹고 수학이랑 영어모의고사 풀다가 생윤 공부좀하...

수능 일기 D-25 [내부링크]

얼른 수능이 끝났으면 좋겠다. 요즘은 국어빼고 모든 과목 모의고사만 반복해서 풀고있다. 그런데 모의고사...

수능 일기 D-24 [내부링크]

요즘 영단어가 잘 안외워진다. 연상 암기를 하려해도 잘 안외워진다. 공부 하기도 싫고 대학에 최초합이 아...

수능 일기 D-23 [내부링크]

오늘은 공부하고 집와서 교촌치킨을 먹었다. 역시 힘들때 치킨은 최고인 것 같다.이제 곧 있으면 수능 D-d...

수능 일기 D-22 [내부링크]

체력이 바닥난 것 같다. 부담도 되고 공부가 더이상 안된다ㅠㅠ 초심을 잡을래야 잡을 수가 없다. 수능 전...

수능 일기 D-21 [내부링크]

학교에서 배 위가 너무 아파서 조퇴하고 병원에 갔다. 의사 선생님이 스트레스성 위염이라고 하시고 당분간...

수능 일기 D-20 [내부링크]

오늘 여자친구랑 영화 보러 갔는데 사람이 다 차서 못봤다ㅠㅠ 그래서 수원역에서 그냥 데이트했다. 맛있는...

수능 일기 D-19 [내부링크]

드디어 수능 디데이 앞자리가 1이다. 오늘은 별 것 없이 평범했다. 대학 붙기 전까지 열심히 공부하자!!

수능 일기 D-18 [내부링크]

로스트라는 미드에 꽃혔다.. 수능이 코 앞인데 미드나 보고있다니ㅠㅠ 진짜 다 끝나면 로스트 시즌5 까지 ...

수능 일기 D-17 [내부링크]

이번주 목요일에 명지대 발표가 난다. 공부도 손에 안잡히고 인생 막사는 기분이다ㅠㅠ 개인적으로 나는 수...

수능 일기 D-16 [내부링크]

명지대 합격하자ㅠㅠ 얼른 발표났으면 좋겠다. 일이 손에 안잡힌다.

수능 일기 D-15 [내부링크]

내일 발표난다. 결과보고 마음 추스리고 공부 해야겠다. 꼭 붙었으면 좋겠다ㅠㅠ

명지대 입시 결과 [내부링크]

방금 학생부 교과100 전형 명지대 합격이떴다! 합격 확정이 진짜 너무 기쁘다. 공부에 대한 부담이 줄어서 ...

수능 일기 D-13 [내부링크]

사실 수시 원서 접수한 것 중에 더 높은 대학도 있지만 통학과 인식등을 생각했을때 명지대에 제일 가고 싶...

수능 일기 D-1 [내부링크]

드디어 수능 D-1 이다. 오늘 학교에서 10시에 수험표를 받고 집으로 갔다. 수험표보니 가까운 고등학교에...

수능 일주일 연기 D-8 [내부링크]

지진 때문에 수능 연기...ㅠㅠ

수능 시험장 가는중! [내부링크]

도로에 차가 너무 많다 출근하는 차랑 수험생 차들이 대부분일 것 같다. 떨리지는 않지만 못볼까봐 걱정되...

2018 수능 후기 [내부링크]

어제 2018학년도 수능을 봤다. 여자친구랑 보자마자 놀았다 크크 아침 6시에 일어나서 준비하고 가서 7시 3...

C언어 기본 - 1 / hello world! [내부링크]

오늘 C언어를 맛보기로 잠깐 공부해봤다. 앞으로 C언어 공부는 "윤성우의 열혈 C 프로그래밍" 이라는 책...

C언어 기본 - 2 / printf, 정수출력, 주석 [내부링크]

오늘 C언어를 공부했다. hello world 출력하는 원리랑, 주석 다는 방법, 정수 출력을 배웠다. 옛날에 해본...

이니스프리 유채꿀 립밤 후기 [내부링크]

립밤을 사려고 했는데 친구가 이니스프리 유채꿀 립밤을 완전 추천해줬다 그래서 오늘 사서 써봤는데 보습...

레노버 노트북 개봉기: ideapad 320S-14IKBR i7 GEN8-8세대CPU [내부링크]

안녕하세요 최근에 대학에 합격하고 나서 노트북을 구매 하였습니다 구매 기준은 8세대 i7 cpu + 램을 추가...

수능 끝나고 운전면허 도전기 - 1 [내부링크]

수능 끝나고 운전면허를 꼭 따고 싶었다 그래서 3일전에 친구들이랑 같이 운전면허 학원에 등록을 했다 나...

윈도우10 오류 해결: Net Framework 3.5 설치시 오류 현상 (0x800f091f) 해결하기 [내부링크]

안녕하세요 최근에 노트북을 구매하고 윈도우10을 USB부팅으로 설치했는데요 윈도우10 설치하고 노트북 ...

수능 끝나고 운전면허 도전기 - 2 [내부링크]

어제 기능시험을 보고 통과했다 첫번째 기능시험때 거의 합격한 것인데, 기계 오류로 불합격을 해서 이번에...

수능 끝나고 운전면허 도전기 - 3 [내부링크]

최근에 도로주행 수업을 총 6시간 듣고나서 오늘 도로주행 시험을 봤다. 도로주행 교육을 받을때 정말 차선...

C언어 기본 - 3 / scanf [내부링크]

오늘 C언어 공부를 했다 scanf 도 배우고, 여러가지 연산자와 계산기를 만드는 것도 배웠다 윤성우의 열혈...

비트코인 수익 300프로와 정리 [내부링크]

3일 전에 비트코인과 주식을 시작했다 경험해볼겸 자본금으로 처음에 주식에 10만원, 비트코인에 10만원을 ...

C언어 기본 - 4 / 실수형 연산자 [내부링크]

오늘은 C언어 기본 연산자에 대해 공부를 했다 굉장히 복잡했다 char, short, int, double, float 등등 연...

병무청 신체검사 신청 [내부링크]

약 한달 전쯤 병무청에서 신체검사 신청 안내문이 왔다 그래서 안내문 받자마자 신청하려고 병무청 홈페이...

C언어 기본 - 5 / while, do while, for [내부링크]

오늘은 여러가지 C언어 문법을 배웠다 while, do while, for문을 배웠는데 역시 점점 갈수록 복잡하고 어...

C언어 기본 - 5 / while do while for 응용하기 [내부링크]

어제 배운 C언어 문법 while문과 for문을 오늘 응용해봤다 while문으로 1~9단 구구단표를 만든 것을 for문...

C언어 기본 - 6 / if문 [내부링크]

오늘은 C언어 if문을 배웠다. 인강을 참고하면서 혼자 계산기를 만드는데 자꾸 오류가 떠서 애먹었지만 잘...

C언어 기본 - 6 / if문 응용하기- 자판기 [내부링크]

오늘 C언어로 자판기 프로그램을 만들었다 먼저 음료를 고르고 잔 수를 선택하면 가격이 나오고 돈을 투입...

C언어 기본 - 7 / 재귀함수, 팩토리얼 [내부링크]

며칠 전에 함수 만드는 걸 배웠는데 이해가 잘 안돼서 며칠동안 인강을 다시보고 직접 해보기도 했다 어찌...

비타브리드 스칼프 샴푸 후기 [내부링크]

요즘 지루성두피염이 심해져서 샴푸를 찾다가 아는 분이 비타브리드 스칼프 샴푸를 추천해주셔서 인터넷에 ...

지옥의 상하차 알바 후기 [내부링크]

1월 29일에 친구가 상하차 알바를 같이 하자해서 뭐 별거있겠나 싶어서 알겠다고 했다 바로 다음날 오전 7...

C언어 기본 - 8 / 여러가지 개념과 수강 완료 [내부링크]

사실 한참 전에 C언어 개념 공부를 다 했지만 블로그에 C언어 관련 포스팅을 못했다 그렇다고 C언어를 ...

2018년 1년 목표 [내부링크]

- 요리 배우기 - 다이어트 1학기 - C언어 복습 및 백준 최대한 많이 풀기 - 아두이노 공부 및 제작 계획 ...

캐논 프린트 컬러 안나올 때 해결법 [내부링크]

안녕하세요 오늘은 프린터기 컬러가 이상하게 나올 때 해결법을 알려드릴게요! 참고로 저는 캐논 프린터 G...

아두이노 프로젝트 - 1 [내부링크]

최근에 대학에 입학해서 전공 수업으로 아두이노를 배우고있다 하드웨어에 코딩을 하는게 복잡하긴 하지만 ...

메디컬팩토리 피지제거기 후기 [내부링크]

페이스북에서 요즘 핫한 메디컬팩토리 피지제거기를 보고 이거다..! 싶어서 바로 구매했다 제품 가격은 519...

아두이노 프로젝트 - 2 / 습도 센서 빨래 건조대 [내부링크]

오랜 이론 수업과 작품 회의 끝에 드디어 실습이 시작됐다 오늘 학교 끝나자마자 친구랑 같은 조 형 자취방...

수원 통앤통 어쿠스틱마트 후기 [내부링크]

안녕하세요 오늘은 기타 세팅 및 점검을 받으려고 수원 영통에 있는 기타 수리점 및 판매점인 `통앤통 어쿠...

C언어 do while문 응용- 수 맞추기 게임 [내부링크]

#include &lt;stdio.h&gt; int main(void) {  int answer=59; int guess; int tries =0; do {  printf("수를 ...

C언어 기말 / while,for,함수,배열 응용 코드 [내부링크]

곧 대학 기말고사 시험이라서 시험범위 내에서 공부할 겸 C언어 코드를 작성했어요 범위는 while, for , ...

아두이노 / 강아지 실종 방지 및 심장병 예방 목걸이 [내부링크]

안녕하세요 최근에 전공 아두이노 발표를 했는데 이번 프로젝트 작품은 '강아지용 실종방지 및 심장병 예방...

운전면허 따고 근황 및 운전 꿀팁 [내부링크]

안녕하세요 작년에 수능을 보고 겨울방학 때 바로 운전면허를 땄는데요 오늘은 이 포스팅을 통해서 제 경험...

미쟝센 매트골드 염색 후기 (흑모에서 매트골드) [내부링크]

안녕하세요 오늘 친구와 얘기하다가 오랜만에 염색을 하려고 같이 셀프 염색약을 샀어요 제품명은 '미쟝센 ...

동유럽 여행 일정 [내부링크]

올해 9월 달에 연휴가 짱짱해서 아빠는 아쉽게 못가지만 가족끼리 동유럽 가기로 했다! 일정은 2018.09.23 ...

첫 투표! [내부링크]

안녕하세요 주말에 지방선거 사전투표를 했어요! 20살 되고 처음하는 투푠데 굉장히 신기하고 정말 성인이 ...

다슈 맨즈 아쿠아 딥 워터풀 올인원 로션 사용후기 [내부링크]

안녕하세요! 최근에 로션을 다써서 뭐쓸까 고민하다가 친구가 추천해준 걸 한번 써보기로 해서 다슈에서 나...

C++ 시작 [내부링크]

2학기때 C++ 수업을 들어서 오늘부터 C++ 공부를 시작했어요! 독학인데 책은 윤성우 선생님의 열혈 C++ ...

C++ - 클래스와 enum [내부링크]

// 레이싱게임 - player ID, speed, break, state #include &lt;iostream&gt; using namespace std; //11...

대천 여름 휴가 1 [내부링크]

친구 한 명이 곧 군대를 가서 네명이서 대천으로 여행을 계획했어요! 계획을 짜려고 두달전에 단톡방을 만...

대천 여름 휴가 2 [내부링크]

둘째날은 아침에 일어나니 술 때문에 머리가 너무 아팠어요ㅠㅠ 일어나니 자취하는 친구가 닭볶음탕을 만들...

C++ - 함수 오버로딩, 인라인 함수 [내부링크]

#include &lt;iostream&gt; void func(void) {  std::cout&lt;&lt;"func(void) 호출"&lt;&lt;std::endl; }  v...

C++ 계좌 코드 [내부링크]

// 윤성우 열혈 참조 #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; const in...

C++ - 클래스 이용 사과 장수 [내부링크]

#include &lt;iostream&gt; using namespace std; // std::cout &gt; cout *namespace를 사용하기 때문 cla...

남자향수 &lt;페라리 라이트 에센스&gt; 후기 [내부링크]

안녕하세요 오늘 향수를 리뷰할건데요생긴건 이렇게 생겼어요 굉장히 심플하죠? 받자마자 그 자리에서 뿌려...

비페스타 폼클렌징 무스폼 브라이트닝 후기 [내부링크]

오늘 폼클렌징을 받았어요! 비페스타 폼클렌징 무스폼 브라이트닝 이라는 제품인데 저같이 지성, 여드름성 ...

동유럽 여행 1일차 - 터키, 오스트리아 [내부링크]

터키행 비행기! 승무원분들이 너무 친절하셨다ㅠㅠ 터키 이스탄불에서 먹은 매드 버거 맛있었지만 진짜 가...

동유럽 여행 2일차 - 헝가리 [내부링크]

2일차에는 헝가리로 갔어요! 오스트리아에서 관광버스 타고 바로 헝가리 부다페스트로 출발했어요 250km정...

동유럽 여행 3일차 - 오스트리아 그라츠 [내부링크]

오늘 다시 헝가리에서 오스트리아로 갔어요! 오스트리아를 가기 전에 헝가리 시골 같은 곳을 들렸어요 되게...

동유럽 여행 4일차 - 오스트리아 볼프강, 짤츠부르크 [내부링크]

오늘은 일어나서 바로 오스트리아 볼프강 호수로 갔어요 볼프강 호수에서 크루즈를 탔는데 정말 너무 예쁘...

동유럽 여행 5일차 - 체코 [내부링크]

오늘은 체코에 갔어요! 프라하에 들리기 전에 체스키 크룸로프라는 곳에 들렸어요 이 곳은 국경 근처고 물...

동유럽 여행 6일차 - 프라하, 귀국 [내부링크]

아침에 일어나서 귀국 전 프라하 관광을 했어요! 이건 프라하 재래시장이에요! 되게 예쁘죠?? 귀국ㅠㅠ

동유럽 여행 후 느낀 점들 [내부링크]

동유럽 3국 (오스트리아, 헝가리, 체코) 을 여행 후 느낀 점 1. 화장실 아시아 쪽을 여행 다녔을 때에는 화...

안면도 여행 [내부링크]

친구가 다음주에 군대가서 친구들이랑 안면도로 여행을 갔어요! 안면도 도착하니 6시정도 됐는데 이정도로 ...

에어팟 구매 후기, 정품 등록 방법, 안드로이드 설정 [내부링크]

안녕하세요! 오늘 에어팟 직구한게 도착했어요 구매는 큐텐을 통해서 샀고 16만원 정도에 샀습니다 ㅎㅎ 배...

포항 여행 [내부링크]

안녕하세요 내일 친구 해병대 수료식 볼 겸 오늘 친구들이랑 포항으로 놀러왔어요 장거리라 끔찍했지만...

2019년 1년 목표 [내부링크]

2018년에는 대학에 입학하고 굉장히 바쁘고 많이 놀았던 것 같아요 2018년에 썼던 1년 목표를 봤는데 이룬 ...

마샬 스톡웰 블루투스 스피커 [내부링크]

안녕하세요! 큰 누나가 블루투스 스피커를 샀어요 &#x27;마샬 스톡웰 블루투스 스피커&#x27; 리뷰 고우 먼...

일본 도쿄 3박4일 여행 계획 [내부링크]

도쿄 3박 4일 여행 일정 (2019.1.22.~2019.1.25) --------------------------------------- 챙길 것 *** 여...

C언어 복습1 [내부링크]

방학맞이 C언어 복습 까먹은 거 위주로 입출력 int printf &gt;&gt; %d scanf &gt;&gt; %d float printf &...

C언어 구조체 응용 / 직사각형 넓이와 둘레를 구하는 프로그램 [내부링크]

점 두개를 입력 받아서 만든 사각형의 둘레와 넓이를 절댓값으로 바꿔서 표시해주는 프로그램 구조체 응용 ...

C언어 파일입출력 정리 [내부링크]

저는 작년에 C언어 공부하면서 포인터랑 파일입출력이 가장 어려웠어요 ㅠㅠ 복습할겸 혹시 까먹었을 때 ...

책 [JAVA의 정석] 리뷰 [내부링크]

안녕하세요 저는 대학교 1학년을 마치고 이번에 처음 겨울방학을 보내는데요 겨울방학 동안 2학년 때 전공...

일본 도쿄 3박4일 여행 후기 [내부링크]

일본 여행 계획표 http://m.blog.naver.com/sosow0212/221447581634 안녕하세요 1월 말에 친구 두명 포함해...

[자바] 변수 저장, 입출력, 덧셈연산자, 기본형 [내부링크]

변수의 저장과 출력 핵심 System.out.println(변수이름); // char ch &#x3D; &#x27;A&#x27; ; string na...

[자바] 논리,조건 연산자, 조건문 [내부링크]

자바 논리연산자 예시) 1. x는 10보다 크고, 20보다 작다 x &gt; 10 &amp;&amp; x&lt;20 2. i는 2의 배수 ...

[자바] 배열 응용 [내부링크]

배열 선언 방법 타입[] 변수이름 &#x3D; new 타입[길이] int[] score &#x3D; new int[5]; int[] score &#...

[자바] 객체지향 프로그래밍, 클래스 정의 [내부링크]

절차지향 프로그래밍: 순서대로 컴퓨터가 코드를 읽어간다 객체지향 프로그래밍: 코드 재사용성이 높고, 코...

[자바] 객체지향 프로그래밍2 / 재귀호출 [내부링크]

자바 객체지향 프로그래밍 재귀호출 (recursive call) x의 1제곱 ~ x의 n제곱 까지의 합을 구하는 코드 f(2...

2019년 맞이 겨울방학 이룬 것 [내부링크]

방학동안 c언어 복습 c++ 복습 자바 공부 이렇게 했는데요 자바는 아직도 뭔가 부족한 것 같아요ㅠㅠ 개강...

[C++] 특징, 입출력 기본 [내부링크]

비쥬얼 스튜디오2017 소스파일 생성법 파일 &gt; 새로만들기 &gt; 새 프로젝트 &gt; window 데스크톱 &gt; ...

iptime A2004NS-MU 와이파이 후기 [내부링크]

안녕하세요 오늘 와이파이가 도착했어요! 제품 명은 iptime A2004ns-mu 입니다 기존에 쓰던 삼성 와이파이...

아이폰xs 골드 구매 후기 / 갤럭시에서 아이폰 백업 [내부링크]

갤럭시를 쓰다가 오늘 결국 아이폰으로 바꿨습니다! 대리점에 가서 아이폰xs 색상을 보는데 정말 다 예쁘더...

갤럭시 S10 리뷰 / 갤럭시s10 사전예약, 백업 / 아이폰xs 갤럭시 비교 [내부링크]

안녕하세요! 최근에 제가 아이폰xs로 바꿀 때 아빠도 같이 갤럭시s10을 사전예약을 했는데요 오늘 드디어 ...

안드로이드(갤럭시)에서 아이폰으로 넘어가고 느낀 점 [내부링크]

안녕하세요 최근에 아이폰xs로 바꾸기 전까지는 계속 안드로이드 폰을 썼습니다 그 중에서 갤럭시 시리즈만...

아이폰xs 18w pd usb타입 고속충전기 후기 [내부링크]

안녕하세요 아이폰 기본 충전기는 5w짜리여서 충전속도가 진짜 느립니다 아이폰xs 같은 경우 18w까지 되는...

C언어 주차 요금 정산 코드 [내부링크]

오늘 전공 과제를 하다가 주차 요금 정산하는 프로그램 문제가 나와서 C언어로 코딩을 해봤습니다! 문제: ...

삼성 갤럭시 버즈 후기 / 에어팟 버즈 비교(주관적) [내부링크]

안녕하세요 어제 삼성의 블루투스 이어폰 갤럭시 버즈가 도착했습니다! 갤럭시s10 사전예약 보상으로 16만...

아이폰xs 불량 교환 후기 (수원 ANTZ 아이폰 공식 서비스 센터) [내부링크]

안녕하세요 3주전에 아이폰 XS를 사고 계속 써왔는데요 전화를 하거나, 셀룰러 데이터를 사용하면 20~30...

리엔 흑모비책 흑갈색 염색 후기 [내부링크]

안녕하세요 오늘 셀프염색을 했습니다 리엔 흑모비책 흑갈색 제품을 이용했어요 최근에 파마를 많이해서 머...

에버랜드 튤립축제 후기 [내부링크]

안녕하세요 오늘 에버랜드를 다녀왔어요! 지금 에버랜드가 튤립축제라서 되게 예쁘더라고요 평소에 주말에2...

C언어 배열 값 바꾸기 // rand(), 등차수열, temp, for, if 사용 [내부링크]

이번에 봤던 전공 시험문제가 괜찮아서 블로그에 문제와 해답을 올립니다! 혹시 이해가 안되는게 있으면 댓...

C언어 동적메모리 / malloc, realloc 사용 [내부링크]

동적메모리 할당이란 예를들면 사용자가 한글과컴퓨터라는 프로그램으로 문서를 작성할 때 사람들 각자 개...

C언어 직각좌표 극좌표 변환 프로그램 / 함수, 포인터 [내부링크]

전공 과제를 하다가 극좌표라는 개념을 처음 봤어요! 저처럼 문과에서 공대로 교차지원 하시는 분들은 아마...

C언어 판별식 이용하여 실근, 중근, 허근 구하기 / 함수 [내부링크]

C언어 판별식을 통해 실근, 중근, 허근 구하는 프로그램을 과제하면서 구현해봤어요! 먼저 문제입니다. 실...

C언어 최대공약수와 최소공배수 구하기 / 함수 사용 [내부링크]

오늘 최대공약수와 최소공배수를 구하는 프로그램을 짜봤습니다! 최대공약수를 구하는 방법은 두 수 a,b를 ...

C언어 연도, 월 , 일을 입력하고 요일과 총일수를 구하기 / 함수 [내부링크]

서기 1년 1월 1일부터 a년 b월 c일 까지의 총 며칠이 흘렀는지 구하고 a년 b월 c일의 요일 구하기 이 문제...

삼성 노트북9always 구매후기 / 레노버 노트북과 비교 [내부링크]

안녕하세요 최근에 노트북을 구매했습니다 심성 노트북9always 모델인데요 8세대 i5, 8기가 램, 256기가 ss...

[C언어] 배열의 데이터를 원하는 만큼 설정하고 값을 버블정렬을 이용하여 오름차순으로 정렬하기 / malloc, 함수 [내부링크]

포인터 p를 선언하여 p를 malloc 함수를 이용하여 크기를 사용자가 지정해주고 배열 p에 1~100까지 임의의 ...

C언어 중첩구조체를 이용한 아빠와 나의 나이 차이 구하기 [내부링크]

Person이라는 구조체를 만들고 그 후 Family라는 구조체를 만들었습니다. Family라는 구조체 안에 Pers...

C언어 구조체 변수를 함수로 전달하기 + 구조체 포인터 이용하여 전달하기 [내부링크]

먼저 구조체 변수를 함수로 전달하는 코드입니다! 이 코드는 두 점 사이의 거리를 구하는 간단한 프로그램...

C언어 전치배열 방법과 응용 [내부링크]

안녕하세요 오늘은 C언어 전치배열에 대해 알아 볼 건데요 먼저 전치배열이라는 것을 알기 위해서 배열에 ...

동묘 구제시장 후기 [내부링크]

안녕하세요 월요일날 대학교 동기 형이랑 살면서 처음으로 동묘 구제시장을 갔습니다 엄청 더운날이었어요 ...

[베트남 다낭 4박 6일 여행] 준비물, 일정, 계획표 [내부링크]

안녕하세요 이번주 금요일날 대학 동기들이랑 다낭에 놀러가기로 했습니다! 원래는 부산이나 국내 가려했는...

다낭 여행 1일차 [내부링크]

비행기가 아침 7시여서 친구집에서 자고 4시에 일어나서 바로 공항에 갔습니다! 공항에 도착해서 배고파서 ...

다낭 여행 2일차 [내부링크]

어제는 다낭 2일차였는데 늦잠자서 아침 9시20분에 일어났습니다! 조식이 10시라서 부랴부랴 옷 입고 달려...

다낭 여행 3일차 [내부링크]

어제는 다낭여행 3일차가 되는 날이었습니다 아침에 일어나서 조식을 먹었습니다! 조식 메뉴가 달라졌고 쥬...

다낭 여행 4일차 [내부링크]

어제는 아침에 일어나서 조식 먹으려고 했는데 너무 맛없는 것만 있어서 나가서 먹었습니다! 저희가 오늘 ...

다낭 마지막날 굿바이 다낭! [내부링크]

오늘은 다낭에서 떠나는 날이에요! 12시에 체크아웃을하고 점심 먹으려고 나왔습니다 비가 조금씩 계속 오...

아트뮤 아이폰 고속 충전기 리뷰 [내부링크]

아트뮤에서 c to 8pin 고속 충전기 쓰다가 망가져서 하나 샀습니다 퀄컴 퀵차지 3.0이라 되게 빠르다고 해...

[자바]클래스 메서드(static 메서드)와 인스턴스 메서드 / 오버로딩 / 생성자 [내부링크]

메서드 앞에 static이 붙으면 클래스메서드 없으면 인스턴스 메서드이다 클래스 메서드도 객체 생성하지 않...

[자바] 클래스 상속 [내부링크]

오늘은 자바의 상속 클래스에 대해 알아볼게요 내용 참조는 &#x27;동빈나&#x27; 유튜브를 참조했습니다 클...

내일로 여행 [내부링크]

지난주에 대학교 동기들이랑 내일로를 신청해서 여행을 갔다왔습니다 2박3일 코스는 부산 - 대구 - 집 이렇...

대학교 초등학교 봉사 쏙쏙캠프 후기 [내부링크]

안녕하세요 지난주에 대학교 중앙동아리에서 진행한 초등학교 봉사 캠프에 다녀왔습니다 먼저 봉사동아리 ...

[자바] 추상클래스, Final [내부링크]

추상클래스란? 추상클래스는 직접적으로 객체 인스턴스를 생성하지 못하고 새로운 클래스를 만들 때 설계로...

[자바] 인터페이스, 다형성 [내부링크]

인터페이스란? 추상 클래스와 비슷한 설계 기능이다 다중 상속이 가능하며, 반드시 사전에 정의된 추상 메...

[자바] object 클래스, 객체지향의 활용 - 게임 캐릭터 구현 [내부링크]

object 클래스란? 모든 클래스의 조상이다. 가장 기본적으로 어떠한 클래스가 공통으로 포함하는 기능을 가...

[C언어] 초보자를 위한 쉬운 은행 입출금 프로그램 / if, while문 사용 [내부링크]

초기 금액을 설정하고 예금, 출금 ,잔고확인, 종료하는 프로그램 1. 프로그램을 시작하면 초기 금액을 설정...

아이폰xr 레드컬러 리뷰 [내부링크]

안녕하세요 작은누나가 아이폰xr 레드색상으로 핸드폰을 바꿔서 리뷰해보려고 합니다 핸드폰 후면인데 엄청...

[자바] 컬렉션 프레임웍 / ArrayList, 스택과 큐 [내부링크]

ArrayList란? - ArrayList는 컬렉션 프레임 웍에서 가장 많이 사용되는 컬렉션 클래스이다. - 데이터의...

[자바] TreeSet (트리셋), HashMap과 Hashtable을 이용한 로그인 구현 [내부링크]

TreeSet 이란? - 이진 검색 트리라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. - 이진 ...

[자바] 프로세스와 쓰레드 [내부링크]

프로세스란? - 실행 중인 프로그램이다. - 프로그램을 실행하면 OS로부터 필요한 자원(메모리)을 할당받...

1박2일 강릉 여행기 [내부링크]

지난주에 강릉을 갔습니다! 대학교 선배들이랑 가서 너무 재밌었는데요 차 타고 가서 운전하는데 너무 피곤...

유닉스 세라믹 아이론 고데기 후기 [내부링크]

안녕하세요! 저는 생머리 직모라서 파마나 드라이, 고데기를 안하면 머리가 굉장히 뜨고 쭉쭉 뻗치는데요 ...

1. 리눅스로 코딩하기 / 준비 프로그램 및 사용법 (putty, Xshell) [내부링크]

안녕하세요 오늘 리눅스로 코딩하는 방법에 대해서 가르켜 드리려고 합니다 먼저 윈도우 환경에서 리눅스 ...

2. 리눅스 간단 명령어 및 리눅스로 C 코딩하기 [내부링크]

1편에서 리눅스로 코딩하는 준비과정에 대해 올렸습니다! 이번에는 리눅스로 코딩하기 위해 필요한 간단 명...

아이폰 ios 13.1 바뀐 점과 업데이트 속도 : 빠르게 설치하는법 꿀팁! [내부링크]

안녕하세요 9월 25일부터 아이폰 os인 ios 13.1을 받을 수 있게 되었습니다! 오늘 제가 받으려고 설치를 눌...

모레모 케라틴 헤어 컬러 염색 쿨 블랙 후기 [내부링크]

안녕하세요 최근에 잦은 파마로 머리에 색이 많이 빠졌습니다 그래서 오늘 염색을 했는데요 올리브영에서 ...

자바의 역사 [내부링크]

자바의 역사 및 특징 - 1995년 제임스 고슬링이 개발한 객체 지향 프로그래밍 언어이다. - 자바는 인터넷 ...

C언어 - 선형리스트 이용한 다항식의 곱셈 (데이터구조 알고리즘) [내부링크]

문제: 문제를 정리하자면 이렇습니다 #define MAX_DEGREE &#x3D; 10 typedef struct {  int degre...

C언어 연결리스트 활용 (탐색, 삭제) / 자료구조 [내부링크]

C언어 연결리스트를 써서 5명의 학생들의 성적을 출력하고 최저 평균을 받은 학생의 리스트를 삭제하고 난...

'멈칫 소프트블루솝' 섬유향수 사용 후기 [내부링크]

안녕하세요 최근에 섬유향수를 샀습니다! 원래는 샤넬 알뤼르 옴므 스포츠 향수를 쓰는데 가끔씩 가벼운 향...

C언어 알고리즘 - 스택 (stack) 구현하기 / 배열 이용 [내부링크]

안녕하세요 이번 포스팅에선 데이터구조에서 정말 중요한 개념인 스택을 알려드리려고 합니다 일단 스택(st...

[C언어] 코드업 1676번: 제품 생산량 순위 구하기 문제 해답 (순위 알고리즘) [내부링크]

C언어 코드업 1676번 문제 : 제품 생산량 순위 구하기 문제 각 회사들의 휴대폰 판매량이 집계되었다. 이...

[C언어] 백준 11399: ATM문제 (그리디 문제 - 누적합계, 버블정렬) [내부링크]

그리디문제 - 백준 11399 ATM문제 C언어로 풀기 활용 알고리즘 - 누적합계, 버블정렬 문제 인하은행에...

[C언어] 백준 5585: 거스름돈 (그리디) [내부링크]

문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5...

[C언어] 백준 2839: 설탕 배달 (그리디) [내부링크]

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬...

[C언어] 백준 16435번: 스네이크버드 (그리디문제) [내부링크]

백준 16435 스네이크버드 문제 스네이크버드가 뭔지 생소했지만, 문제를 읽으면 쉽게 이해할 수 있는 쉬운 ...

[C언어] 백준 5545번 최고의피자 (그리디문제 - 내림차순 버블정렬) [내부링크]

C언어 백준 5545 최고의피자 문제입니다. 그리디 알고리즘 문제이고, 버블정렬과, for로 값을 탐색하는 알...

[C언어] 코드업 방속의 거울 (삼성 대학생 프로그래밍 경진대회) [내부링크]

C언어를 이용한 &#x27;방속의 거울&#x27; 이라는 문제를 풀어보았습니다. 이 문제는 삼성에서 대학생 프로...

[C언어] 백준 20115 에너지드링크 (그리디알고리즘, 버블정렬) [내부링크]

[C언어] 백준 20115 에너지드링크 (그리디알고리즘, 버블정렬) 문제 페인은 에너지 드링크를 좋아하는 회...

[C언어] 백준 20117 : 호반우 상인의 이상한 품질 계산법 (그리디 알고리즘) [내부링크]

문제 경북대 특산품 호반우는 품질에 따라 등급이 숫자로 매겨진다. 호반우 상인들은 N개의 호반우를 파려...

[C언어] 백준 2798 블랙잭 (알고리즘) [내부링크]

문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내...

[C언어] 백준 2161번: 카드1 (시뮬레이션) [내부링크]

이 문제는 익숙하지도 않고, 간단해 보이지만 복잡해서 정말 푸는데 너무 오래걸렸습니다ㅠㅠ 처음에 문제...

신년맞이 아이비리그컷 후기 (영통 쥬디 헤어 룸), 해수포마드 리뷰 [내부링크]

안녕하세요 원래 작년 5월부터 머리를 길러서 가르마를 쭉 하고 다녔는데 최근에 숏컷 뽐뿌가 와서 아이비...

2020년 계획 점검과, 2021년 신년 계획 [내부링크]

안녕하세요 2020년 계획짠게 정말 어제 같은데 2020년은 엄청 빨리 지나갔습니다. 이제 23살이 됐네요ㅠㅠ ...

#1 [파이썬 셀레니움으로 이미지 크롤링하기] - 환경 구축 [내부링크]

Visual Studio Code와 크롬을 통해 이미지 크롤링하기 1. 바탕화면에 아무 폴더나 하나 만들고, Visual...

#2 [파이썬 셀레니움으로 이미지 크롤링하기] - 간단 크롤링 및 셀레니움 활용법 [내부링크]

파이썬 셀레니움으로 크롤링 하기 위한 준비는 모두 전 포스팅에서 끝났습니다. 이번에는 간단하게 크롤링 ...

#1 [파이썬 셀레니움 프로젝트] - 인스타그램 로그인 및 좋아요 자동화 (자동 로그인, 해쉬태그 검색) [내부링크]

안녕하세요 파이썬 셀레니움을 이용해서 인스타그램 자동 로그인 및 자동 좋아요 봇을 만드려고 합니다. 일...

#2 [파이썬 셀레니움 프로젝트] - 인스타그램 로그인 및 좋아요 자동화 (최근게시물 조회, 자동 좋아요) [내부링크]

저번 포스팅에서는 파이썬 셀레니움을 이용해서 인스타그램에 들어가고 로그인, 알람제거, 해쉬태그 검색까...

아이패드 7세대 + 애플펜슬 1세대 구매 후기 [내부링크]

안녕하세요 오늘 아이패드 7세대와 애플펜슬 1세대 제품을 구매했습니다! 친한 형이 아이패드를 안 쓴다고 ...

조말론 우드세이지 앤 씨쏠트 바디크림 리뷰 [내부링크]

안녕하세요 조말론 우드세이지 앤 씨쏠트 바디크림을 선물 받았습니다! 조말론은 이렇게 예쁘게 패키징해서...

뉴욕웨이 WPI 유당제로 단백질보충제 프로틴 후기 [내부링크]

안녕하세요 드디어 어제 헬스장이 다시 열어서 운동을 했는데 오랜만에 해서 그런지 몸이 쑤시고 아프네요....

#1 파이썬 문법 총정리 (입출력, 간단 수학) [내부링크]

문법 기억 안날 때 보는 나도코딩님의 파이썬 무료 강의 https://www.youtube.com/watch?v&#x3D;kWiCukl...

#7 파이썬 문법 총정리 (모듈, 패키지, 패키지와 모듈 위치, 패키지 설치 - pip install) [내부링크]

모듈 패키지 : 모듈들의 집합 패키지 모듈 위치 아래 코드 작성은 컴파일러 내에 터미널에 작성하면 됨 ---...

#1 [파이썬 주식 자동매매 프로젝트] - 계획서 (feat. 조코딩) [내부링크]

#1 파이썬 주식 자동매매 프로젝트 계획서 프로젝트 참조 및 활용 소스코드 출처 Youtuber 조코딩, Githu...

#2 [파이썬 주식 자동매매 프로젝트 준비과정] - 크레온HTS 설치, 계좌 개설, 파이썬 설정 [내부링크]

#2 [파이썬 주식 자동매매 프로젝트] - 크레온HTS 설치, 계좌 개설 프로젝트 진행하기 앞서 준비해야할 ...

#3 [파이썬 주식 자동매매 프로젝트 준비과정] - Slack 설정 및 알림 봇 만들기 [내부링크]

#3 [파이썬 주식 자동매매 프로젝트] - Slack 알림 봇 준비하기 이번 포스팅으로 주식 자동매매 프로젝트...

#4 [파이썬 주식 자동매매 프로젝트] - 크레온 API를 이용해 현재가를 불러오고 Slack으로 전달하기 [내부링크]

#4 [파이썬 주식 자동매매 프로젝트] - 파이썬 API를 이용해 현재가를 불러오고 Slack으로 전달하기 저...

#5 [파이썬 주식 자동매매 프로젝트] - 크레온 Plus 자동접속하기 [내부링크]

#5 [파이썬 주식 자동매매 프로젝트] - 크레온 Plus 자동접속하기 이번 포스팅에서는 파이썬을 통해 크레...

#6 [파이썬 주식 자동매매 프로젝트 마지막] - 주식 자동 매매하기 [내부링크]

#6 [파이썬 주식 자동매매 프로젝트 마지막] - 주식 자동 매매하기 이번 포스팅에서는 파이썬으로 하는 주...

헬스 7개월차 비교 사진 [내부링크]

헬스를 시작한지 코로나 기간 제외하고 약 7개월정도 됐습니다! 체지방 감량과 근육 증가를 목표로 열심히 ...

아스트라제네카(AZ) 코로나 백신 후기 [내부링크]

안녕하세요! 오늘 아스트라제네카 코로나 백신을 맞았습니다. 저는 지금 23살이고 사회복무요원(공익) 활동...

파이썬 공부일기 (파이썬 자료구조와 알고리즘) [내부링크]

안녕하세요 요즘 파이썬을 공부하느라 정신이 없습니다! 원래 C, C++, JAVA만 공부하고 이걸로 기업 ...

[파이썬 알고리즘] 선형 리스트 처리 프로그램 [내부링크]

선형리스트 ( &#x3D; 순차리스트) : * 데이터를 일정한 순서로 나열한 자료구조 * 입력한 순서대로 저장하...

양키캔들 미니워머세트 레몬 라벤더 향 후기 [내부링크]

안녕하세요. 제 생일날 양키캔들 미니워머세트 레몬 라벤더 향을 선물 받았습니다. 저는 블랙 색상으로 선...

[파이썬 알고리즘] 단순 연결 리스트 [내부링크]

단순 연결 리스트 - 많은 양의 데이터를 수정할 때 작업량이 과하게 많은 (오버헤드) 선형리스트의 단점을 ...

[파이썬 알고리즘] 스택 [내부링크]

스택이란? 아래 사진으로 보면 이해가 빠름 위에가 뚫린 통이 있다고 했을 때, 통에 데이터 A, B, C를 ...

[파이썬 알고리즘] 큐 [내부링크]

큐란? - 위에 사친 처럼 데이터 삽입의 입구와 데이터 추출의 출구가 따로 있는 자료구조이다. - FIFO ...

[파이썬 알고리즘] 이진 트리 개념 및 순회 [내부링크]

이진 트리란? 위에 사진으로 이해하면 편하다. 트리 자료구조는 나무를 뒤집어 놓은 듯한 형태이다. - 트리...

[파이썬 알고리즘] 이진 탐색 트리 [내부링크]

이진 탐색 트리 (Binary Search Tree) 란? - 이진 트리 중 활용도가 높은 트리이다. - 데이터 크기를 기...

[파이썬 알고리즘] 그래프 구현, DFS, BFS, 인접 행렬, 최소 신장 트리 [내부링크]

그래프란? - 여러 노드가 서로 연결된 자료구조 - 여러 노드가 연결될 수 있음 - 그래프는 정점을 연결하는...

[파이썬 알고리즘] 재귀 호출, 피보나치 수열, 회문 판단하기 [내부링크]

재귀호출(Recursion) - 자기 자신을 다시 호출하는 것이다. 재귀호출 예시 - 10부터 1까지의 합계 - 별 그...

[파이썬 알고리즘] 정렬 - 선택정렬, 삽입정렬, 중앙 값 [내부링크]

정렬(Sort) - 작은 것 &gt; 큰 것 순으로 정렬 된 것은 오름차순 정렬(Ascending Sort) - 큰 것 &gt; 작...

[파이썬 알고리즘] 고급 정렬 - 버블 정렬, 퀵 정렬 [내부링크]

버블 정렬(Bubble Sort) - 첫 번째 값부터 시작해서 바로 앞뒤 데이터를 비교하여 큰 것은 뒤로 보내는 ...

[파이썬 알고리즘] 순차 검색, 이진 검색 [내부링크]

순차 검색 - 순차 검색은 집합에서 찾을 데이터를 처음부터 찾아가야 한다. 위에 코드는 정렬되지 않은 데...

#6 - 헬스 8개월차 후기 [내부링크]

벌써 헬스를 시작한지 8개월이 됐습니다. 물론 중간중간 코로나 때문에 공백기도 있었습니다! 처음에 운동...

[파이썬 알고리즘] 동적 계획법, 브루트 포스, 탐욕 알고리즘 [내부링크]

동적 계획법(Dynamic Programming, DP) - 불필요한 연산을 줄이고, 최적의 답안을 구하는 알고리즘 동...

엘라스틴 염색약 '샴푸하듯 간편 염색 흑갈색' 후기 [내부링크]

안녕하세요. 오늘은 염색약 리뷰를하려고 합니다! 제품명은 &#x27;엘라스틴 샴푸하듯 간편 염색 흑갈색&#x2...

웹 프로그래밍 기본서 'Do it 한권으로 끝내는 웹 기본 교과서 HTML + CSS + 자바스크립트 웹 표준의 정석' 후기 [내부링크]

안녕하세요. 오늘 드디어 주문한 책이 왔습니다. 최근에 파이썬으로 알고리즘과 자료구조 공부를 열심히 하...

[HTML] 편집기(에디터), 기본 개념, 태그, 시맨틱 태그 [내부링크]

HTML 편집기로는 Visual Studio Code가 좋음 &gt; 추후 파이썬을 이용할 수도 있고, 윈도우, 맥 둘...

[HTML] 텍스트 입력, 목록, 표 [내부링크]

1. 텍스트 입력 관련 태그 제목을 나타내는 태그 : &lt;h숫자&gt; ~ &lt;/h숫자&gt; 숫자가 커질수록 텍스...

[HTML] 이미지, 오디오, 비디오 삽입, 하이퍼링크 삽입 [내부링크]

이미지 삽입 이미지를 삽입하는 태그 : &lt;img src&#x3D;&quot;이미지 파일 경로&quot; alt&#x3D;대체용...

[HTML] 폼, input, 폼에서 쓰는 여러가지 태그 [내부링크]

폼 폼을 만드는 태그 : &lt;form 속성&#x3D;&quot;속성값&quot;&gt;여러 폼 요소&lt;/form&gt; 폼의 속성 ...

[CSS] CSS 기본, 스타일 시트, 기본 선택자, 스타일 우선 순위 [내부링크]

HTML은 웹문서의 뼈대를 만드는 역할을 한다면, CSS는 텍스트나 이미지 등 디자인을 담당한다. CS...

[CSS] 글꼴 지정, 텍스트 스타일, CSS 박스 모델, 레이아웃 만들기 [내부링크]

글꼴 지정과 텍스트 스타일 글꼴 지정하는 속성 ex) body {  font-family: &quot;글씨체&quot;, 돋움, 굴림 ...

[CSS] 배경, 연결 선택자, 속성 선택자, 가상 클래스와 가상 요소 [내부링크]

1. 배경 배경색을 지정하는 속성 : ex) background-color: 값; 값에는 #000000, rgb(0,0,0), red 가 들어갈...

[CSS] 웹 요소 변형, 애니메이션 [내부링크]

웹 요소를 이동시키는 함수 : 기본형 ex) transform: translate(x, y, z)(숫자) 위에 변수 자리에는 1~3개...

[자바스크립트] 자바스크립트 기본, 입출력 [내부링크]

HTML은 웹 문서의 내용을 구성하고, CSS는 웹 문서의 레이아웃, 색상, 스타일을 지정한다. 여기에 ...

[자바스크립트] 클릭할 때마다 색상이 바뀌는 텍스트 [내부링크]

클릭할 때마다 &#x27;This Works!&#x27; 문구의 색상이 바뀐다.

[자바스크립트] 실시간 시계 띄우기 [내부링크]

index.html index.css index.js 실행결과

[파이썬] 백준 2798번: 블랙잭 [내부링크]

https://www.acmicpc.net/problem/2798 브루트 포스 문제이고, 3중 for문을 이용해서 sum 값을 최대로 구하...

[파이썬] 백준 2750번: 수 정렬하기 [내부링크]

https://www.acmicpc.net/problem/2750 오름차순 정렬 문제로, 퀵 정렬, 버블정렬 등등으로 정렬하면 된다....

[파이썬] 백준 10815번: 숫자 카드 // set, list를 이용한 풀이 (분류문제) [내부링크]

https://www.acmicpc.net/problem/10815 cardNum을 list로 해줬을 때 자꾸 시간초과 에러가 나서 구글링을...

[파이썬] 백준 수학문제 2869번, 2775번 [내부링크]

백준 2869번: 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 나머지를 이용해서 풀었습니...

[파이썬] 백준 정렬문제 1427번: 소트인사이드, 10814번: 나이순 정렬 [내부링크]

백준 정렬문제 1427번: 소트인사이드 str형을 리스트로 받은 후에 내장함수를 이용해 정렬 &gt; 역순으로 ...

[자바스크립트] 크롬앱 만들기 [내부링크]

[자바스크립트] 사이트에 To do list, 이름, 날씨와 지역정보 만들기 HTML, CSS, Javascript 를 ...

[파이썬] 백준 스택문제 10773: 제로 // 9012: 괄호 [내부링크]

파이썬을 이용한 백준 스택문제 10773번 : 제로 https://www.acmicpc.net/problem/10773 파이썬 백준 9012:...

[파이썬] 백준 2231 분해자 : 수를 str로 하나씩 받기 [내부링크]

https://www.acmicpc.net/problem/2231 n &#x3D; int(input()) num_list &#x3D; list(map(int,str(n))) p...

[파이썬] 백준 이진탐색 1920번: 수찾기, 2110번: 공유기 설치 , 2805번: 나무 자르기 [내부링크]

백준 1920 : 수찾기 https://www.acmicpc.net/problem/1920 백준 2110 : 공유기 설치 https://www.acmicpc....

[프론트엔드] 반응형 헤더 만들기 + 구글 폰트, 아이콘 사이트 [내부링크]

HTML, CSS, JAVASCRIPT를 이용한 프론트엔드 반응형 헤더 웹사이트 만들기 (드림코딩) 1....

[자바스크립트] 간단 게임 만들기 [내부링크]

슬라이드바(range)를 이용해서 숫자 n을 지정해주고 컴퓨터가 0~n 까지의 수 중에 랜덤한 수를 뽑으면 사용...

안면도 1박2일 여행기 [내부링크]

안녕하세요 지난주에 친구들이랑 바람쐴겸 안면도 1박2일 여행을 다녀왔습니다! 늦게 출발해서 날이 흐리더...

[프론트엔드] 오버워치 클론 코딩 [내부링크]

안녕하세요! 오늘 오버워치 캐릭터 픽창 클론 코딩을 했습니다! 32가지 영웅이 있고, 마우스를 올리면 애니...

톰브라운 카드지갑 구매 후기 [내부링크]

안녕하세요! 최근에 카드 지갑이 필요해서 톰브라운에서 구매하였습니다. 처음에는 메종 마르지엘라 카드지...

[자바스크립트] 노마드코더 바닐라JS 2주 챌린지 후기 [내부링크]

안녕하세요! 드디어 노마드코더님의 바닐라JS 챌린지 강의를 다 끝냈습니다! 노마드코더님의 Vanilla J...

[프론트엔드] 스타벅스 사이트 클론 코딩 #1 [내부링크]

[프론트엔드] 스타벅스 사이트 클론 코딩 #1 스타벅스 클론 코딩을 하는데, 정말 CSS 부분이 아직 많이 ...

[프론트엔드] 스타벅스 사이트 클론 코딩 #2 [내부링크]

[프론트엔드] 스타벅스 사이트 클론 코딩#2 어제에 메뉴창에 이어서 오늘은 뱃지 적용과, 메인 배경 적용, ...

[프론트엔드] 스타벅스 사이트 클론 코딩 #3 완성 [내부링크]

이번에 드디어 스타벅스 사이트 클론코딩이 끝났습니다. 유튜브 영상도 넣고, 애니메이션도 넣고 이것저것 ...

[하트노트] 명품 향수 구독서비스 [내부링크]

안녕하세요 :) 혹시 향수 좋아하시나요? 저는 향수를 좋아해서, 정말 이것저것 많이 산 것 같아요. 처음에...

[다슈] 보타닉 리프 퍼퓸 후기 [내부링크]

안녕하세요 ! 오늘 다슈에서 향수를 받았습니다. 제품명은 &#x27;보타닉 리프 퍼퓸&#x27; 입니다. 먼저 &#x...

[시디즈] 시디즈 T80 마블 시리즈 'TN800HLDACC1' 리얼 후기 [내부링크]

목차 서론 제품 사진 후기 가격비교 안녕하세요. 최근에 방 인테리어 하면서 시디즈에서 의...

[휴런스] 노트북 거치대 스탠드 받침대, 맥북 아이패드 거치대 리얼 후기 [내부링크]

안녕하세요. 오늘 휴런스에서 노트북 스탠드를 협찬 받았습니다! 맥북을 사고 책상에서 듀얼모니터를 띄워 ...

[게이너마트 보충제] 코어P웨이, 쏘 스윗한 프로틴 리뷰 후기 [내부링크]

제가 협찬을 받으면서 가장가장 원했던 [게이너마트]코어P웨이 되겠습니다. 단백질 함유량이 정말 많은 프...

[청정육] 술을 부르는 맛있는 돼지고기 목살, 닭가슴살 추천 [내부링크]

[청정육] 너무 맛있는 돼지고기 목살, 닭가슴살 추천 안녕하세요. 이번에 청정육에서 국내산 돼지고기 목살...

[쏘코리아] USB C타입 멀티 맥북허브 후기 [내부링크]

안녕하세요. 오늘 쏘코리아에서 USB C타입 멀티 허브를 받았습니다. 요래 조그만 박스에 담겨져 옵니다...

[메이튼] 너무나도 푹신한 기능성 코일 카매트 후기 [내부링크]

안녕하세요. 최근에 메이튼에서 코일 카매트를 받았습니다. 원래 제 차에 쓰려고 신청하려했으나, 친구가 ...

[Vue] 영화 검색 사이트 만들기 #1 [내부링크]

Vue.js를 이용한 영화 검색 사이트 만들기 #1 위에처럼 Vue.js 를 이용해서 작업했고, 부트스트랩으로 C...

[Vue] 영화 검색 사이트 만들기 #2 [내부링크]

Vue.js를 이용한 영화 검색 사이트 만들기 #2 오늘은 어제에 이어서 사이트 메인 화면에 소개글이 생기고,...

[조던1] 실착 너무 예쁜 조던1 짐레드 미드 (피고래) 리뷰 [내부링크]

안녕하세요. 최근에 에어조던1 짐레드 미드 일명 피고래를 샀습니다. 조던 시리즈를 너무 좋아하는데 스모...

코로나 백신 아스트라제네카 2차 예방접종 후기 및 coov 쿠브 백신여권 인증서 발급 받는 방법 [내부링크]

코로나 백신 아스트라제네카 2차 예방접종 후기 및 coov 인증서 발급 받는 방법 안녕하세요. 최근에 아스트...

[Vue] 영화 검색 사이트 만들기 #3 마지막 [내부링크]

Vue3 영화 검색 사이트 만들기 #3 마지막 Vue3를 이용한 영화 검색 사이트 만들기가 끝났습니다. 정말 며...

[CSS] 애니메이션 효과를 이용한 반응형 메뉴 만들기 [내부링크]

HTML + CSS 애니메이션 효과를 이용한 반응형 메뉴 만들기 결과물 위에 짤처럼 마우스를 올리면 애...

[0623 - 0626] 제주도 일기 [내부링크]

승범 태민이랑 셋이 제주도에 갔다. 다른 친구들은 같이 못 가서 아쉽지만, 셋이서도 너무너무 좋았다 ㅠㅠ...

객체지향 프로그래밍의 4대 특성 [내부링크]

1. 캡슐화 - 객체의 속성을 보호하기위해 사용한다. 직접적으로 명령을 내리는게 아닌 간접적으로 명령을 ...

소프트웨어 객체지향 설계의 5원칙 SOLID [내부링크]

좋은 소프트웨어 설계를 위해서는 결합도는 낮추고 응집도는 높여야한다. 결합도 : 모듈(클래스)간의 상호 ...

[Spring 입문] 디자인 패턴이란? [내부링크]

디자인 패턴이란? - 자주 사용하는 설계 패턴을 정형화하여, 이를 유형별로 가장 최적의 방법으로 개발할 ...

[Spring] 싱글톤 패턴, Singleton pattern [내부링크]

싱글톤 패턴, Singleton Pattern 이란? - 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 사용. - 이를...

[Spring] 어댑터 패턴, Adapter pattern [내부링크]

어댑터 패턴, Adapter pattern - 호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도...

[Spring] 프록시 패턴, Proxy pattern [내부링크]

[Spring] 프록시 패턴, Proxy pattern Proxy pattern이란 : proxy는 대리인이라는 뜻으로, 뭔가를 대신...

[Spring] 데코레이터 패턴, Decorater pattern [내부링크]

[Spring] 데코레이터 패턴, Decorater pattern 데코레이터 패턴이란? 기존 뼈대 (클래스)는 유지하되, 이...

[Spring] Hello world API 만들기 [내부링크]

1. Chrome web store 들어가서 Talend API Tester 다운받기 2. 소스코드 입력 ApiController.java ...

[Spring] Get API [내부링크]

[Spring boot] Get API 먼저 소스코드를 보는게 이해하기 쉽습니다. 저번에 HelloSpring 포스팅을 ...

[Spring] POST API [내부링크]

[Spring boot] POST API 위에 사진에서 실행결과를 보면 Json 형식의 데이터를 보냈을 때 성공적...

[Spring] PUT API / DELETE API / Annotation @ [내부링크]

[Spring] PUT API Annotation @RestController : Rest API 설정, @RequestMapping : 리소...

[풀스택 프로젝트 #1] 동물 분양 사이트 - 프론트엔드 구성하기 [내부링크]

[풀스택 프로젝트 #1] 동물 분양 사이트 - 프론트엔드 구성하기 안녕하세요. 이번 웹 프로젝트는 동물 분양...

[CS-HTTP] URI(URL, URN) / HTTP, HTTP 메시지 [내부링크]

* URI (Uniform Resource Identifier) - URI는 Locator, Name 또는 둘다 추가로 분류될 수 있다...

[리액트 + 스프링부트] #1 리액트 + 스프링부트 연동시키기 [내부링크]

먼저 인텔리제이에서 프로젝트를 만든 후에 프로젝트 터미널에서 cd src/main 을 입력한 후에 npx create-r...

[리액트 + 스프링부트] #2 서버 작동 및 React.js 변수 사용하기 [내부링크]

[리액트 + 스프링부트] #2 React.js 변수 사용하기 리액트와 스프링부트를 함께 쓸 때 서버는 두 개 모두 ...

강릉 2박3일 우정 여행기 (맛집들과 주문진 방어 부시리 속여 파는 거 대처법) [내부링크]

안녕하세요 최근에 대학 친한 친구들이랑 강릉으로 여행을 갔다왔습니다. 먼저 다같이 만나서 강릉으로 출...

[개발일기 #7] 개발의 방향을 틀자 / 개발자 면담 [내부링크]

[개발일기 #7] 개발의 방향을 틀자 올해 들어서 웹 공부를 시작하고, 프론트엔드 쪽은 HTML, CSS, ...

[자바] 백준 2748 : 피보나치 수 2 - DP(동적계획법) 문제를 풀어보자 [내부링크]

백준 2748 : 피보나치 수2 DP (Dynamic Programming) &#x3D;&#x3D; 동적계획법으로 문제 해결하기 * ...

[리액트 + 스프링부트] #3 리액트 useState와 Style 적용하기 [내부링크]

[리액트 + 스프링부트] #3 리액트 useState와 Style 적용하기 먼저 리액트에서 useState를 사용하는 이...

[리액트 + 스프링부트] #4 리액트 useState로 숫자 기록하기 및 리스팅하기 / 게시판의 기본 [내부링크]

[리액트 + 스프링부트] #4 리액트 useState로 숫자 기록하기 및 리스팅하기 / 게시판의 기본 오늘은 useS...

[자바 알고리즘] 이진탐색 Binary Search [내부링크]

[자바 알고리즘] 이진탐색 Binary Search 이진탐색은 이분탐색이라고 하기도 하며 영어로는 Binary Sea...

핏더사이즈 X 슈펜 첼시부츠 분노의 후기 [내부링크]

안녕하세요. 저번부터 계속 올려야지 했다가 까먹고 지금 생각나서 올리게 되네요! 오늘 핏더사이즈와 슈펜...

[자바] 백준 2512 예산 - 이분탐색 자바 풀이 [내부링크]

[자바] 백준 2512 예산 - 이분탐색 자바 풀이 https://www.acmicpc.net/problem/2512 이 문제의 랭크는 Si...

[개발일기 #8] 11월의 개발 공부 (깃허브, 백준 알고리즘, 리액트와 스프링 부트, 프로젝트) [내부링크]

[개발일기 #8] 11월의 개발 공부 (깃허브, 백준 알고리즘, 리액트와 스프링 부트) 10월에는 깃허브 1일 1커...

[자바 알고리즘] 문자열 숫자로 바꾸기 / String형을 int형으로 바꾸기 / charAt() [내부링크]

[자바 알고리즘] 문자열 숫자로 바꾸기 / String형을 int형으로 바꾸기 / charAt() 자바 알고리즘을 풀다...

[Github] 깃허브 레포지토리 사용 기술 바꾸는 방법 [내부링크]

[Github] 깃허브 Repository 사용 기술 바꾸는 방법 오늘 자바 스프링 프로젝트를 올렸는데, 깃허브에 보...

[자바 스프링부트 게시판 프로젝트 #1] 게시판 만들기 - 프로젝트용 / 초안 완성 [내부링크]

[자바 스프링 게시판 프로젝트 #1] 게시판 만들기 - 프로젝트용 / 초안 완성 지금까지 스프링부트를 이용해...

[JPA] ORM, JPA, Hibernate, Spring Data Jpa 란 무엇인가 [내부링크]

[자바] JPA란 무엇인가 JPA를 알기 앞서서 먼저 ORM 부터 알아야한다. ORM (Object Relation...

블랙탄 포메라니안 달수 성장기 ( ~생후 약 5개월) / 강아지 두 마리 같이 키우기 [내부링크]

안녕하세요. 달수를 21년도 9월 25일에 분양 받았습니다. 당시에 생후 약 2개월이 됐다고 했습니다. 블랙탄...

[리액트 + 스프링부트] #5 리액트 함수 분리하기 [내부링크]

오늘은 4편에서 리액트로 만든 숫자 리스팅을 함수로 분리할겁니다! 이렇게 컴포넌트로 나눠서 개발을 하면...

[자바 스프링부트 게시판 프로젝트 #2] 게시판 만들기 - 프로젝트용 / 작성자 추가 [내부링크]

[자바 스프링부트 게시판 프로젝트 #2] 게시판 만들기 - 프로젝트용 / 작성자 추가 오늘은 기존 게시판에서...

[다이어트] 피티 2개월차(16회) 후기 [내부링크]

[다이어트] 피티 2개월차(16회) 후기 피티를 시작한지 약 2개월이 지났습니다. 사실 1개월차 때 자세는 많...

[자바 스프링부트 회원관리 앱 프로젝트 #1] 프로젝트 계획 및 CRUD 기능 완성 - 프로토타입 [내부링크]

[자바 스프링부트 회원관리 앱 프로젝트 #1] 프로젝트 계획 및 CRUD 기능 완성 - 프로토타입 스프링...

[자바] 날짜 구하기 & 포맷 설정 & String변환 및 날짜 더하기 [내부링크]

[자바] 날짜 구하기 &amp; 포맷 설정 및 날짜 더하기 오늘 스프링부트 프로젝트를 하다가 날짜를 더해서 새...

[자바 스프링부트 회원관리 앱 프로젝트 #2] 신청일자 및 마감일자 계산하기 [내부링크]

[자바 스프링부트 회원관리 앱 프로젝트 #2] 신청일자 및 마감일자 계산하기 이번에는 신청일자와 잔여일수...

[자바 스프링부트 회원관리 앱 프로젝트 #3] 프론트엔드 작업하기 [내부링크]

[자바 스프링부트 회원관리 앱 프로젝트 #3] 프론트엔드 작업하기 오늘은 간단한 버그를 픽스하고 프론트엔...

[자바 스프링부트 회원관리 앱 프로젝트 #4] DB 데이터 추가와, 잔여일수 계산하기 [내부링크]

[자바 스프링부트 회원관리 앱 프로젝트 #4] DB 데이터 추가와, 잔여일수 계산하기 안녕하세요. 어제는 ...

아이폰13 핑크 후기 [내부링크]

아이폰13 핑크 후기 아이폰13 프로, 미니에 이어 일반 모델인 아이폰13을 리뷰해보도록 하겠습니다. 먼저 ...

[스프링부트] 로그인 상태 유지하기 및 로그아웃 - 쿠키 사용 [내부링크]

[스프링 부트] 로그인 상태 유지하기 - 쿠키 사용 스프링에서 로그인 기능을 만들고나서 사용자가 회원가입...

나이키 덩크 하이 레트로 블랙 앤 화이트(범고래 하이) 후기 [내부링크]

[나이키]나이키 덩크 하이 레트로 블랙 앤 화이트(범고래 하이) 후기 안녕하세요 오늘 리뷰할 제품은 나이...

너무 좋아서 세 번 구입한 향수, 조말론 블랙베리 앤 베이 코롱 후기 [내부링크]

안녕하세요. 어느 순간부터 향수에 빠져서 한동안 엄청나게 구매하였습니다. 되게 여러 노드의 향수를 맡아...

시트러스 향과 잔향이 너무 좋은 향수, 샤넬 알뤼르 옴므 스포츠 오 드 뚜왈렛 [내부링크]

안녕하세요. 이번 포스팅에서는 &#x27;샤넬 알뤼르 옴므 스포츠 오드 뚜왈렛&#x27; 향수를 리뷰하려고 합니...

[자바 스프링부트 회원관리 앱 프로젝트 #5] 등록 폼 수정과 회원등급 별 지불금액 할인 적용하기 [내부링크]

[자바 스프링부트 회원관리 앱 프로젝트 #5] 등록 폼 수정과 회원등급 별 지불금액 할인 적용하기 오늘은 ...

스톤아일랜드 21fw 올드이펙트 오버셔츠 다크그레이(차콜) 색상 2XL 사이즈 리뷰 [내부링크]

안녕하세요. 최근에 스톤아일랜드 올드이펙트 오버셔츠를 구매하였습니다. 올드이펙트 오버셔츠는 매 시즌 ...

[개발일기] 풀사이클 개발의 중요성과 전문성을 가진 개발자의 덕목 [내부링크]

[개발일기] 풀사이클 개발의 중요성과 전문성을 가진 개발자의 덕목 오늘 구글링으로 이것저것 정보를 알아...

[자바 스프링부트 회원관리 앱 프로젝트 #6] 전체회원 기간 연장 및 잔여일수 0일 남았을 때 명단에서 회원 삭제하기 [내부링크]

[자바 스프링부트 회원관리 앱 프로젝트 #6] 전체회원 기간 연장 및 잔여일수 0일 남았을 때 명단에서 회원...

[Spring Security] #1 스프링부트 회원가입 및 로그인하기 - SecurityConfig 생성 / CSFR 토큰 해제하기 [내부링크]

[Spring Security] #1 스프링부트 회원가입 및 로그인하기 - SecurityConfig 생성 / CSFR 토큰 해...

화이자 부스트샷 후기 및 coov 쿠브 인증서 확인 [내부링크]

21년도 3월에 아스트라제네카 1차 접종을 시작으로 1,2 차를 전부 아스트라제네카를 5월까지 다 맞고 올해 ...

[Spring Security] #2 스프링부트 회원가입 및 로그인하기 - 회원가입 완료 / 비밀번호 암호화 BCryptPasswordEncoder 사용 및 중복 이름 방지하기 [내부링크]

[Spring Security] #2 스프링부트 회원가입 및 로그인하기 - 회원가입 완료 / 비밀번호 암호화 BCrypt...

[Spring Security] #3 스프링부트 회원가입 및 로그인하기 - 유효성 검사하기, 글로벌 예외처리 하는 Custom Validation 적용하기 [내부링크]

[Spring Security] #3 스프링부트 회원가입 및 로그인하기 - 유효성 검사하기, 글로벌 예외처리 하는 Cu...

[Spring Security] #4 스프링부트 회원가입 및 로그인하기 - 공통 응답 DTO, Script 만들기 [내부링크]

오늘은 위에 경고창을 띄우기 위해서 공통응답 Dto, 공통응답 Script를 만들었습니다. 먼저 프로젝트 구...

[Spring Security] #5 스프링부트 회원가입 및 로그인하기 - 로그인 처리하기 (UserDetailsService 이해하기) [내부링크]

[Spring Security] #5 스프링부트 회원가입 및 로그인하기 - 로그인 처리하기 (UserDetailsService 이...

[Spring Security] #6 스프링부트 회원가입 및 로그인하기 - View 연결하기, 로그인 세션 정보 확인, Security taglibs [내부링크]

[Spring Security] #6 스프링부트 회원가입 및 로그인하기 - View 연결하기, 세션 정보 확인하기 지난 ...

[스프링부트] 회원가입 및 로그인 기능을 만들어보자 (스프링 시큐리티 - Github 링크 추가) [내부링크]

[스프링부트] 회원가입 및 로그인 기능을 만들어보자 (스프링 시큐리티) 먼저 프로젝트는 Gradle, JAV...

[명지대 스프링 스터디] #1 팀원 모집 및 프로젝트 계획 [내부링크]

최근에 스프링을 공부하면서, 혼자 하기에는 버거움이 있어서 스터디를 진행하려고 생각했습니다. 스프링부...

[개발일기 #9] 21년 12월의 개발 공부 (스프링, JPA, DB, 스터디, 백준 / 기초 다지기와 협업의 중요성) [내부링크]

[개발일기 #9] 21년 12월의 개발 공부 (스프링, JPA, DB, 스터디, 백준 / 기초 다지기와 협업의 중요...

[개발일기 #10] 교수님 상담 후 느낀점 [내부링크]

[개발일기 #10] 교수님 상담 후 느낀점 최근에 공부를 하다가 잘 하고 있는 건지 의문점도 들고 더 명확한 ...

[명지대 스프링 스터디] #2 초기 프로젝트 설정 (회원가입 및 로그인 프로젝트 다운 및 데이터베이스 설정) [내부링크]

[명지대 스프링 스터디] #2 초기 프로젝트 설정 (회원가입 및 로그인 프로젝트 다운 및 데이터베이스 설정)...

[Spring] @Transactional Annotation 에 대해 알아보자 [내부링크]

[스프링부트] @Transactional Annotation 에 대해 알아보자 자바 스프링에서 JPA 를 이용할 때 Servi...

나이키 덩크로우 트리플 화이트 후기 [내부링크]

안녕하세요. 오늘은 나이키 덩크로우 트리플 화이트를 리뷰해보려고 합니다. 크림에서 구매하면 크림 박스...

[스프링부트 프로젝트] 인스타그램 백엔드 클론코딩 #1 중간 단계 점검 [내부링크]

[스프링부트 프로젝트] 인스타그램 클론코딩 #1 중간 단계 점검 프로젝트 정보 Maven + Java11 Lombok ...

[Effective Java] 이펙티브 자바 공부 시작 - 21.12.20 [내부링크]

[Effective Java] 이펙티브 자바 공부 시작 - 21.12.20 스프링을 공부하면서 자바에 대해 더 깊게 공부하...

[Effective Java] #1 - 객체 생성과 파괴(1) [내부링크]

[Effective Java] #1 - 객체 생성과 파괴(1) 1. 생성자 대신 정적 팩터리 메서드를 고려하라 - 생성자와 ...

[다이어트] 피티 끝남과 동시의 앞으로의 운동 [내부링크]

최근에 PT를 다 끝냈습니다. 약골 헬린이를, 일반 헬린이로 만들어주신 우리 흥덕지구 더블케이짐 김호연...

[개발일기 #11] 자바 스프링 설계 원칙과 알고리즘의 중요성 [내부링크]

[개발일기] 자바 스프링 설계 원칙과 알고리즘의 중요성 스프링을 공부하면서 알고리즘이 중요하다고 느낀 ...

[명지대 스프링 스터디] #3 첫 스터디 시작 - CRUD 게시판부터 시작하기 및 기본 설명 [내부링크]

[명지대 스프링 스터디] #3 첫 스터디 시작 - CRUD 게시판부터 시작하기 오늘 스터디 1회차를 진행했습...

2021년 점검과, 2022년 신년 목표 [내부링크]

2021년 계획 점검과, 2022년 신년 목표 2021년은 정말 가장 빨리 지나간 것 같습니다. 작년에도 빨리 지나...

[중간점검] 성장을 위한 22년도 백엔드 세부 목표, 프로젝트 정리 및 스스로에 대한 피드백 [내부링크]

[중간점검] 성장을 위한 22년도 백엔드 세부 목표, 프로젝트 정리 및 스스로에 대한 피드백 성장과 취업 오...

[스프링부트 프로젝트] 인스타그램 백엔드 클론코딩 #2 [내부링크]

[스프링부트 프로젝트] 인스타그램 백엔드 클론코딩 #2 1. 로그인 진행 2. 유저 프로필 렌더링 및 게시글 ...

[명지대 스프링 스터디] #3 스터디 2회차 - CRUD 멤버관리 서비스 만들기 [내부링크]

[명지대 스프링 스터디] #3 스터디 2회차 - CRUD 멤버관리 서비스 만들기 월요일날 명지대 스터디 2회...

[명지대 스프링 스터디] #4 스터디 3회차 - CRUD 멤버관리 서비스 중간점검 피드백 / Spring security를 기존 프로젝트에 도입하기 [내부링크]

[명지대 스프링 스터디] #4 스터디 3회차 - CRUD 멤버관리 서비스 피드백 / Spring security를 기존 ...

남자 세 명이서 떠난 1박2일 브로맨스 전주 여행기 [내부링크]

안녕하세요. 이번주에 대학 친구들과 전주 여행을 갔습니다. 저희는 2~3달에 한 번씩 여행을 다니는데, 저...

[명지대 스프링 스터디] #5 스터디 4회차 - 회원관리 서비스 피드백과, 쇼핑몰 만들기 설계 - 1 [내부링크]

[명지대 스프링 스터디] #5 스터디 4회차 - 회원관리 서비스 피드백과, 쇼핑몰 만들기 설계 - 1 월요일에는...

[개발일기 #10] 22년 1월의 개발 공부 / 기존 프로젝트 보수 [내부링크]

[개발일기 #10] 22년 1월의 개발 공부 / 기존 프로젝트 보수 2022년을 맞이하고 첫 번째 개발일기입니다. ...

[Android] 중간고사 준비 - 문법 간단 정리 [내부링크]

[Android] 중간고사 준비 - 문법 간단 정리 EditText : 값 입력 받기 --&gt; 숫자를 입력 받고 싶다면 ...

[Andorid] 예약 시스템 만들기 [내부링크]

[Andorid] 예약 시스템 만들기 AnalogClock &#x3D; 옛날 시계 DigitalClock &#x3D; 디지털 시계 (핸...

[스프링부트] 스프링부트 API 개발 및 Ajax 통신 해보기 (Html 데이터 전송말고 Json 데이터 전송의 중요성) [내부링크]

안녕하세요. 기존에는 스프링부트로 회원가입을 진행할 때, HTML에서 Form으로 데이터를 전송을 했습니다. 웹과 앱이 있는데, 웹은 Html 데이터로 보내는 반면에 앱은 Json으로 데이터를 보내기 때문에 서버를 만들 때 두 개로 나눠서 만들었습니다. 이렇게 하면 유지보수가 힘들고 만드는 시간도 두 배로 걸리기 때문에 요즘은 웹도 백엔드 부분에서는 Json으로 보낸다고 합니다. 오늘은 회원가입을 Ajax를 이용해서 Json 으로 보내는 것을 해보려고 합니다. 스프링부트 + Html + Javascript(Ajax) Ajax를 사용하는 이유는 먼저 요청에 대한 응답을 html이 아닌 Data(Json)로 받기 위해서입니다. form 요청은 html로 응답을 받는데 이건 구형 방.......

복학생 일기 : 수강신청 및 첫 수업 듣기 [내부링크]

약 2년동안의 군 복무를 마치고 2월에 바로 복학 신청을 했습니다. 복학 신청을 하고 시간표를 짰는데, 바보같이 1,2 학년 때 교양을 거의 다 듣고, 채플은 한 번 놓쳐서 이번에는 채플 1개와, 6전공을 들어야 합니다. 과 특성상 통신, IT 등등 여러가지를 배우기 때문에, 개발에 대해 깊게 공부를 하지 못합니다. 약간 이것저것 배우지만 찍먹하는 느낌?? 그래서 다른 과목 들을 필요 없이 어차피 개발자로 취업할 생각이라서 시간표를 짤 때, CS과목과 개발과목 위주로 신청했습니다. 올전공이지만, 좋아하는 과목만 담아서 기대가 됐는데, 문제는 제가 살면서 한 번도 올클 해본 적이 없었습니다. 그래서 수강신청 날까지 달달달 불안에 떨었.......

[스프링부트] 블로그 프로젝트 #1 뼈대 완성, API 통신 + 카카오 로그인 + 썸머노트 + 부트스트랩을 이용한 반응형 UI 구현 [내부링크]

[스프링부트] 블로그 프로젝트 뼈대 완성 - API 통신 + 카카오 로그인 + 썸머노트 + 부트스트랩을 이용한 반응형 UI 구현 개발환경 JAVA11 + Gradle Lombok Spring Web MariaDB Thymeleaf Spring security JPA 최근에 블로그 프로젝트를 진행하면서 API에 대해 공부했습니다. 오늘 뼈대까지 다 완성하고, 추후에 &#x27;글 조회수 + 카테고리&#x27; 기능을 추가할 생각입니다. 서버를 키고 들어가면, 위에 화면 같이 전체 글이 렌더링 됩니다. 게시글 5개마다 페이징 처리를 한 것을 확인하실 수 있습니다. 그리고 Spring Security로 접속 제한을 걸어뒀기 때문에, &#x27;회원가입, 로그인창&#x27; 을 제외한 모든 기능은 로그인을 먼저 해야합니.......

[스프링부트] Json API 통신 방법 및 ResponseDto와 GlobalExceptionHandler로 오류 잡아보기 [내부링크]

[스프링부트] API 통신 및 GlobalExceptionHandler로 오류 잡아보기 스프링부트 강의를 듣고, 공부를 하다보면 보통은 Post 방식으로 데이터를 전송할 때, form 태그를 이용해서 데이터를 컨트롤러에 전송합니다. form 태그로 데이터를 전송하면 application/x-www-form-urlencoded 방식으로 전송됩니다. 하지만, 요즘은 웹, 앱 할 거 없이 데이터는 Json 형식으로 주고받고 합니다. 그 이유는 웹은 원래 x-www-form-urlencoded 방식으로 전송하고, 앱은 Json 형식으로 전송하는등, 방법이 달라서 서버를 두 개를 만들었는데, 돈도 유지보수도 배로 들기 때문에, 요즘은 데이터 전송 표준인 Json 방식으로 데이터 통신할 수 있도록 서버를 만듭니.......

[AWS 배포] 배포, 인프라에 대해서 초간단하게 알아보자 (with 재민) [내부링크]

[스프링부트] 배포, 인프라에 대해서 초간단하게 알아보자 (with 재민) 본인 컴퓨터에서도 배포 할 수 있지만 보안에 문제가 생긴다. 그래서 AWS 서버 컴퓨터를 사서 배포를 한다. AWS서버는 리눅스나 맥이나 이것저것 이런 가상서버를 만들 수 있지만, 보통 리눅스로 서버를 만든다. 서버를 사면 처음에 초기 설정을 해줘야한다. (아무것도 안 깔려있기 때문) 초기 컴퓨터랑 같은 상황이므로 리눅스서버에서는 apt 기반으로 깃, 자바 등등 여러가지를 설치해야한다. 초기 설정은 여러가지를 설치하는데 복잡하므로, 도커의 컨테이너를 만들고 리눅스 서버에서 사용하게 할 수 있다. 다만 도커가 무조건 좋은 것은 아니다. (대규모 서버가 아니면.......

[스프링부트] 블로그 프로젝트 #2 - 카테고리, 조회수 추가 및 Error Exception 처리하기 [내부링크]

[스프링부트] 블로그 프로젝트 #2 - 카테고리, 조회수 추가 및 Error Exception 처리하기 위에 사진과 같이 카테고리 두 개를 추가했고 작성자, 작성일, 조회수를 글 목차에 추가했습니다. 카테고리를 선택해도, Board Id 기준으로 내림차순 정렬을 해서 최신글은 상단, 예전 글은 하단쪽으로 가게끔 구현 했습니다. 카테고리는 위에 사진처럼 글쓰기 할 때, 체크박스로 선택할 수 있고, Board Entity에 값을 전달해주었습니다. 즉 카테고리 탭에 들어가면, category 변수에 담긴 값에 따라 글이 렌더링 됩니다. 그리고 조회수는 게시글을 GetMapping 할 때, DB에서 게시글 정보를 가져오는데, 가져오기 전에 count(조회수) 변수에 +1을 더하게끔.......

[스프링부트] 너무나도 중요한 REST API , JSON 통신 방법 및 ResponseEntity 간단하게 알아보기 [내부링크]

[스프링부트] 너무나도 중요한 REST API , JSON 통신 방법 및 ResponseEntity 간단하게 알아보기 목차 1. REST API란 2. JSON 형식 데이터 맛보기 3. 기존 스프링부트 데이터 응답 방식 4. 최근에 많이 사용하는 방식 및 사용 이유 5. 마무리 1. REST API란 ResponseEntity 로 클라이언트에게 REST API 응답을 보내기 위해서 먼저 REST API가 무엇인지 알아야합니다. https://meetup.toast.com/posts/92 위에 글을 참조하시면, 무엇인지 알 수 있습니다. 2. JSON 형식 데이터 맛보기 최근에는 서버에서 클라이언트에게 응답할 때 JSON 형식으로 주는 것이 보편화 됐습니다. status는 HTTP 상태코드, message는 응답 메시지, data는 우리가 보내고.......

[스프링부트 프로젝트] #1 스터디 모임 관리 프로젝트 계획 및 프론트엔드 제작 [내부링크]

안녕하세요. 스프링부트를 이용해서 스터디 모임 관리 프로젝트를 만들고 싶어서 오늘 바로 제작을 했습니다. 먼저 프로젝트 내용은 다음과 같습니다. 회원가입을 할 때, 팀 이름을 입력합니다. 입력한 팀이 없을 경우 새로 생성하고, 이미 생성된 경우 그 팀으로 소속되게 됩니다. 팀 프로젝트를 하는 경우, 팀원 소개 및 TodoList, 개발 현황, 기술 스택 등등 다양한 자료를 서로 공유할 수 있어서, 개발에 집중할 수 있고, 추후에 공통의 포트폴리오로 낼 수 있다는 장점이 있습니다. 오늘은 DB설계와 프로젝트 기본 설계만 했습니다. DB 설계는 추후에 바뀔 수도 있습니다! 일단 오늘은 프론트엔드단 구현과 로그인 구현을 마쳤습니다.

[스프링부트] 쇼핑몰 프로젝트 결제 모듈 추가 [내부링크]

쇼핑몰 프로젝트를 마무리 했지만, 결제 모듈 추가 기능을 스터디 했던 분 덕분에 알게 돼서 바로 도입을 해봤습니다. &#x27;아임포트&#x27; 에서 제공하는 모듈을 이용했습니다. 잔액 충전 페이지에 가면 위에 사진처럼 렌더링이 되고, 잔액을 선택하고 충전하기를 누르면 됩니다. 이렇게 QR코드가 나오는데, 이걸 핸드폰을 이용해서 결제를 하시면 됩니다. 결제가 완료되면 위와 같이 alert가 뜨게 됩니다. 프론트엔드에 자바스크립트를 통해 컨트롤러로 GetMapping 요청을 보내고, @AuthenticationPrinciapl 어노테이션을 이용해서 현재 로그인 유저의 잔액을 증가하게 합니다.

[스프링부트 프로젝트] #2 스터디 모임 관리 프로젝트 - 서버개발(1) [내부링크]

[스프링부트 프로젝트] #2 스터디 모임 관리 프로젝트 - 서버개발(1) 안녕하세요. 오늘은 스터디 모임 관리 프로젝트 서버개발을 했습니다. 먼저 프로젝트 구조와 데이터베이스 설계부터 보겠습니다. 위에 사진은 프로젝트 구조와, 데이터베이스 구조입니다. 프로젝트 구조는 객체지향의 특성을 살리기 위해서 최대한 많이 나눠서 구현했고, 데이터베이스 설계또한 나눌 수 있는 건 나눴습니다. User &#60;-&#62; Team 설계를 할 때 문제가 조금 있었습니다. User는 추후에 여러 개의 Team에 속할 수 있고, Team은 여러명의 User를 받을 수 있기 때문에 어쩔 수 없이 @ManyToMany 를 써야하는데, 검색결과 실무에서는 @ManyToMany가 오류가 생길 수.......

[스프링부트 프로젝트] #3 스터디 모임 관리 프로젝트 - 서버개발(2) [내부링크]

[스프링부트 프로젝트] #3 스터디 모임 관리 프로젝트 - 서버개발(2) 저번에 이어서 오늘은 게시판을 구현했습니다. 새벽 코딩하려고, 일찍 자고 새벽 1시부터 술술 만드려고 했는데, 뜬금없이 게시판에서 오류가 생겨서 4시간이나 잡고 있었는데 결국 해결을 못했습니다. ㅠㅠ 포기할 건 빨리 포기하는 것도 중요한데, 오기가 생겨서 그러기가 쉽지 않은 것 같네요. 게시판 업로드 및 렌더링 구현 1번 게시물을 클릭하면 위에 사진처럼 모달창이 나옵니다. 모달창에 제목, 내용, 작성자, 작성일자가 표시됩니다. 바닐라js로 구현 했는데, 문제는 1번 게시물에만 모달창 적용이 되고 2번 게시물부터는 모달창이 안 뜹니다. 타임리프로 돌리면서 클.......

[스프링부트 프로젝트] #4 스터디 모임 관리 프로젝트 - 서버개발 마무리 및 다듬기 [내부링크]

[스프링부트 프로젝트] #4 스터디 모임 관리 프로젝트 - 서버개발 마무리 및 다듬기 오늘은 프로젝트의 서버 개발 기본 기능들을 모두 구현했습니다. 뼈대를 전부 구현해서 이제는 살만 붙이면 프로젝트는 끝이납니다! 앞으로 유저 사진 추가 + 게시판 댓글 구현 + 로직 일부 수정 이 세가지가 남았습니다. 본인이 아니면 게시글 수정/삭제가 불가능합니다, To do list는 타임리프를 통해서 상태에 따라 완료 / 삭제 버튼을 보이게 했습니다.

[스프링부트 프로젝트] #5 스터디 모임 관리 프로젝트 - 파일 업로드 및 게시판 댓글 처리 [내부링크]

[스프링부트 프로젝트] #5 스터디 모임 관리 프로젝트 - 파일 업로드 및 게시판 댓글 처리 마무리 이번에 프로젝트를 마무리 시켰습니다. 저번에 이어서, 이번주에는 회원정보수정 기능을 추가하고, 유저 이미지 업로드를 구현했습니다. 이미지 업로드 할 때 스프링에서 파일크기 때문에 업로드가 안 되는 문제점이 있었습니다. application.properties 에서 간단하게 코드를 추가해서 고쳤습니다. 이렇게 소스코드 두 줄을 넣으면 50MB까지 올릴 수 있게됩니다. 그리고 게시판에 댓글을 구현했습니다. 한가지 문제점이 있었는데, 게시판 글을 쓰고 클릭하면, 새로운 페이지에서 렌더링 되는 것이 아니라 모달을 띄워서 렌더링 되게 만들어서 댓.......

[개발일기 #14] 22년 2월의 개발 공부 / 프로젝트 만들기와 공부 방향의 전환 [내부링크]

[개발일기 #11] 22년 2월의 개발 공부 / 프로젝트 만들기와 공부 방향의 전환 이번 달에도 하루도 놓치지 않고 깃허브 커밋과, 백준 알고리즘 문제 풀이를 했습니다. 알고리즘은 사실 요즘 귀찮긴 하고, 지금까지 한게 너무 아쉬워서 128일 스트릭 채워서 뱃지 받으려고 브론즈 문제 풀고 있습니다. 1월달에는 스프링부트로 쇼핑몰과, 모임서비스를 만들었습니다. 프로젝트를 진행하면서 프론트엔드 개발의 중요성을 많이 알게 되었고, 분업의 이유도 알게 되었습니다. 그렇게 현업에서 하는 일과, 이것저것 찾아보고 슬슬 API 개발을 시작해야겠다고 생각했습니다. 지금까지는 컨트롤러에서 요청에 따라 계산하고 View를 리턴해줬는데, 현업에서.......

[스프링부트] Junit5 테스트 - 1 [내부링크]

[스프링부트] Junit5 테스트 통합 테스트: - 프로젝트 전체를 테스트해서 완벽하다. - Repository, Service, Controller ... 모든게 IoC에 올리고 테스트 - 느리다는게 단점이다. 단위 테스트 : - 관련된 것들만 IoC에 올려서 테스트한다. - 빠르다는게 장점이다. - 서버에서 완전히 돈다고 보장을 할 순 없다. (분리했기 때문)

[리액트 + 스프링부트] RestAPI를 이용한 간단한 CRUD 풀스택 개발하기 [내부링크]

[리액트 + 스프링부트] RestAPI를 이용한 풀스택 개발하기 (메타코딩) 먼저 리액트 + 스프링부트 조합을 만드는 방법은 여러가지가 있습니다. 저는 스프링부트 프로젝트를 먼저 인텔리제이에서 만들어주고, VSCode에서 아래 사진과 같이 src 폴더에 리액트 프로젝트를 만들어줬습니다. VSCode에서 백엔드 프로젝트 src 폴더 안으로 들어가서 터미널에 &#x27;npx create-react-app@latest reactfront&#x27; 라고 입력해줬습니다. 지금 &#x27;npx create-react-app 폴더명&#x27; 이렇게 입력하면 버전 오류가 떠서 latest를 붙여줬습니다. 참고로 최신버전 리액트는 Router 사용법이 조금 다르니 게시물을 참조해주세요. 위에 사진처럼 설정해주시.......

13년지기 4명이서 떠난 2박3일 부산 여행기 [내부링크]

13년지기 친구들이랑 최근에 부산여행을 다녀왔습니다. 신도시 이사와서부터 만난 친구들이니 엄청 오래 됐네요 ㅋㅋㅋㅋ 한 친구는 운동을 하는 친구라 기숙사에서 나오지도 못해서 대학 다닐 때, 운동하는 친구 빼고 여행을 다녔는데 이번에 졸업해서 다 같이 여행을 떠났습니다. 원래는 제주도 여행을 가려고 했는데, 항공권이 갑자기 너무 비싸져서 포기하고 부산으로 갔습니다 ㅠㅠ 저희는 내일로 3일권을 신청했습니다. 계속 다들 귀찮아서 미루고 미루다가 출발 3일전에 예약했는데, 벌써 KTX는 다 차가지고 ITX 타고 갔습니다. 부산역에서 내려서 첫 끼를 먹으려고 돌아다녔는데, 그냥 멀리 가기도 귀찮아서 대충 부산역 근처에서 밀면을.......

[스프링부트] 쇼핑몰 프로젝트 - 3 / 판매자 통계 및 구매내역 구현하기 [내부링크]

[스프링부트] 쇼핑몰 프로젝트 - 3 / 판매자 통계 및 구매내역 구현하기 오늘은 판매자 통계 페이지 및 구매자 구매내역 페이지를 구현했습니다. 위 두가지를 만들기 위해서 Entity 하나를 더 만들어 줬습니다. 위에 Entity는, 구매자가 구매를 할 때 생성되어 판매자와 구매자, 그리고 아이템 정보들이 Entity에 담기게 됩니다. Service 단에서도 Entity 연관관계를 이용해서 판매자 및 구매자에 대한 정보를 History 객체에 넣어줬습니다. 판매통계 페이지에서는 위에 사진과 같이, 구매자 명과 아이템 정보에 대해 나오게 되고 구매자 페이지에서는 위에 사진과 같이 판매자명과, 아이템 정보다 나옵니다. 이렇게 history Entity를 만들었으니.......

[JPA] @OneToMany 에 대해 알아보기 [내부링크]

[Spring JPA] @OneToMany 에 대해 알아보기 * 일대다 &#x3D;&#x3D; [1:N] - OneToMany에서 One이 연관관계의 주인이다. &#62; 즉 One 쪽에서 외래키를 관리한다. 가장 대표적인 예시인 팀과 멤버로 확인해보겠습니다. Member는 코드상 연관관계 매핑 X, Team 에서는 일대다 단방향 매핑 설정 Team.java Member.java - 실무에서는 이 모델은 권장하지 않음 &#62; 왜냐하면 Team에서는 Member를 가지는데, Member에서는 Team을 참조하지 않아도 되는 설계가 나올 수 있기 때문입니다. - DB 테이블 입장에서 보면, 무조건 일대다에서 다쪽에 외래키가 들어갑니다. - Team에서 members가 바뀌면 DB의 Member 테이블에 업데이트 쿼리가 나간다. &#x3D;&#.......

[의정부 메리골드 주얼리] 의정부역 시민로 금은방, 커플링 맛집 '메리골드 주얼리' 후기 [내부링크]

메리골드 주얼리 경기 의정부시 시민로 123 1층 http://naver.me/53XUfajq &#x27;의정부 메리골드 주얼리&#x27; 경기 의정부시 시민로 123 1층 031-840-7513 주차 가능 [의정부 메리골드 주얼리] 의정부 제품 많은 금은방 &#x27;메리골드 주얼리&#x27; 후기 안녕하세요. 최근에 의정부에 갔다가, 금품 구매할 일이 있어서 시민로에 위치한 &#x27;메리골드 주얼리&#x27; 금은방을 갔습니다. 새로 생긴 금은방입니다. 가게가 되게 예쁘고 깔끔합니다. 기존 의정부 금은방은 40대 이상을 타겟층으로 잡은 곳이 많아서 가게 분위기부터가 좀 올드한 느낌도 있고, 패키징이 너무 마음에 안 들었습니다. 그래도 다른 선택지가 없었기에, 지금까지 가격.......

[개발일기 #12] 탈모를 유발하는 스프링부트 리팩토링 과정 [내부링크]

최근에 스프링부트를 이용해서 쇼핑몰도 만들고, 기존 프로젝트들을 리팩토링하여 더 효율적으로 만들고 있습니다. 최근에 공부한 것중에 th:sec 라는 것이 있는데, 이걸이용해서 세션을 부르기도하고, 권한에 따라 렌더링을 다르게 해주기도 합니다. 기존에 로그인을 하면 메인페이지를 나누는 방법은 다음과 같았습니다. 1. 로그인을 한다 2. Controller에서 권한별로 렌더링을 각각 다 다르게 해준다 (3개의 html 파일이 만들어짐) 위에 방법은 권한이 많아지면 html 파일도 같이 늘어난다는 치명적인 단점이 있어서 다른 방법을 찾다가 th:sec 라는 것을 알게 됐습니다. th:sec을 이용하면 하나의 html 파일만 만들어도 권한별로 볼 수 있게.......

[다슈] '클래식 스타일 그루밍토닉' 리얼 후기 / 사용 방법 및 사용 전 후 차이점 [내부링크]

본 제품은 &#x27;다슈&#x27;로부터 제공 받았습니다. 협찬이라고 편향적으로 작성하지 않고, 제가 느낀점 그대로 제품 후기를 작성했습니다. 안녕하세요. 오늘은 다슈에서 나온 &#x27;클래식 스타일 그루밍토닉&#x27;을 리뷰해보려고 합니다. 저는 평소에 왁스, 포마드, 무스, 스프레이 등등 여러 헤어 제품을 많이 사용합니다. &#x27;그루밍토닉&#x27; 이라는 것에 대해서는 들어본 적은 있지만, 굉장히 생소했습니다. 제품 사용 전, 찾아본 결과 그루밍토닉은 드라이를 할 때 볼륨과 컬을 잘 넣을 수 있는 헤어 프라이머링 효과가 있고, 드라이 열손상 보호와 영양 부여 효과가 있는 제품입니다. 사용 방법은 아래에서도 나오지만 머리를 감고.......

[스프링부트] 쇼핑몰 프로젝트 완성 - 4 / 판매자 통계 마무리 및 오류 해결 [내부링크]

[스프링부트] 쇼핑몰 프로젝트 완성 - 4 / 판매자 통계 마무리 및 오류 해결 쇼핑몰 프로젝트를 최종적으로 끝냈습니다. 구현은 지난주에 끝났지만, 각종 버그를 잡고, 통계 페이지를 추가하면서 이번에 최종적으로 마무리가 되었습니다. 위와 같이 판매량 순위도 history Entity JPA 연관관계를 통해서 성공적으로 구현 했습니다. 아이템 업로드 읽기 수정 삭제 구현 및 판매자 및 구매자 역할 구별, 장바구니, 물품 판매, 물품 구매 기능, 통계페이지까지 모두 만들었습니다. 만들면서 세션 구별등 머리가 아픈 문제들도 있었지만, 구글링과 여러 테스트를 하면서 모두 해결했습니다. 이번 프로젝트를 통해서 배운 것도 많지만 특히나 JPA 연관.......

[개발일기 #13] 스프링부트 크롤링을 이용한 주식 서비스 기획하기 - 1 [내부링크]

최근에 쇼핑몰을 다 만들었습니다. 평소에 평범한 백엔드 개발자로 남고 싶다는 생각보다는, 남들보다 특화된 개발자가 되고 싶다는 생각이 많아서 백엔드 엔지니어링과 빅데이터, 기계학습을 골고루 공부해서 취업하고 싶다는 생각을 했습니다. 그래서 연휴동안 위에 특성을 조금이나마 살려서 뭘 공부하고 뭘 만들까 고민을 해봤습니다. 일단 API 호출이나, 웹 크롤링을 이용한 서비스를 만들까 생각을 했습니다. 그래서 생각한게 주식 관련된 서비스입니다. 일단 기획은 다음과 같습니다. 1. 스프링부트에 Jsoup를 이용하여 네이버 주식 정보를 크롤링해서 데이터 가공을 합니다. 2. 자신의 주식 상황을 웹에 연결하고, 수익률 계산을 합니다.......

[스프링부트] 게시판에서 유저 및 관리자 페이지와 본인이 쓴 게시물을 확인하기 (JPA - @ManyToOne, @OneToMany) [내부링크]

[스프링부트] 게시판에서 유저 및 관리자 페이지와 본인이 쓴 게시물을 확인하기 (JPA - ManyToOne, OneToMany) 안녕하세요. 오늘은 기존에 만든 게시판 프로젝트를 가지고 다음과 같은 기능을 구현해보려고합니다. 1. 로그인을 한 유저가 관리자 등급이면, 관리자 페이지로 가고 일반 등급이면, 유저 페이지로 간다. 2. 유저는 본인이 작성한 글을 본인 프로필에서 따로 확인할 수 있다. 위에 두가지를 구현하려면, 스프링 시큐리티에서 로그인 세션을 이용해야하고, ManyToOne, OneToMany를 이용하여 작성글에 유저번호를 추가해야합니다. 먼저 완성본을 보면 일반 유저가 로그인을 하여 게시판을 들어가면 위와 같은 화면이 뜹니다. (현재 &#.......

[명지대 스프링 스터디] #6 스터디 5회차 - 쇼핑몰 만들기 설계 - 2 [내부링크]

[명지대 스프링 스터디] #6 스터디 5회차 - 쇼핑몰 만들기 설계 - 2 오늘 스터디는 쇼핑몰 만들기 설계 회의만 했습니다. 전체적인 틀은 잡혔고, 가장 중요한 DB 설계를 했는데, 같이 설계를 하다보니 막상 막히는 부분도 많고, 생각해볼 문제들이 훨 많았습니다. 그래도 다들 열심히 잘 참여해주시고, 의견도 잘 내주셔서 다행히도 프로토타입으로 DB설계를 잘 끝냈습니다. https://app.diagrams.net/ 다음주 목요일까지 CRUD 설계 등등 여러가지 뼈대들을 구현해야해서 이번주부터는 빡세게 코딩을 할 것 같습니다! DB와 JPA 공부도 같이 병행하면서 열심히 만들고, 좋은 결과물을 만들고 싶다는 생각이 들었습니다.

[스프링부트] 쇼핑몰 프로젝트 - 1 [내부링크]

[스프링부트] 쇼핑몰 프로젝트 - 1 지금까지 배운 걸 총 정리해서, 스프링부트 쇼핑몰 프로젝트를 진행중입니다. 오늘은 CRUD 설계와, DB 설계와 유저의 권한에 따라 렌더링을 다르게 해줬습니다. 먼저 회원가입을 통해서 구매자와 판매자를 나눕니다. 먼저 판매자부터 봐보겠습니다. 아래 사진은 판매자로 로그인 후 렌더링 되는 페이지입니다. 위에 사진과 같이 판매자 계정으로 들어왔습니다. 좌측 상단에는 upload 탭과 우측 상단에는 판매관리 탭이 있습니다. upload 버튼을 클릭하면 위에 사진과 같이 상품 등록을 할 수 있습니다. 상품을 등록하고 상품을 클릭하면 위에와 같이 상세 페이지가 나옵니다. 아이템 수정과 아이템 삭제 기능 이.......

[스프링] 이용하여 이미지 업로드 및 thymeleaf를 이용하여 이미지 렌더링하기 [내부링크]

[스프링] 이용하여 이미지 업로드 및 thymeleaf를 이용하여 이미지 렌더링하기 먼저 파일을 저장할 디렉토리를 만들어줍니다. 이 포스팅에서는 static 디렉토리 아래에 files 디렉토리를 만들어서 진행했습니다. 1. Entity에 두 개의 변수를 추가해줍니다. ( filename, filepath &#x3D;&#x3D; 파일이름과 경로) 이때 주의할게 있는데, 바로 String 형식으로 만들어주셔야합니다. 왜냐하면, img 파일은 db에 저장하는게 아니라서 이름을 이용해서 파일을 가져오기 때문입니다. 2. 파일을 업로드할 프론트엔드 파일에 가셔서 아래 소스코드처럼 - form에 enctype &#x3D; &#34;multipart/form-data&#34; 속성을 줍니다. - input에 type&#x3D;&quot.......

[명지대 스프링 스터디] #7 스터디 6회차 쇼핑몰 만들고 피드백 / sec:authorize [내부링크]

안녕하세요 지난번 스터디에서 DB Entity 설계를 하고 이번 스터디까지 CRUD 기능을 만들고, 최대한 가능한 부분까지 만들기로 했습니다. 다들 열심히 만드시고 피드백을 하였습니다. 쇼핑몰을 만들 때, 세션정보를 이용해 프론트엔드 파일을 여러 개 만들고 세션에 따라 다르게 렌더링 해줬는데, 한 분은 파일을 하나만 만드시고, 타임리프와 sec:authorize 기능을 이용하셔서 간편하게 하셨더라고요. 추후에 공부를 하고, 리팩토링을 해봐야겠다고 생각했습니다. 역시 스터디를 하면, 몰랐던 걸 알 수 있어서 너무 좋은 것 같아요. 같은 걸 구현하더라도, 내가 아는 방식보다 더 효율적인 방법을 알게 되는게 정말 스터디의 순기능인 것 같습니.......

[스프링부트] 쇼핑몰 프로젝트 - 2 / 장바구니와 결제기능 구현하기 [내부링크]

[스프링부트] 쇼핑몰 프로젝트 - 2 / 장바구니와 결제기능 구현하기 안녕하세요. 지난번에 CRUD 설계와 세션별 렌더링 다르게 하는 걸 구현하였습니다. 지난 설계에 이어, 이번에는 상품 사진 업로드 기능과, 장바구니에 상품 담기 및 결제를 구현했습니다. 구매자가 물품을 장바구니에 담고 구매하는 과정에 대해 먼저 보여드리겠습니다. 구매자 계정으로 로그인 했습니다. 상단에 보시면 &#x27;현재 잔액&#x27;이 보입니다. 참이슬 상품을 들어가서 소주 3병을 장바구니에 담고, 매운 새우깡도 담아보겠습니다. 장바구니를 가면 이렇게 총 결제금액이 나오게 됩니다. 이때 로직을 설계할 때, 상품의 재고보다 많은 양을 장바구니에 넣지 못하게.......

[달봉이네 유기견 보호소] 신년 유기견 봉사를 하고나서 [내부링크]

안녕하세요. 1월 초에 유기견 봉사를 참여할 기회가 생겨서 바로 신청을하고 지난주에 봉사를 다녀왔습니다. 장소는 화성에 위치한 &#x27;달봉이네 유기견 보호소&#x27; 입니다. 정확한 장소를 공개하지 않는 이유는, 장소가 공개되면 사람들이 유기견을 버리고 가기 때문이라고 합니다. 유기견 보호소에 조그만한 강아지들은 실내에서 활동을 합니다. 강아지가 엄청나게 많았습니다. 실외에는, 대형견들도 있는데, 일을 하다가 봐서 사진은 찍지 못했습니다 ㅠㅠ 정말 귀여운 강아지들이 많이 있는데, 여기서 다른 조원들은 강아지 목욕도 시키고 청소도 하고, 고양이 쉼터에 사료도 채워줬습니다. 저희 조는 실외에서 봉사를 했는데, 다 쓴 연.......

[자바] 백준 14502 연구소 BFS 풀이 [내부링크]

[자바] 백준 14502 연구소 BFS 풀이 https://www.acmicpc.net/problem/14502 1. 벽을 3개 세운다 (가능한 모든 경우를 전체 탐색) 2. 바이러스(2)를 퍼뜨린다. (가능한 모든 경우의 수 탐색) 3. 0의 개수를 구한다 ( bfs를 돌려서 바이러스를 퍼뜨리고 안전 지대의 수 반환) 이때 bfs 함수는 반환 값을 0의 개수를 준다. 이 0의 개수를 리턴 받은 recursive 함수는 0의 개수를 Math.max 를 이용해서 리턴 받은 모든 경우의 수에 대한 안전지역(0)의 값을 비교하고 Main 함수로 결과를 리턴해준다. Main 함수에서는 이 리턴 값을 출력하면 끝난다.

[스프링 부트] 메시지와 국제화란? (변수명을 쉽게 관리하기) [내부링크]

[스프링 부트] 메시지와 국제화란? (변수명을 쉽게 관리하기) 메시지란? 프로젝트에서 &#x27;상품명&#x27; 이라는 단어를 모두 &#x27;상품이름&#x27; 으로 바꾸고 싶다면 모든 화면을 찾아가며 변경해야합니다. 이런 번거로움을 줄이기위해서 메시지 기능을 사용합니다. 메시지 기능은 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 말합니다. 즉 화면을 찾아 변수명을 모두 바꿔야하는 번거로움을, 메시지를 한 곳에 모아서 한번만 바꾸면 전체적으로 바뀌는 기능을 &#x27;메시지 기능&#x27;이라고 합니다. 이건 어떻게 사용해야할까요? 먼저 resource 디렉토리 안에 있는 application.properties 파일을 통해 아래 소스를 입력해서 메시지.......

[개발 일기 #6] 백준 알고리즘 골드 등급 [내부링크]

[개발 일기 #6] 백준 알고리즘 골드 등급 안녕하세요. 작년쯤부터 유튜브 강의와 여러 포스팅을 보면서 알고리즘을 공부하고 파이썬으로 백준 알고리즘 시리즈를 풀었습니다. 어쨋거나 쉽든 어려운 문제든 많이 참고를 하며 풀었기에 스스로 풀지는 않아서 전에 풀던 백준 계정의 등급은 의미가 없다고 생각해서 올해 초에 삭제하고 다시 만들었습니다. 그렇게 웹 공부로 몇 달이 지나고 나서 자바 서버 개발자라는 꿈이 생기고 다시 알고리즘 공부를 계획했습니다. 베이스 언어는 자바로 잡고, 자바로 풀기 어려운 건 파이썬을 이용하기로 결심했고 하루 2문제 이상 꾸준히 푸는 것을 목표로 잡았습니다. 아무래도 외부 문서를 참고하며 푸는 건.......

너무나도 바쁜 2021년과 소집해제를 앞둔 공익의 삶 [내부링크]

엄청 오랜만에 쓰는 일기장이다. 우연히 블로그를 확인하다가 그동안 잊혀져있던 일기장 메뉴를 발견했다. 글을 확인하니 2018년 게시글이 마지막이라니 너무나도 시간이 느린 것 같으면서도 빠르다. 2021년은 나에게 있어서 굉장히 의미가 크다. 취업이라는 문제에 대해 진지하게 고민하게 되고, 프로그래밍의 여러분야 중에서 내가 정말로 좋아하는 걸 찾기위해서 노력을 많이했다. 수능 보기 전보다 더 열심히 산 것 같다. 올해는 이렇게 현실적인 취업 문제에 대해 많이 고민을하고 방향을 잡은 걸로 만족이다! 사회복무요원(공익)으로 일을 한지 벌써 500일이 지났다. 하 오늘로 딱 100일 남았다. 휴가나 뭐 이것저것 쓰면 실 근무는 6~70일.......

아이폰13 미니 핑크 후기 [내부링크]

안녕하세요. 오늘은 아이폰13 미니 핑크를 리뷰하겠습니다! 아이폰13 핑크 색상은 새로 나온 컬러로 약간 딸기우유 빛이 나는 예쁜 컬러입니다. 아이폰13 미니 포장 또한 비닐 포장이 안 되어있고, 종이 박스에 사진처럼 개봉씰만 붙어있습니다. 이걸 쭉 당기면 제거가 되고, 박스가 열리게 됩니다. 박스를 열고 핸드폰을 꺼내면 이런 예쁜 핑크 컬러의 아이폰이 반겨줍니다. 대각선 카메라 배치로 처음에는 이상했지만, 볼 수록 예쁜 역시나 늘 그랬듯이 애플의 뇌이징 디자인입니다. 색상은 딱 위에 사진 색상과 같습니다. 화이트 컬러에 핑크우유 색 한방울? 떨어진 느낌이고, 실제로 보면 화이트에 더 가깝습니다. 이게 핑크 컬러이지만, 화.......

[A.P.C] 아페쎄 NHW81H7 구스다운 숏패딩 후기 [내부링크]

안녕하세요! 이번주 토요일에 패딩을 사려고 강남 신세계 백화점에 갔습니다. 아미부터 산드로 스톤아일랜드 등등 여러 브랜드를 들렀는데, 아페쎄 패딩이 가장 예쁘고 퀄리티가 너무 좋아서 구매하게 되었습니다. 구스다운 숏패딩 NHW81H7 제품입니다. 엄청난 크기의 쇼핑백에 담겼습니다! 항상 쇼핑하고 개봉할 때에는 설레는 것 같아요. 진짜 예쁘지 않나요? 색상이 너무 예쁩니다! 옷도 너무 따숩고 가볍고 마감이 너무 좋았습니다. 투웨이 지퍼이고, 지퍼를 잠구고 버튼으로 한번 더 고정할 수 있게 되어있습니다. 주머니는 겉 주머니가 두개있고, 속 주머니가 하나 있는데, 속에 있는 주머니는 얕아서 물건을 넣어도 잘 빠질 것 같아요. 후.......

[스프링 MVC] #5 상품 서비스 웹 페이지 만들기 - 상품 등록 처리하기 [내부링크]

[스프링 MVC] #5 상품 서비스 웹 페이지 만들기 - 상품 등록 처리하기 web/basic/BasicItemController.java 여기에 아래 코드를 추가해준다. (사용 하려면 V1~V4 중 하나만 사용하면 되고 예를들어 V4를 쓴다면 나머지 코드에서 @PostMapping을 다 주석 처리해줘야 오류 없이 사용 가능하다.) 상품 정보를 입력하고 상품 등록을 클릭하면 위와 같이 상품이 추가됨을 확인할 수 있다. 아직은 데이터베이스 연결을 안하고 메모리를 사용하기 때문에, 새로고침하면 데이터셋들이 모두 날아간다. 따라서 추후에 서버를 리프레쉬 해도 데이터를 남기고 싶다면 데이터베이스를 연동하면 된다.

[스프링 MVC] #6 상품 서비스 웹 페이지 만들기 - 상품 수정 [내부링크]

[스프링 MVC] #6 상품 서비스 웹 페이지 만들기 - 상품 수정 web/basic/BasicItemController.java 상품수정 주석 아래 부분 코드를 입력하면된다. @GetMapping은 상품수정 페이지를 여는 것이고, @PostMapping 부분은 상품을 수정하는 부분에 대한 코드이다 templates/basic/editForm.html

[스프링 MVC] #7 상품 서비스 웹 페이지 만들기 마무리 - 상품 오류, PRG - Post/Redirect/Get, RedirectAttribute [내부링크]

[스프링 MVC] #7 상품 서비스 웹 페이지 만들기 마무리 - 상품 오류 / PRG Post/Redirect/Get, RedirectAttribute 지금까지 만든 프로젝트를 확인해보면 아래와 같은 오류가 발생한다. 상품을 등록하고나서 확인하는 페이지에서 새로고침을 하고 계속을 누르면 아래 사진들처럼 계속 아이템이 생성된다. 왜 이런 오류가 발생하는지 알아보자. 웹 브라우저에 새로고침은 내가 마지막에 한 것을 다시 실행하는 것이다. 그렇다면 위에 오류는 새로고침 할 시에 Post 요청을 다시 하게 되는 것이다. 그래서 상품이 계속 저장되는 오류가 발생한다. 이걸 수정하는 방법은 다음과 같다. web/basic/BasicItemController.java 상품등록 코드 부분에 위에.......

[자바] 프로그래머스 해시#1 완주하지 못한 선수 [내부링크]

[프로그래머스] 해시#1 완주하지 못한 선수 - 자바 풀이 프로그래머스 해시 문제 #1 완주하지 못한 선수 자바를 이용해서 풀었습니다. https://programmers.co.kr/learn/courses/30/lessons/42576 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길.......

[자바] 프로그래머스 해시#2 전화번호 목록 [내부링크]

[프로그래머스] 해시#2 전화번호 목록 - 자바 풀이 https://programmers.co.kr/learn/courses/30/lessons/42577 이 문제는 한 번호가 다른 번호의 접두어인지 확인하는 문제입니다. 예를들어 {112, 1125678} 이런 식으로 있으면 첫 번째 요소는 두 번째 요소의 접두어가 됩니다. 이 문제를 해결하기 위해서 HashMap, ContainsKey, substring을 이용했습니다. 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. * 구조대 : 119 * 박준영 : 97 674 223 * 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담.......

[자바] 프로그래머스 정렬#1 K번째수 [내부링크]

[프로그래머스] 정렬#1 K번째수 - 자바 풀이 다양한 해결법이 있지만, 저는 Arrays.copyOfRange를 이용했습니다. https://programmers.co.kr/learn/courses/30/lessons/42748 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i &#x3D; 2, j &#x3D; 5, k &#x3D; 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해.......

[자바] 백준 18310 안테나 / 시간초과와 다른 소스코드 [내부링크]

[자바] 백준 18310 안테나 / 시간초과와 다른 소스코드 https://www.acmicpc.net/problem/18310 이 문제는 너무나도 쉬운 문제여서 자바로 신나게 코딩을 했습니다. 이렇게 코드를 입력하고 실행을 해보니 잘 나와서 백준에 제출 했는데, 결과는 시간초과 무엇이 문제였나 고민을 하다가 내린 결론은 &#34;코드를 바꾸자&#34;였습니다. 제가 푼 방식은 무식하게 다 돌린 방식이지만, 중앙값을 이용하면 더 쉽게 풀리기에 다시 풀어봤으나 결과는 똑같았습니다. 결국 포기하고 구글링을 해본 결과 BefferdReader 을 이용하면 입출력이 더 빨라진다는 것을 알게 되었고 이걸 이용해서 풀으니 성공이 떴습니다.

[스프링부트] JPA와 데이터베이스 없이 초간단 게시판 만들기 [내부링크]

[스프링부트] JPA와 데이터베이스 없이 초간단 게시판 만들기 안녕하세요. 제가 좋아하는 스프링 개발자 분께서 주로 말씀하신 것이 스프링 실력을 늘리기 가장 좋은 방법은 게시판을 많이 만드는 것이라고 하셨습니다. 실제로 프로젝트를 진행할 때에도, mvc패턴을 기반으로 게시판을 많이 만들어보면 여러가지 상황에 적용하기 좋습니다. 쇼핑몰 구성도 그렇고, 주문의 구성도 그렇고 살짝만 응용해도 다양한 곳의 백엔드 개발을 할 수 있게됩니다. 보통 게시판을 만든다면, 데이터베이스와 연동해서 서버에 데이터가 남게끔 만들지만, 이번에는 데이터베이스 없이 서버 메모리를 사용한 게시판을 만들어보았습니다. spring boot, thymeleaf, l.......

[다이어트] 피티 1개월차(8회) 후기 및 변화 [내부링크]

[다이어트] 피티 1개월차(8회) 후기 및 변화 드디어 피티한지 1개월이 됐습니다!! 한달동안 피티를 8번 했는데, 인바디 결과의 차이를 말씀드리려고 합니다! 먼저 처음 피티 신청했을 때보다 체지방은 4kg이 빠지고, 근육량은 2.1kg이 늘었습니다. 이 엄청난 변화 아닌가요?? ㅠㅠㅠ 사실 운동을 1년정도 했다가, 6개월정도? 쉬었는데 그래서 근육량이 돌아온 것도 있지만, 엄청난 변화라고 생각합니다. 팔에 이두와 삼두, 어깨 라인이 눈에 보이기 시작했는데, 너무 기쁩니다! 피티를 받으면서 정말 좋은게, 어디가 부족한지 확실히 알게되었습니다. 피티 선생님이 여러가지 운동을 시키시면서, 코어가 약한 것을 알았고, 밸런스도 안 좋은 걸 알.......

[FRAGILED 프레자일드] 친환경 신생 브랜드 프레자일드 후드티 NAVY 색상 후기 [내부링크]

[FRAGILED 프레자일드] 친환경 신생 브랜드 프레자일드 후드티 후기 안녕하세요. 가을이 다가와서 최근에 후드티 하나를 구매 했습니다. 후드는 크게 입어야 제맛이라고 생각해서 사이즈를 최우선으로 생각하고 찾아봤습니다. 체격이 있어서 웬만한 브랜드 제품은 크게크게 입지도 못해서 여러 브랜드를 찾다가, 친환경 신생 브랜드인 FRAGILED 브랜드를 접하게 됐습니다. 일단 가장 중요한 사이즈부터 확인했는데, XXS ~ XXL 까지 사이즈가 나와서 바로 실측을 확인했습니다. 기장 넉넉하고, 가슴 둘레도 넉넉하고 첫인상은 너무 마음에 들었습니다! 일단 사이즈는 평소에 XL 사이즈를 입었는데, 조금 크게 입고 싶어서 XXL 사이즈를 눈여겨 봤.......

[스프링 MVC] #1 상품 서비스 웹 페이지 만들기 - 프로젝트 설정 [내부링크]

[스프링 MVC] #1 상품 서비스 웹 페이지 만들기 - 프로젝트 설정 프로젝트 요구사항 분석 1. 상품 도메인 모델 - 상품 ID - 상품명 - 가격 - 수량 2. 상품 관리 기능 - 상품 목록 - 상품 상세 -상품 등록 -상품 수정 스프링부트 프로젝트 설정 방법은 다음과 같습니다. Gradle project, JAVA11, 최신버전 디펜던시는 Spring Web, Thymeleaf, Lombok 이렇게 프로젝트를 생성해줍니다. resources &#62; static 폴더 안에 index.html을 만들고 아래와 같이 입력 서버를 실행하고, localhost:8080 을 들어가면 이렇게 결과가 나온다. 프로젝트 구조

[스프링 MVC] #2 상품 서비스 웹 페이지 만들기 - 상품 도메인 개발 [내부링크]

[스프링 MVC] #2 상품 서비스 웹 페이지 만들기 - 상품 도메인 개발 itemservice 폴더 안에 domain 패키지를 만들고 또 그 안에 item 패키지를 만든다. item 패키지 안에 Item 이라는 자바 클래스 파일을 만든다. 그리고 item 패키지 안에 itemRepository 라는 자바 클래스를 만든다. 프로젝트 구조

[스프링 MVC] #3 상품 서비스 웹 페이지 만들기 - 상품서비스 HTML, Thymeleaf [내부링크]

[스프링 MVC] #3 상품 서비스 웹 페이지 만들기 - 상품서비스 HTML, Thymeleaf 이번 편은 프론트엔드단을 구현합니다. 백엔드 개발을 하고 있으니, 프론트엔드 구현은 부트스트랩을 이용해서 빠르게 합니다. https://getbootstrap.com/docs/5.0/getting-started/download/ 위에 사이트에서 Compiled CSS and JS 를 다운받고, 압축 풀고 bootstrap.min.css 파일을 static &#62; css 디렉토리 안에 넣는다. 그리고 resources &#62; static 안에 html 디렉토리를 하나 만들고 items.html 파일을 만들고 아래 코드 입력 그리고 item.html addForm.html editForm.html 이렇게 html 폴더 안에 위에 html파일들을 넣어주면 프론트엔드 구현이 끝난다. 타임.......

Postman 사용하는 이유 및 여러가지 요청 전송 방법 (GET,POST,PUT,DELETE 등등) [내부링크]

Postman 설치 및 여러가지 요청 전송 방법 (GET,POST,PUT,DELETE 등등) 안녕하세요. 이번 포스팅은 포스트맨 Postman 사용법에 대해 말씀드리려고 합니다. 먼저 포스트맨은 주로 API 분석 혹은, 서버로 데이터를 보내서 확인할 때 사용합니다. 저는 자바 스프링으로 백엔드를 공부하는데, CRUD 게시판을 만들 때 혹은 API 만들 때 테스트하는 용도로 정말 많이 씁니다. 처음에 포스트맨을 사용하시는 분들은 이게 뭔지도 잘 모르고, 왜 쓰는지도 잘 모르실 거에요. 저 또한 그저 강의를 보다가 포스트맨을 사용하는데 그때 당시에는 백엔드 개념에 대해 안 잡혀있어서 왜 쓰는지 조차도 모르고, 심지어 전송 방법도 몰랐습니다. 이번 글로 왜 사.......

[개발 일기 #5] 2021년 10월의 개발 일기(CS, 면접, 스프링부트 / 자격증 / 번아웃) [내부링크]

2021년 10월의 개발 일기 안녕하세요. 이번 달은 개발 회고록을 조금 일찍 쓰게 되었습니다. 나중에 면접관 분들이 이 글들을 본다 생각하고 열심히 작성 하는데, 막상 쓰다보니 자기 반성도 되고 계획도 열심히 세우게 되는 것 같아서 좋습니다! 먼저 이번달 깃허브 커밋 상황입니다. 이번달은 하루도 빠짐없이 1일1커밋을 성공했습니다! 나중에 1년을 채워서 잔디 밭을 만들면 너무 뿌듯할 것 같아요. 이번 달에 했던 공부는 순전히 스프링부트와 데이터베이스, 그리고 Computer Science, 면접 준비를 했습니다. 스프링부트는 인프런에 올라온 김영한님의 유료 강의를 듣는데, 확실히 너무 잘 가르쳐주시고, 이해가 쏙쏙 되어서 너무 좋았습니.......

[스프링 MVC] #4 상품 서비스 웹 페이지 만들기 - 상품 상세 페이지 만들기 [내부링크]

[스프링 MVC] #4 상품 서비스 웹 페이지 만들기 - 상품 상세 페이지 만들기 web/basic/BasicItemController.java @GetMapping 을 이용해서 개별 아이템마다 상세 페이지를 확인할 수 있는 컨트롤러 소스 코드를 만들었다. 이때 addAttribute를 이용해서 Item 별로 정보를 basic/item.html 으로 전달한다. item.html에서 전달된 item 정보는 타임리프를 통해서 가공되고 출력된다. basic/item.html 프로젝트 구조

[스프링 MVC] #4 상품 서비스 웹 페이지 만들기 - 상품 등록 페이지 만들기 [내부링크]

[스프링 MVC] #4 상품 서비스 웹 페이지 만들기 - 상품 등록 페이지 만들기 web/basic/BasicItemController.java 지난 포스팅과 마찬가지로 GetMapping을 이용해 /add 링크로 들어가면 addForm.html을 호출해주는 컨트롤러를 만들었습니다. basic/addForm.html 타임리프로 몇가지만 수정해주면 상품 등록 폼은 굉장히 쉽게 구현할 수 있습니다

[다이어트] PT 30회 신청 및 후기 [내부링크]

안녕하세요 작년에 헬스장 다니면서 20키로를 뺐습니다. 그 이후에는 한동안 바쁘기도 했고 코로나가 터져서 가기도 그랬는데 거의 반년만에 술도 많이 마시고 음식도 많이 먹어서 살이 다시 10키로나 쪄버려서 운동을 시작했습니다. 작년에는 체지방 감량이 목적이었다면, 이번에는 근육량 증가가 목적이라서 피티를 신청했습니다. 피티를 하면서 느낀 점은 정말 혼자하는 거랑은 차원이 달랐습니다! 혼자 할 때에도 친구 따라서 웨이트를 했는데 자세도 그렇고 효율적으로 하질 못했습니다. 그래서 근육량 증가는 있었어도, 눈에 크게 보이거나 수치적 상승도 적었습니다. 그래서 근육이 잘 안 붙는 체질인가 생각했는데, 피티를 받고나서 운동.......

[CS] 인터넷 네트워크 (IP/TCP, UDP, PORT, DNS) [내부링크]

[CS] 인터넷 네트워크 인터넷 프로토콜 스택의 4계층 어플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 IP (인터넷 프로토콜) - 지정한 IP 주소(IP Address)에 데이터 전달 - 패킷(Packet)이라는 통신 단위로 데이터 전달 - IP 패킷 정보 &#62; 출발지 IP, 목적지 IP, 기타... 와 함께 전송데이터를 인터넷 망에 보내면 출발지에서 서버까지 인터넷망에 있는 노드를 통해 전달된다. &#62; 서버에서 다시 데이터를 받았다는 패킷을 똑같은 방법으로 클라이언트한테 전달한다. IP 프로토콜의 한계 - 비연결성 &#62; 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷 전송 - 비신뢰성 &#62; 중간에.......

[아이폰13 프로 실버] 아이폰13 프로 실버 구매 후기 / 신지모루 필름 + 링케 투명 케이스 [내부링크]

안녕하세요. 10월1일 부터 시작한 아이폰 사전예약 기간에 사전예약을 놓쳐서 저는 양도를 받아서 아이폰을 구매하게 됐습니다! 쿠팡 1차 상품을 양도 받아서 출시일인 오늘 새벽 7시에 아이폰13프로가 도착했습니다! 아이폰 프로 색상이 이번에 다 예뻐서 너무 고민을 했는데, 골드는 너무 오래 써서 질렸고, 그파도 친구들이 많이 사용하다보니 처음과 같은 감흥이 없고, 시에라블루와 실버를 고민하다가 실버를 구매하게 됐습니다! 용량 또한 기존 64기가를 꽉꽉 채워서 128 가도 될 것 같았는데, 혹시 몰라서 여유있게 256기가로 구매하였습니다. 정확히 새벽 6시쯤 도착했습니다! 쿠팡 로켓배송 사랑해요. 박스는 항상 똑같이 생겼습니다! 뒷.......

아이폰13프로 케이스티파이 커스텀 후기 및 배송 기간 / 주문제작중 표시 [내부링크]

안녕하세요! 아이폰13을 구매하면서 케이스티파이 케이스까지 구매하였습니다! 케이스티파이 케이스는 배송이 느려서 악명 높은데, 실제로 며칠만에 도착했는지 이번 포스팅으로 말씀드리겠습니다. 먼저 케이스티파이 커스텀 케이스를 주문했고, 2021년 10월 1일에 주문했습니다. 주문하고 예상 도착일이 10월 6일 ~ 14일 이라고 나왔는데 이게 배송 올 때까지 계속 &#x27;주문 제작 중&#x27; 이라고 뜨더라고요. 그래서 해외배송이기도 한데, 아직도 제작이 안 됐다고 생각을 해서 내심 걱정했는데 배송이 어제 8일에 도착했더라고요! 아직도 홈페이지에는 &#x27;주문 제작 중&#x27; 표시로 나와있습니다. 그래서 결과적으로 10월 1일 주문하고.......

[스프링 이론] 서블릿과 JSP의 한계와, MVC패턴의 등장 [내부링크]

서블릿으로 개발할 때에는 뷰(VIew) 화면을 위한 HTML을 만드는 작업이 자바 코드 중간중간 섞여서 지저분하고 복잡했다. &#x3D;&#62; 자바 코드 안에 직접 w.write(&#34;&#60;html&#62;&#34;); 같은 코드를 씀 JSP를 사용한 덕분에 뷰를 생성하는 HTML작업을 깔끔하게 가져가고, 중간중간 동적으로 변경이 필요한 부분에만 자바 코드를 적용했다. &#x3D;&#62; JSP파일을 따로 만들어서 자바코드와 HTML을 나눠서 편리하게 작성함. 그런데 이 JSP에도 해결되지 않는 몇가지 문제가 있다. 예를 들어 회원 저장 JSP를 설계했을 때, 코드의 상위 대부분은 회원을 저장하기 위한 비즈니스 로직이고, 나머지는 결과를 HTML로 보여주기 위한 뷰 영역이다.......

[자바] 자바 스프링 백엔드 개발자 면접 준비 - 스프링 [내부링크]

1. Servlet, JSP, JDBC란? - Servlet이란 Container가 이해할 수 있게 구성된 순수 자바 코드로 이루어진 것입니다. (HTML in JAVA) - JSP(Java Server Page)란 HTML 기반에 JAVA코드를 블록화하여 삽입한 것입니다. (JAVA in HTML) - JDBC(Java Data Base Connection)란 JAVA 언어를 통해 데이터베이스에 접근 할 수 있게 해주는 기술입니다. 2. GET, POST, PUT 방식에 대해 설명하시오 * GET 방식 - 주로 웹 브라우저가 웹 서버에 데이터를 요청할 때 사용합니다. - 클라이언트에서 서버로 데이터를 전달할 때, 주소 뒤에 &#34;이름&#34;과 &#34;값&#34;이 결합된 String 형태로 전달합니다. - 주소창에 쿼리 스트링이 그대로 보여서 보안.......

[자바] 자바 개발자 백엔드 면접 [내부링크]

1. Override / Overload의 차이 - Overriding은 상속 관계에서 같은 기능을 사용하지만 함수 내용이 다른 경우 자식클래스에서 함수를 재정의 하는 것입니다. - Overloading은 리턴타입, 인자개수, 인자타입이 다를 경우에 이름은 같지만 다른 함수 여러개가 있는 것 입니다. 여기서 매개변수의 타입이 다르거나 개수가 달라야하고, return type과 접근 제어자는 영향을 주지 않습니다. 2. Interface, Abstract 란? * Interface 란? - 일종의 추상 클래스입니다. - 오직 추상 메서드와 상수만을 멤버로 갖습니다. - Implements 키워드를 사용합니다. - 상속의 관계가 없는 클래스 간에 서로 공통되는 로직을 구현하여 쓸 수 있도록 합니다. - Ext.......

[스프링 부트] 로깅이란? [내부링크]

로깅이란? 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-loggin)가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. 1. SLF4J 2. Logback 여러 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는게 SLF4J 라이브러리이다. 즉 SL4FJ는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다. 실무에서는 보통 Logback을 사용한다. 이렇게 코드를 입력하고 서버를 실행하고 localhost:8080/log-test 로 가보면 ok가 화면에 출력됨을 확인할 수 있다. 콘솔 창에는 아래와 같은 사진이 뜬다. 다시 소스코드를 보면, @Controller는.......

[스프링부트] #6 게시판 만들기 - 게시물 삭제 [내부링크]

[스프링부트] #6 게시판 만들기 - 게시물 삭제 1. boardview.html 파일을 아래와 같이 수정 2. BoardService.java 를 아래와 같이 수정 3. BoardController.java 를 아래와 같이 수정 서버 재가동후 localhost:8090/board/list 로 들어가서 아무 글이나 클릭하면 아래와 같이 뜬다. 여기서 글삭제를 누르면 글이 성공적으로 삭제된다.

[Spring] 스프링 MVC 모델 [내부링크]

[Spring] 스프링 MVC 모델 스프링 MVC (Model - View - Controller) 모델이란? - MVC(모델 - 뷰 - 컨트롤러)는 소프트웨어 공학에서 사용되는 아키텍쳐 패턴이고, 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다. - 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비지니스 로직을 서로 영향 없이 쉽게 고칠 수 있다. * 모델 (Model) 컴포넌트 - 데이터베이스와 연동하여 사용자가 입력한 데이터 혹은 사용자에게 출력할 데이터를 다루는 일을 한다. - 여러개의 데이터 변경 작업(추가, 변경, 삭제)을 하나의 작업으로 묶는 트랜잭션을 다루는 일도 한다. - DAO클래.......

아이폰13 프로 실버 256 쿠팡 사전예약 후기 / 실패시 출시 당일날 받는 방법 (양도, 성지) [내부링크]

아이폰13 프로 실버 256 쿠팡 사전예약 후기 / 실패시 출시 당일날 받는 방법 안녕하세요! 10월 1일인 오늘 쿠팡에서 아이폰13 사전예약을 했습니다. 1차 성공하신 분은 할인혜택과, 출시 당일날 바로 받을 수 있고, 실패 하신 분들은 날이 밀려서 받으실 거에요. 저는 어제 수강신청 하는 것처럼 시도를 했는데, 실버가 매물이 적어서 실패를 했어요 ㅠㅠ 1차 이후에 사전예약도 다 실패해서 구매해도 10월 말쯤 받는데, 오늘 이런 분들을 위해 꿀팁을 알려드리겠습니다. 1. 중고나라 / 당근마켓 이용하기 - 이 곳에서 양도를 받는 방법이 있습니다. 지금은 사전예약 놓친 사람들이 많기에 사기꾼도 많습니다. 특히 중고나라 같은 경우는 &#x27;.......

[맥북 M1] MySQL 설치 방법 / MySQL 오류 났을 때 재설치 방법 [내부링크]

맥북 인텔버전이 아닌, 맥북 실리콘칩 기준 입니다. (M1칩셋 기준) [맥북 M1] MySQL 설치 방법 / MySQL 오류 났을 때 재설치 방법 안녕하세요. 스프링을 공부하다가, 맥북이 강제재부팅이 됐는데, 맥북을 다시 키고 인텔리제이에서 서버를 돌리니깐 오류가 떴습니다. 구글링해서 찾아본 결과, 데이터베이스 오류가 나서 생긴 문제더라고요. 그래서 데이터베이스를 확인해보니 데이터가 다 날아가있더라고요ㅠㅠ MySQL은 강제종료가 돼서 그런지, 터미널에 mysql.server start 명령어를 입력해도 pid 오류가 떠서 구글링했는데, MySQL 디렉토리도 다르고 내용이 전부 인텔맥에 해당하는 내용이더라고요. 그래서 너무 짜증나서 MySQL을 삭제하고 다.......

[스프링부트 시큐리티 #1] 환경설정 [내부링크]

1. MySQL에 security 데이터베이스 생성하고, 쿼리에 아래와 같은 소스를 입력하고 한줄마다 컨트롤+엔터를 입력한다. 2. 스프링부트 프로젝트를 Maven 으로 만든다. 디펜던시는 아래와 같다. Spring Boot DevTools, Lombok, Spring Data JPA, MySQL Driver, Spring Security, Mustache, Spring Web 3. resources 폴더에 application.yml 로 이름을 리팩터링해주고 아래 코드를 붙여준다. 4. 메인 패키지 안에 Controller 패키지를 만들고 그 안에 IndexController 자바 파일을 만들어주고 아래와 같은 코드를 입력해준다. 5. templates 폴더안에 index.html 파일을 만들고 아래와 같이 입력한다. 6. 메인 패키지 안에 Config 패키지를 만들어주.......

[개발 일기] 웹 개발 프론트엔드와 백엔드 차이, 전공생이 생각하는 쉽게 이해하고 공부하는 방법 [내부링크]

[개발 일기] 웹 개발 프론트엔드와 백엔드 차이, 전공생이 생각하는 쉽게 이해하고 공부하는 방법 저의 생각이 담긴 주관적인 글입니다. 글에 오류가 있을 수도 있으니 편하게 피드백 해주세요 :) 쉽게 설명하는 글인만큼 전문성은 떨어지지만 이해하기 쉽게 작성하였습니다. 서두 안녕하세요. 저는 웹 개발을 하는 전공생입니다. 1,2 학년 때에는 학교에서 배우는 C, JAVA 등 언어로 막연히 &#x27;코딩&#x27;을 하면 취업을 할 수 있다고 생각했습니다. 사실 기본 코딩만 잘해도 코테를 통해 취업을 할 수 있지만, 실무적인 부분을 알면 면접을 볼 때 유리할 수 밖에 없으니 꼭 알고 공부를 해야합니다! 오늘 저는 웹 개발에서 프론트엔드와 백.......

[스프링 이론] 스프링 핵심 개념 정리, 좋은 객체 지향 설계를 위한 SOLID 원칙 [내부링크]

[스프링 이론] 스프링 생태계 필수 : 스프링 프레임워크, 스프링 부트 선택 : 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드 스프링 프레임워크 핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술: 스프링MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케쥴링 테스트: 스프링 기반 테스트 지원 언어: 코틀린 그루비 스프링 부트 - 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 - 단독으로 실행할 수 있는 스프링 애플리케이션 쉽게 생성 - 톰캣 같은 웹 서버를 내장해, 별도의 웹 서버를 설치.......

[스프링부트] Restful API 구현해보기 / GET, PUT, POST, DELETE [내부링크]

* 인텔리제이를 이용해서 진행했습니다 * 환경설정 1. 인텔리제이에서 Maven으로 새 프로젝트 생성 2. porm.xml 파일을 아래 코드로 설정 ( 붙여넣고 윈도우는 CTRL + ALT + L, 맥은 Control + Option + L 로 소스코드 정리해주세요.) 3. 인텔리제이 우측에 Maven 탭 클릭 후, 새로고침 아이콘 클릭 &#62;&#62; 왼쪽에 External Libraries 설치가 됨을 확인할 수 있다. 4. java 폴더 안에 com.아무이름 패키지 하나 만들고, startApp 라는 이름의 자바클래스를 만들어주고 아래와 같은 코드를 입력한다. &#62;&#62; 스프링부트를 실행할 파일을 생성하는 과정입니다. * 오류가 뜨는 경우는, 저랑 폴더 이름이 달라서 그러니깐 확인해보세요! 5. 인텔.......

#7 - 다시 시작한 헬스 [내부링크]

#7 - 다시 시작한 헬스 작년 6월부터 올해 4월정도까지 운동을 하면서 약 20kg을 감량했다. 한창 운동 했을 때에는 주 5일은 꼭 갔는데, 올해 4월부터 코로나로 한달동안 헬스장이 닫고, 이것저것 바쁘기도 해서 운동을 안하게 됐다. 그러다가 다시 8kg가 쪄버리고, 위기감을 느껴서 이번에 다시 빡세게 해보자는 생각으로 PT를 신청하게 됐다. 확실히 운동을 안하다가 다시 시작하니깐 규칙적으로 가는게 너무 힘든 것 같다 ㅠㅠ 상담을 받으면서 3분할로 나눠 운동하기로 했다. 가슴+팔 / 등+어깨 / 하체 그래서 피티는 주3회 총 50회 신청했는데, 신청한 이유는 친구들과 운동하면서, 제대로 된 자세로 운동을 못하고, 음식 같은 것도 대충대.......

포메라니안 분양 후기 - 웰컴 달수 [내부링크]

고등학교 1학년 때, 봉구를 분양 받았습니다! 봉구랑 오랜시간 보내면서 동생이 있으면 좋을 것 같다고 생각해서, 토요일에 분양을 받으러 갔습니다. 봉구가 퍼그+잉글리쉬불독 믹스견이라 너무 커서, 손이 많이 가는데, 이번에는 그나마 키우기 쉬운 소형견을 데려오려고 원래 말티푸를 점찍어놨습니다. 그런 생각으로 아빠랑 같이 분양 받으러 갔습니다! 그런데 분양 받으러 간 곳에 우리 달수가 있었는데, 너무 귀엽고 성격도 좋아서 바로 빠져버렸어요 ㅠㅠ 블랙탄 포메라니안인데, 너무 흑곰같지 않나요?? 성격이 어찌나 깨발랄인지 다른 강아지를 타기도하고, 사람을 따라다니기도하고 너무 예쁘더라고요. 그래서 바로 데려왔습니다. 차타.......

아이폰13 시리즈 사전예약 방법과, 실패시 빠르게 수령하는 구매방법 [내부링크]

아이폰13 시리즈 사전예약 방법과, 실패시 빠르게 수령하는 구매방법 안녕하세요. 기존에 쓰던 아이폰xs 뒷면이 박살나서 핸드폰을 구매하려고 아이폰13을 알아봤습니다. 이번에 아이폰13 시리즈 사전예약 구매 방법과, 사전예약에 실패했을 때 출고 당일부터 +3일 내로 빠르게 받을 수 있는 방법을 알려드리려고 합니다. 당일 수령할 수 있는 구매 방법은 총 두가지로 나뉩니다. 1. 사전예약 (쿠팡, 애플공홈, 하이마트, 위메프 등등) 2. 성지 방문 1. 사전예약 (쿠팡, 애플공홈, 하이마트, 위메프) 21년도 9월 30일 기준으로 사전예약 시작은 10월 1일 00시 00분부터입니다. 사전예약의 장점으로는 출시 당일날 빠르게 받을 수 있다는 장점이 있.......

[스프링부트] #1 게시판 만들기 - 개발환경 세팅 [내부링크]

[스프링부트] #1 게시판 만들기 - 개발환경 세팅 게시판은 백엔드에서 구현할 수 있는 많은 기능을 구현할 수 있습니다. 이번 포스팅을 통해 게시판을 구현해보겠습니다. 개발환경 세팅하기 1. 도커, mysql, mariadb, MySQLWorkbench 설치한다. 2. 도커로 mariaDB 서버를 키고 MySQLWorkbench에서 mariaDB를 열어준다. 그리고나서 통모양 버튼을 누르고 board 라는 이름의 스키마를 생성해준다. 3. Spring Initializer에 들어가서 Gradle, jar, java8 Dependencies는 Spring Web, Spring Data JPA, MariaDB Driver, Thymleaf, Lombok 을 넣어준다. 4. 프로젝트 내에서 application.properties 파일안에 아래와 같은 코드를 입력한다. (패스워드는.......

[스프링부트] #2 게시판 만들기 - MariaDB에 테이블 생성 / 게시물 작성 폼 생성 [내부링크]

[스프링부트] #2 게시판 만들기 - MariaDB에 테이블 생성 / 게시물 작성 폼 생성 MariaDB에 테이블 생성하기 1. MySQL Workbench 들어가서 스키마에 테이블 우클릭 후 create 누른다음에 아래 사진처럼 작성한다. * NN &#x3D; Not null &#x3D; 데이터를 받지 않으면 안된다. &#x3D; 무조건 데이터를 받아야한다. 다 작성하고 Apply를 눌러 저장해준다. 게시물 작성 폼 생성하기 1. templates 폴더 안에 boardwrite.html 파일을 만들고 아래와 같은 소스코드를 작성한다. 2. controller 패키지 안에 BoardController 라는 자바 클래스를 아래와 같은 코드로 수정해준다. 서버를 재실행하고 localhost:8090/board/write 로 들어가보면 아래 사진과.......

[스프링부트] #3 게시판 만들기 - 글 작성 처리 [내부링크]

[스프링부트] #3 게시판 만들기 - 글 작성 처리 templates 폴더 안에 boardwrite.html 파일을 아래와 같이 작성한다 전과 달라진 점은 폼을 추가하고, 포스트로 전송하는 것을 추가했다. 그리고 com.xxxx.xxxx 안에 하위 패키지로 entity를 만들고 그 안에 Board 라는 자바 클래스를 생성하고 아래 코드를 작성한다. com.xxxx.xxxx 폴더 안에 repository 라는 패키지를 만들고 그 안에 BoardRepository 라는 인터페이스를 만들고 아래 코드를 작성한다. com.xxxx.xxxx 폴더 안에 service라는 패키지를 만들고 BoardService 라는 자바 클래스를 만들어주고 코드를 작성한다. boardController 파일을 아래와 같이 작성해준다. 서버를 재가동 시킨 후.......

[스프링부트] #4 게시판 만들기 - 게시글 리스트 [내부링크]

[스프링부트] #4 게시판 만들기 - 게시글 리스트 1. MySQL Workbench 들어가서 테이블에 아래와 같은 코드를 입력해준다. 그리고 use board; 드래그하고 컨트롤+엔터 누르고 DELIMITER $$ 부터 DELIMITER $$ 까지 드래그 후 컨트롤 + 엔터, 마지막으로 call testDataInsert 드래그 후 컨트롤 + 엔터를 누르고나서 좌측 탭에 있는 board의 테이블 모양 누르면 데이터가 들어온 것을 확인할 수 있다. templates 폴더 안에 boardlist.html 파일을 만들고 아래와 같은 소스코드를 입력한다. service 패키지 안에 있는 BoardService 클래스에 아래와 같은 코드를 입력한다. controller 패키지 안에 BoardController 클래스에 아래와 같은 코드를 입력.......

[스프링부트] #5 게시판 만들기 - 게시글 상세 페이지 생성 [내부링크]

[스프링부트] #5 게시판 만들기 - 게시글 상세 페이지 생성 1. templates 폴더 안에 boardview.html 파일 생성 후 아래 코드 작성 2. BoardController.java 파일 안에 아래와 같은 소스코드 입력 3. BoardService.java 파일에 아래와 같은 코드 입력 4. boardview.html 파일에 아래와 같은 코드 작성 서버를 재가동 시키고 localhost:8090/board/list 에 들어가면 아래와 같은 페이지가 뜬다. (데이터베이스에 있는 정보) 링크를 클릭하면 해당 ID의 글로 들어가진다.

웹에 광고 붙여서 수익 내기 (구글 애드센스, 카카오 애드핏) [내부링크]

웹에 광고 붙이기 1. 애드 네트워크 사용하기 - Google Adsense - Kakao Adfit https://adfit.kakao.com/ 1. 위에 링크 타고 들어가서 로그인하기 2. 광고관리 탭에 들어가서 새 매체 클릭 3. 매체 등록하기 &#62; 매체 고유값은 배포한 웹의 주소를 입력 4. 광고 단위 설정 후 스크립트를 코드에 붙여넣기 위와 같이 카카오 비즈니스 팝이 뜬 걸 확인할 수 있다. 나중에 1~2 영업일이 지나면 광고가 활성화 되고, 카카오 애드핏에서 광고 분석도 할 수 있게된다.

네이버에 웹 서비스 등록하기 [내부링크]

1. 네이버 웹마스터 도구에 내 사이트 등록하기 https://searchadvisor.naver.com/ 위에 사이트 들어가서, 우측 상단에 웹마스터 도구 클릭하기 2. 클릭후 링크 올리고 광고 등록하기 3. 검증 탭에 robots.txt 들어가서 모든 검색로봇 수집허용 누르고, robots.txt를 다운 받아, 파일이 있는 곳에 넣는다. https://www.xml-sitemaps.com/ 1. 위에 사이트에 들어간 후, URL 입력후 Start를 누른다. 그 후 완료되면 View sitemap detail 클릭하고 Download XML 클릭한다. 2. 다운 받은 걸 마찬가지로 소스코드가 있는 곳에 넣는다. 여기까지 했으면, 깃허브에 업데이트 하고, 다시 네이버 웹마스터 도구 들어가서 1. 검증 탭에 - robots.txt - 수집.......

[개발 일기 #4] 9월의 개발 일기 [내부링크]

[개발 일기 #4] 9월의 개발 일기 이번 달은 굉장히 빠르게 지나갔습니다. 일단 저번 달에 목표해둔 하루 4시간 이상 공부와, 깃허브 1일 1커밋은 추석, 데이트한 날을 빼고는 잘 실천했습니다!! 예이~ 나중에 잔디밭이 될 때까지 열심히 해봐야겠어요. 9월달에는 프론트엔드와 백엔드 공부 둘다 열심히 했습니다. 프론트엔드 공부로는 리액트와 바닐라 자바스크립트를 공부했고, 백엔드 공부는 사용해보지 않은 익스프레스를 시도해봤습니다. 익스프레스와 스프링부트를 둘다 사용하고, 데이터베이스 개념에 대해 많이 알게 됐습니다. 백엔드 공부를 하면서 코딩만 하는 것보다는, 이론을 바탕으로 코드를 설계하는 것이 무엇인지 알게 되었고, 어.......

여자친구 생일을 맞이한 간단한 웹사이트 만들기 [내부링크]

여자친구 생일을 맞이한 간단한 웹사이트 만들기 안녕하세요 곧 여자친구 생일이라서 특별한 선물을 하고 싶어서 뭐 할까 고민하다 웹사이트를 만들어봤습니다. 원래 리액트를 이용해서 하고싶은데, 시간이 되질 않아서 리액트를 사용하진 못했습니다 ㅠㅠ 메인은 위에 사진처럼 nav, header, main 세 부분으로 나눴습니다. header 부분은 &#x27;만난지 N일 째&#x27; 라는 문구가 있는데, 자바스크립트로 날짜 계산을 해서 자동으로 계산이 되게 구현했고, Main 부분은 컬러박스를 이용해서 각각의 컨텐츠를 만들었습니다. 컬러박스는 애니메이션 효과를 적용해서 마우스를 올리면, 확대되게 만들었습니다. 컬러박스를 누르면 각각의 컨텐츠 색을.......

[자바스크립트] Axios를 이용한 오늘 총 코로나 확진자, 사망자수 데이터 가공하기 [내부링크]

[자바스크립트] Axios를 이용한 코로나 확진자, 사망자수 데이터 가공하기 날마다 갱신되는 오늘의 코로나 총 확진자 수와, 총 사망자 수 구하기 자바스크립트 axios.get을 이용해서 코로나 api 데이터를 받아오고, 그 데이터를 처리해서 index.html에 출력한다. index.html style.css getToday.js main.js

[리액트 + 스프링 부트 + MySQL] #1 ToDoList 만들기 / 개발환경 준비하기 [내부링크]

[풀스택 - 리액트 + 스프링 부트 + MySQL] #1 ToDoList 만들기 / 준비하기 - 개발환경 설정 &#62; AdoptOpenJDK ( JDK11, HotSpot) &#62; IntelliJ IDEA CE &#62; Node.js &#62; VSCode &#62; Postman &#62; MySQL ( + Docker) &#62;&#62; 도커 설치후 터미널에 아래 코드 입력 (M1맥북용) (DATABASE 이름과, USER, PASSWORD는 아무거나 기억할 수 있는걸로 입력하시면 됩니다.) &#62; DBeaver &#62;&#62; 설치 후 MySQL 연결 후 MAIN 옆에 Driver properties - allowPublicKeyRetrieval : TRUE 로 바꿔주셔야 &#34;Public Key Retrieval is not allowed&#34; 오류가 안뜹니다. Spring Initializer 검색 후 Gradle Project - Kotlin - 괄호 없는 버전 선택.......

[리액트 + 스프링 부트 + MySQL] #2 ToDoList 만들기 / 코틀린 스프링부트 개발 [내부링크]

[풀스택 - 리액트 + 스프링 부트 + MySQL] #2 ToDoList 만들기 / 코틀린 스프링부트 개발 인텔리제이에서 Main-kotlin-~todolist 로 들어간 후 repository 패키지를 만든 후 Todo 라는 이름의 코틀린 파일을 만들고 아래 코드 넣기 이후 repository 폴더에 TodoRepository 라는 이름의 인터페이스 생성 후 아래 코드를 작성한다. Spring MVC(Service) ~ com.xxxx.todolist 디렉토리에 service 패키지를 만들고 안에 코틀린 파일로 TodolistApplication 파일을 만든다. 밑에 소스 코드를 입력한다. &#62;&#62; 패키지명은 사용자마다 다르니 확인해야함 Spring MVC (Controller) ~com.xxxx.todolist 디렉토리에서 controller 패키지를 만들고 &#34;.......

[리액트 + 스프링 부트 + MySQL] #3 ToDoList 만들기 / 리액트 개발과 스프링 부트와 연결하기 [내부링크]

풀스택 [풀스택 - 리액트 + 스프링 부트 + MySQL] #3 ToDoList 만들기 / 리액트 개발과 스프링 부트와 연결하기 리액트 환경을 세팅해준다. Vscode에 작업 폴더로 들어가서 터미널에 npx create-react-app . 입력해서 리액트 환경을 만들어주고, 터미널에 npm i axios 를 입력해서 axios를 받아준다. 그리고 마지막으로 App.js에 아래와 같은 코드를 입력한다. 위에 코드를 입력하고 터미널에 npm run start를 입력해서 화면을 띄워보면, 콘솔창에 CORS (교차 출처 리소스 공유) 오류가 뜬다. 이게 뭐냐면, 스프링 부트 프로젝트 포트는 8080인데, 리액트앱은 포트번호가 3000번이기 때문에 발생하는 것이다. 이걸 해결하기 위해서, 두 가지 방법.......

웹에 SNS 공유 기능 만들기 [내부링크]

웹에 SNS 공유 기능 만들기 https://www.addthis.com 1. 위에 사이트 들어가서 회원가입하기 2. 로그인 한 후 Share buttons 클릭 그리고 원하는 타입 선택 3. 다 고르고 제공되는 코드를 소스코드에 붙여넣으면 끝 위에처럼 만들 수가 있습니다!

[리액트] API를 이용하여, 코로나 집계 사이트 만들기 [내부링크]

[리액트] API를 이용하여, 코로나 집계 사이트 만들기 리액트를 사용하여, 코로나 집계 사이트를 만들었습니다. 코로나 집계시에 필요한 데이터는 https://documenter.getpostman.com/view/10808728/SzS8rjbc 여기서 API를 따와서 정보를 가공한 후에 데이터 처리를 했습니다. Axios, react-chartjs-2 를 이용했습니다. *리액트 컴포넌트를 만들 때, vscode 확장 프로그램인 &#34;ES7 React/Redux ....&#34; 을 받으시고, rafce 를 입력후 엔터치면 자동으로 리액트 코드가 완성됩니다. App.js App.css components / Header.js components / Contents.js

[리액트] #1 API를 이용하여, 인기 영화 순서대로 불러오기 및 영화 상세정보를 받아오는 사이트 만들기 ++ API 와 컴포넌트의 중요성 [내부링크]

[리액트] #1 API를 이용하여, 인기 영화 순서대로 불러오기 및 영화 상세정보를 받아오는 사이트 만들기 ++ API 와 컴포넌트의 중요성 안녕하세요. 오늘 리액트를 이용해서 API를 받아오고, 영화를 현재 인기 순대로 카드식으로 배열한 후에 아무 영화 포스터를 클릭하면, 라우터를 이용하여, 그 영화의 상세정보를 볼 수 있게끔 만들었습니다. 먼저 준비할게 있습니다. https://www.themoviedb.org/ TMDB 사이트에 들어가셔서, 회원가입을 한 후에 이 사이트에서 제공하는 API 키를 받으셔야합니다. API를 받으셨으면, fetch를 이용하여 데이터를 받고 가공합니다. 그 후에는 가공한 데이터를 가지고 필요한 컴포넌트를 만들어서 코딩을 하시면.......

[개발 일기 #3] 8월을 회고하며 올리는 개발 일기 (프로젝트) [내부링크]

[개발 일기] 8월을 회고하며 올리는 개발 일기 (프로젝트) 8월에는 진로에 대한 고민을 많이 했습니다. 프론트엔드, 백엔드 개발 둘다 하면서 슬슬 한가지로 방향을 잡아야하는데, 고민을 해도 끝이 안났습니다. 적어도 올해 말까지는 정리를 해야지 내년에 대규모 프로젝트도 할텐데 걱정입니다 ㅠㅠ 지난 달에는 프로젝트를 많이 진행 했습니다. 메인 프로젝트로 팀원들과 전기차 서비스 관련 웹 서비스를 만들었습니다. 굉장히 준비를 많이하고 공부도 많이 했지만, 생각보다 결과가 좋지는 않아서 마음이 아프지만, 다음 프로젝트에서는 경험 삼아서, 더 좋은 결과를 만들고 싶다고 생각했습니다. 서브 프로젝트로는 뭐 이것저것 여러개 만들.......

[자바스크립트] Axios 사용하기 (Parcel bundler) [내부링크]

[자바스크립트] Axios 사용하기 1. 프로젝트 폴더를 생성한다. 2. Vscode로 프로젝트 폴더 들어간 후, 터미널을 열고 npm init -y 입력 3. npm install parcel-bundler -D 입력 4. package.json 들어간 후 scripts 부분을 아래와 같은 코드로 바꾼다. 5. index.html을 생성한 후 터미널에서 npm run dev 를 입력해서 개발서버를 띄워주고 잘 작동되는지 확인한다. 6. 작동이 잘 되면, 터미널에 npm i axios 를 입력해서 Axios를 다운 받아준다. Axios 사용할 준비 끝 index.html main.js 위에처럼 소스코드를 입력한 후 결과를 확인해보면 위에 사진처럼 나오는 것을 확인할 수 있다. main.js 파일에서 axios.get(url) 코드를 통해서 api 정보를.......

이케아와 헤이홈을 이용한 개발용 데스크 셋업 공개 [내부링크]

안녕하세요! 오늘은 이케아와 헤이홈 제품을 이용한 저의 데스크 셋업을 공개하려고 합니다! 먼저 제 책상의 전체적인 모습입니다. 이케아 높낮이 수동 조절 책상, 이케아 2층 수납장, 시디즈 의자, 주연테크 28인치 모니터, 헤이홈 라인 LED와 조명, 만랩 3 in 1 충전기 이렇게 구성되어 있습니다. 먼저 만랩 3 in 1 무선 충전기입니다. 아이폰, 에어팟, 애플워치를 전부 사용하는 저에게는 꼭 필수인 제품이에요. 충전케이블이 달라서 지저분한데, 이거 하나로 깔끔하게 해결 가능합니다! 요거는 제가 없으면 코딩을 못할만큼 큰 존재인 주연테크 모니터입니다. 맥북과 연결하면 충전까지 60w로 되고, 큰 화면으로 코딩을 할 수 있어서 정말정.......

[파이썬] 프로그래머스 - 두 개 뽑아서 더하기 [내부링크]

[파이썬] 프로그래머스 월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기 https://programmers.co.kr/learn/c...

[Docker 도커 실전 가이드] 웹 개발자 필수 기술스택인 도커, 도커 강의서 추천 후기 [내부링크]

안녕하세요. 오늘 도커 책을 제공 받았습니다. 도커는 요즘 개발자 현업에서 거의 필수 수준이죠? 도커를 ...

[개발일기 #1] 회고록, 기술 블로그, 공부 지옥 [내부링크]

1. 회고록 대학에 입학하고 벌써 23살이 됐다. 입학하고 1,2 년동안 학교에서 배운 전공은 사물인터넷, 기...

[Node.js] Node.js 백엔드 맛보기 #1 nodeJS + Express 웹서버 설정, Request,Response 처리 기본 [내부링크]

[Node.js] Node.js 백엔드 맛보기 #1 nodeJS + Express 웹서버 설정, Request,Response 처리 기본 a...

[영통 빌에반스 헤어] 두 번째 아이비리그컷 후기와 머리 기르는 과정 (영통, 광교, 기흥 미용실 추천) [내부링크]

[영통 빌에반스 헤어] 두 번째 아이비리그컷 후기와 머리 기르는 과정 (영통, 광교, 기흥 미용실 추천) 안...

[흥덕지구 핑거워시] 여름맞이 세차하기, 흥덕지구 세차장 핑거워시 후기 [내부링크]

[핑거워시 영덕점] 여름맞이 세차하기, 흥덕지구 세차장 핑거워시 후기 안녕하세요. 오늘은 용인 흥덕지구 ...

제주도 만 21세 완전 자차 렌터카 업체 추천 [레드캡렌터카] [내부링크]

안녕하세요. 최근에 제주도 여행을 다녀왔는데, 렌터카 때문에 굉장히 걱정이 많았습니다. 아무리 유명한 ...

[Aesop] 이솝 테싯 오 드 퍼퓸 향수 구매 후기 [내부링크]

안녕하세요. 오늘 광교 갤러리아에 가서 쇼핑을 하면서 이솝 향수를 구매했습니다. 원래는 휠 제품을 구매...

[자바 알고리즘] 이진탐색 (Binary Search) 구현하기 [내부링크]

# 1. 자바로 풀어본 알고리즘 이진탐색의 원리는 간단하다. 1 ~ 100 까지에서 한 숫자를 맞추는 게임을 할 ...

[자바 알고리즘] DFS, BFS 구현하기 [내부링크]

UndirectedGraph.java DfsSearch.java BfsSearch.java 세가지 소스코드로 구성되고, UndirectedGra...

[프론트엔드] 카카오톡 클론 코딩 [내부링크]

[프론트엔드] 카카오톡 클론 코딩 안녕하세요 오늘은 8월에 공부한 걸 올려보려고 합니다. 최근에는 프론트엔드 공부를 많이했습니다. 아무래도 프로젝트를 하고 있어서 많이 하지 못했지만, 남는 시간동안 열심히 했습니다! 니꼬쌤 강의도 열심히 듣고 디자인적인 부분도 많이 늘은 것 같습니다. 사실 자바스크립트 이용하는 줄 알았는데, 순수 HTML, CSS만 이용한거라서 당황했었습니다. 하지만 진짜 도움은 많이 돼서 프론트엔드 공부하시는 분들이라면 한번 들어보시는 걸 추천드려요 :) 로그인창 구현 친구목록 구현 채팅창 구현 find 탭 구현

[프론트엔드] 과거의 나에게 보내는 편지 - 토이 프로젝트 [내부링크]

[프론트엔드] 과거의 나에게 보내는 편지 - 토이 프로젝트 8월에 짧게 토이 프로젝트로 앞으로 진행할 개인 프로젝트의 프로토타입을 만들어봤습니다. 텍스트를 뭐라할지 모르겠어서 대충 구글에서 끌고온 문장도 많습니다. 상단 nav탭을 position: fixed; 로 고정시키고, 나머지는 틀 짜고 내용을 넣었습니다. 지금 공부하는 걸 마치고 추후에 백엔드랑 같이해서 회원가입, 로그인, 서비스를 모두 구현할 생각입니다.

[프론트엔드] To do list 다시 구현해보기 [내부링크]

[프론트엔드] To do list 다시 구현해보기 8월에 진행한 프로젝트 중 하나로, 이번년도 봄 쯤에 자바스크립트를 처음 공부할 때, html, css등 다 몰라서 무작정 구글링과 따라하기로 만들어서 계속 미련이 남았었습니다. 전에 만들었던 버전과는 조금 다르게 자바스크립트를 이용해서 페이지 하단에 3초마다 명언이 바뀌도록 설정했고, 시간에 따라 배경화면이 바뀌게 설정했습니다. 추후에 리액트를 이용해서 페이지에 게임 탭을 만들어 미니게임을 만들 생각입니다.

[웹 프로젝트] #1 취업용 포트폴리오 사이트 만들기 [내부링크]

[웹 프로젝트] 취업용 포트폴리오 사이트 만들기 안녕하세요. 드디어 오늘 전기차 프로젝트가 다 끝나고, 이제 사이드 프로젝트로 저의 취업을 위한 사이트를 만들기 시작했습니다. 레이아웃 &#62; 디자인 &#62; 애니메이션 및 JS &#62; 반응형 이 순서로 만들 예정입니다. 서브메뉴는 저를 소개하는 것과, 깃헙, 블로그 등등 개인 사이트 지금까지 만든 프로젝트, 커리어에 대한 메뉴 총 4가지를 만들 계획이고 오늘은 서브메뉴 4가지중 2가지를 만들었습니다. 일단 틀을 얼른 만들고 디자인을 해야하는데, 가장 걱정되는 부분이 바로 디자인이에요. 색 조합, 폰트 생각하는게 정말 너무 고통입니다 ㅠㅠ

[리액트] #1 영화 검색 만들기 / 리액트 개발 환경 포함 [내부링크]

[리액트] #1 영화 검색 만들기 / 리액트 개발 환경 포함 - 리액트 개발 환경 만들기 (맥북 M1 기준) 1. 구글에 Node.js 검색 후 설치하기. (최신버전) 2. 프로젝트 폴더 생성하기 &#62; 터미널에 mkdir 폴더명 입력하기. 3. 프로젝트 폴더 이동하기 &#62; 터미널에 cd 폴더명 입력하기. 4. 리액트 개발환경 구축하기 &#62; 터미널에 npx create-react-app 프로젝트명 입력하기. 5. Vscode 실행 후 프로젝트 폴더로 이동한 후에 vscode 터미널에 npm start 입력하기 그러면 자동으로 웹 브라우저에 리액트가 작동하는 것을 확인할 수 있습니다. src 폴더에 들어가서 App.js 와 index.js 만 냅두고 나머지 파일은 다 삭제하기. (삭제하고 페이지를 보.......

[웹 프로젝트] #2 취업용 포트폴리오 사이트 만들기 [내부링크]

[웹 프로젝트] #2 취업용 포트폴리오 사이트 만들기 이번에는 서브메뉴 Who Am I 에 div로 세개의 항목씩 감싸주고 flex 속성을 이용해서 상하좌우 정렬을 맞췄습니다. 기존에는 위아래 아이콘 정렬이 안 됐는데 위와 같이 css 속성을 추가해서 정렬했습니다. 또한 서브메뉴 PROJECT와 CAREER 그리고 Footer와 우측하단에 상단으로 올라가는 버튼을 추가했습니다. 틀 안에 내용은 올해 말 ~ 내년 초쯤 정리해서 넣을 생각입니다. 이제 애니메이션과 자바스크립트 작업으로 스크롤하는 것만 하면 대충 끝이나는데, 다 만들고 나중에 리액트로 변환을 할 생각입니다 !

[리액트] #2 영화 검색 만들기 / 컴포넌트 css 적용 [내부링크]

[리액트] #2 영화 검색 만들기 / 리액트 개발 환경 포함 Genres 추가하고, Movie.js에 데이터를 더 연결시켰습니다. 마지막으로 CSS로 꾸몄습니다! App.js App.css Movie.js Movie.css

나이키 덩크로우 바시티그린 구매 후기 [내부링크]

안녕하세요. 최근에 크림에서 덩크로우 바시티그린을 구매했습니다. 정말 지금까지 드로우를 많이 했지만, ...

나이키 덩크 로우 챔피언쉽 레드 구매 후기 / 덩크 사이즈 추천 [내부링크]

안녕하세요! 오늘 나이키 덩크 로우 챔피언쉽 레드가 도착했습니다. Kream에서 구매하였습니다. 요런 빨간 나이키 상자에 담겨서 옵니다 ~ 흰빨 조합인데, 유니버시티 레드 제품에서 흰색과 빨간색 위치만 바뀌었다고 보면 됩니다. 나코탭과 크림탭 제거 전이고, 영롱한 빨간색과 깔끔한 흰색의 조합이 너무너무 예쁜 것 같습니다. 신발의 옆 모습인데, 깔꼼하죠? 아웃솔도 빨간색으로 너무 예쁩니다. 신발 인솔 부분도 빨간색 배경과, 형광 오렌지 색 나이키 마크로 이뤄져있습니다. 신발을 받아보니, 생각보다 코디하기가 너무 어려운 것 같습니다. 리셀 가격 차이가 유니버시티 레드와 꽤 나서 구매한건데 살짝 후회도 되네요 ㅠㅠ 하지만, 챔.......

[로에베] 로에베 아이레 향수 후기 / 마르지엘라 향수 시향 후기 및 세포라 방문 [내부링크]

안녕하세요! 오늘 은행에 갔다가 을지로 근처로 큰 누나 퇴근 길을 픽업하러 갔습니다! 생각보다 서울에 일찍 도착해서 누나 직장 끝나기 전까지 뭐할까 고민하다가 평소에 관심있었던 마르지엘라 향수를 사기 위해서 &#x27;세포라 영플라자점&#x27;에 갔습니다. 넘 좋은 날씨 바로 세포라로 직진했습니다. 가장 관심있는 마르지엘라 향수코너로 갔습니다. 시향해본 향수는 &#x27;재즈클럽&#x27;, &#x27;레이지 선데이 모닝&#x27;, &#x27;파이어 플레이스&#x27; 총 3개 입니다. 먼저 마르지엘라 재즈클럽 향수는 가장 기대하고 맡아봤는데, 솔직히 너무 실망했습니다. 정확히 표현하자면 택시 불렀을 때, 옛날 차종인 택시를 탈 때 나는 담배냄새.......

[Spring] IoC (Inversion of Control) / DI (Dependency Injection) [내부링크]

[Spring] IoC (Inversion of Control) / DI (Dependency Injection) IoC란? 스프링에서 일반적인 자바 객체를 new로 생성하여 개발자가 관리 하는 것이 아닌 Spring Container에 모두 맡긴다. 즉 개발자에서 프레임워크로 제어의 객체 관리의 권한이 넘어갔음으로 &#x27;제어의 역전&#x27; 이라고 한다. DI 란? 객체를 사용하기 위해 주입을 받는다. DI 장점 - 의존성으로 부터 격리시켜 코드 테스트에 용이하다. - DI를 통하여, 불가능한 상황을 Mock와 같은 기술을 통해 안정적인 테스트가 가능하다. -코드를 확장하거나 변경 할 때 영향을 최소화 한다. (추상화) - 순환참조를 막을 수 있다. DI 코드 예시 (자바프로젝트) IEncoder.java Encod.......

[자바 알고리즘] DFS 뿌시기 [내부링크]

[자바 알고리즘] DFS 뿌시기 1. 먼저 DFS에서 맵에다가 간선 연결 표시를 할 때 그래프는 대각선 대칭이다. 2. dfs 함수는 재귀함수이다. 1. 일반적인 방법으로 DFS 구현하기 2. Stack으로 DFS 구현하기

[Spring] Validation [내부링크]

Validation 이란? 프로그래밍에 있어서 가장 필요한 부분이다. Java에서 null 값에 접근할 때, null pointer exception이 발생함으로, 이런 부분을 방지하기 위해 미리 검증하는 과정이다. 1. 검증해야 할 값이 많은 경우 코드의 길이가 길어진다. 2. 구현에 따라 달라지지만 Service Logic과 분리가 필요하다. 3. 흩어져 있는 경우 어디에서 검증을 하는지 알기 어려우며, 재사용의 한계가 있다. 4. 구현에 따라 다르지만, 검증 Logic이 변경되는 경우 테스트코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생 할 수 있다. 1. gradle dependecies implementation(&#34;org.springframework.boot:spring-boot-starter-validatio.......

[Spring] Custom Validation 만들기 [내부링크]

스프링에서는 @annotation 어노테이션을 이용할 수가 있다. 코딩하다가, 자신이 원하는 어노테이션이 없으면 모든 파일에 어노테이션을 직접 다 써야한다. 이런 문제는 코드가 길어지고, 코드 수정할 때 시간이 많이 들고, 오류 발생 확률이 높아진다. 이런 문제를 해결하기 위해서 Validation을 커스텀으로 만들어서, 그걸 소스코드에서 어노테이션으로 불러오면 된다. annotation - yearMonth.java controller - ApiController.java dto - User.java validator - YearMonthValidator.java

[웹 사이드 프로젝트 계획서] #1 전기차 인프라 관련 SPA 서비스 만들기 - 프로젝트 계획서 [내부링크]

[웹 사이드 프로젝트 계획서] #1 전기차 인프라 관련 SPA 서비스 만들기 - 프로젝트 계획서 목차 1. 프로젝트 구성 2. 구현 방법 1. 프로젝트 구성 안녕하세요. 최근에 웹 사이드 프로젝트로 전기차 인프라 관련 SPA(Single Page Application) 서비스를 계획했습니다. 서비스 내용으로는 다음과 같습니다. 1. 충전소 위치 및 충전 현황 (API 연동) 2. 차종별 전기 차 사용법 (구현 미정 / 커뮤니티 크롤링으로 연동 예정) 3. 보조금 현황 4. 유저간 차량별 커스텀 공유 5. 정비업소 사이드 프로젝트로 시작했지만, 팀원들과 끝까지 잡고, 기능을 구현하고 싶습니다 ㅠㅠ 특히나 4번 5번은 업체 연동을 하면 수익으로도 이어질 수 있다고 생각했기.......

[자바 알고리즘] BFS 뿌시기 [내부링크]

BFS (Breath First Search) 너비우선탐색 시작 정점으로부터 가까운 정점을 방문하고 점점 멀리 있는 정점을 순차적으로 탐색하는 알고리즘이다. 특징으로는 DFS와 다르게 재귀적으로 동작하지 않고, 큐(Queue)를 이용하고, 가까운 정점의 순서로 탐색한다. 인접행렬로 구현한 BFS 입력 4 5 1 3 1 2 1 3 1 4 2 4 3 4 출력 1 2 3 4 DFS, BFS 둘다 코테 필수 문제니깐 꼭 이해하고 암기하세요!! 링크드리스트로 푸는 방법도 있는데, 저는 그냥 인접행렬 방법으로 풀었습니다.

칙칙 뿌릴 때마다 기분이 좋아지는 향수, 나만의 컬렉션 [내부링크]

안녕하세요. 향수를 너무 좋아해서 모은지 벌써 1년이 넘었습니다. 첫 향수로 구매한게 아마 올리브영에서 20살 때 구입한 &#x27;페라리 라이트에센스&#x27; 였습니다. 냄새가 좋아서 구매한 첫 향수였는데, 아마 그때부터 하나씩 모았던 것 같아요. 이제는 나갈 때 웬만하면 꼭 뿌리고 가는 편인데, 오늘은 제가 지금까지 모은 향수를 소개시켜드리겠습니다~ 순서는 뒤죽박죽이에요. &#x27;딥디크 오데썽&#x27; 입니다. 큰누나가 한참 기분 안 좋았을 때, 제가 기분 풀라고 선물로 준 향수입니다. 그때 백화점에서 시향하면서 너무 좋다고 생각했습니다. 중성적이면서 산뜻하면서 은은하게 식물원에 가면 날 것 같은 냄새가 납니다! 호불호도 거.......

[개발일기 #2] 7월을 회고하며 올리는 개발 일기 (+ 복학 후 스터디 정보) [내부링크]

7월을 회고하며 올리는 개발 일기 1. 공부 2. 스터디 1. 공부 이번 달은 여러가지 분야를 찍먹해봤다. 앱, 웹, 클라이언트 이것저것 찍먹 해봤는데, 그냥 나한테 맞는 분야는 웹 분야 같다. 최근에는 자바를 다시 복습하고, 자바의 프레임워크인 스프링을 공부하고 있다. 장고를 공부했을 때랑은 다른 느낌이고, 개인적으로는 더 어렵다고 생각했다. 인텔리제이도 처음 접했는데, 이클립스에 비해서 너무 편하고 충돌도 적은 것 같다. 앞으로는 이클립스 보다는 유료지만 더 좋은 인텔리제이를 사용할 것 같다. 또한 CS지식이 아직은 부족해서, 8~9월부터는 CS강의를 유튜브랑 책을 통해서 공부할 생각이다. 또한 지금 전기차 관련 플랫폼 서비스.......

[파이썬] pip install 액세스 거부 오류 해결방법 [내부링크]

파이썬 pip install 입력시에 엑세스 거부가 뜨는 경우가 있습니다. 이럴 때 해결방안을 말씀 드리려고 합...

[주연테크 V28UE] 맥북 에어 M1 - 4K 외장모니터 추천 (충전 및 연결 가능 C포트 , IPS, 27인치, 60Hz) [내부링크]

안녕하세요. 맥북 에어 13인치로 집에서 코딩을 하다보니 화면이 작아서 목도 아프고 눈도 아파서 큰 모니...

맥북 에어 M1 스페이스그레이 구매 후기 [내부링크]

안녕하세요! 어제 맥북 에어 M1 스페이스그레이 기본형 모델을 구매하였습니다. 원래 졸업하고 사려고 했...

맥북에어 m1 사용기 및 장단점 [내부링크]

이번 포스팅으로 맥북을 살까말까 고민하시는 분들을 위해 사용기와 장단점을 쓰려고합니다. 맥북 사용 후...

[웹 개발] 유용한 사이트 모음 [내부링크]

1. Color Tool 색 조합을 알아서 해줘서 편리하다. https://www.material.io/resources/color/#!/?view.l...

[자바스크립트] 노마드코더 바닐라JS 2주 챌린지 신청 [내부링크]

안녕하세요. 요즘 웹 공부를 정말 열심히하고 있습니다. 저번주에 노마드코더님이 진행하시는 바닐라JS ...

Visual Studio 기본적인 단축키 정리 [내부링크]

코딩의 효율을 높이기 위한 Visual Studio 기본적인 단축키 정리 코드 정렬하기 : * Ctrl + A 전체선택...

2021Ver.메이저 IT 기업별 웹 개발자 기술스택 (Front-End, Back-End) [내부링크]

주요 IT 기업별 웹 개발자 기술스택 ++ 표시는 우대사항 정확한 기술스택은 기업별 해당 분야마다 다르긴...

프론트엔드 개발자가 보면 좋을 유튜버와, 각종 사이트 모음집 [내부링크]

프론트엔드 개발자가 보면 좋을 유튜버와, 각종 사이트 모음집 유튜브 강의 + 개발자 블로그 + 강의 사이트...

5대 CS면접 지식 &lt;운영체제, 알고리즘, 자료구조, DB, 네트워크&gt; 강의 및 서적 정리 [내부링크]

IT 직군으로 취업할 때 보통 기술 면접을 보게됩니다. 미리 준비하는 차원에서 자료 조사를 했는데, 도움...

[Spring] Response 내려주기 [내부링크]

Response 내려주기 controller 패키지 안에 ApiController.java controller 패키지 안에 PageController.java dto 패키지 안에 User.java resource - static 폴터에 main.html

[APC 에코백] 아페쎄 21FW COCSX IAI 데님 다니엘라 토트백 후기 [내부링크]

안녕하세요. 최근에 에코백을 하나 사려고 많이 알아봤습니다. 후보는 &#x27;COS, APC, 프라이탁&#x27; 위에 브랜드였습니다. 사실 처음에 아페쎄 다니엘라와 코스 에코백은 많이 흔해서 길 가다가 너무 많이보여가지고 프라이탁에서 사려고 했었습니다. 근데 프라이탁 에코백은 무슨 30만원씩이나 해서 눈물을 머금고 아페쎄 제품으로 구매했습니다. 나중에 돈 모아서 꼭 프라이탁꺼 장만해야겠습니다 ㅠㅠ 택배 개봉은 항상 설레는 것 같습니다! 박스 안에서 꺼내면 이렇게 아페쎄 에코백이 바스락 비닐에 둘둘 쌓여있습니다. 디자인과 크기는 정말 근본이라고 생각하는데, 흔하다는 점이 너무 아쉽습니다 ㅠㅠ 예쁜만큼 다들 많이 구매하는 것.......

[우포스 쪼리] 우포스 신발 정가에 구매하는 방법 [내부링크]

안녕하세요. 여름 한정으로 우포스는 국민 쪼리가 됐는데요. 지금 우포스 쪼리를 구하고 싶어도, 무신사나 공홈가도 매물이 없고 나오는 것은 배송비 후려치기 업체 혹은 해외배송인데도 가격이 높은 제품밖에 없어요. 주변 친구들도 우포스를 사고 싶은데, 못 사는 친구들이 많아서 이번에 우포스 정가에 빠른 배송으로 받을 수 있는 방법을 알려드리려고합니다. 사실 정석적인 방법이지만, 공홈에서는 항상 품절이 떠있습니다. 특히 황금사이즈인 265와 280은 정말 다른 색상도 찾아보기 힘든데, 반드시 구매할 수 있는 팁을 알려드리겠습니다! 매일 오전 11 ~ 12시에 우포스 공식사이트에 쪼리가 소량씩 재입고가 됩니다. 근데 보통 11시 00분.......

훌랄라치킨 참숯핫바베큐 후기 [내부링크]

최근에 훌랄라에서 치킨 기프티콘을 받았습니다여행 가기 전날 친구들이랑 치킨이 너무 먹고 싶어서요걸 썼습니다저희가 시킨건 훌랄라치킨 참숯핫바베큐입니다훌랄라 정말 좋아했는데 요즘 매장이 별로 없어가지고ㅠㅠ치킨 박스가 벌써부터 매워보여요박스를 오픈해보면?이렇게 맛있어보이는 치킨이 나옵니다이거 먹자마자 정말 다 감탄했어요단짠과 매콤의 조합이 최강이에요너무 맵지도 않고, 감칠맛나서 치밥하기 정말 좋을 것 같아서 바로 햇반을 돌렸습니다옛날에 지코바치킨이 치밥으로 떴었는데지코바치킨보다 치밥으론 소스 자체가 넘사로 맛있었어요조금 먹다가 따로 산 눈꽃 치즈를 한 뭉치 뿌리고전자레인지에.......

#5 헬스 여섯달차 후기 (2020.10.14 - 2020.11.10) [내부링크]

안녕하세요벌써 헬스 6개월차가 됐습니다지난달 상태2020.10.13체지방량 20.9kg골격근량 36.9kg이번달 상태2020.11.09체지방량 18.6kg골격근량 37.1kg지난달에 비해서체지방 -2.3kg골격근량 +0.2kg이번달에는 한달동안 큰 변화가 일어났습니다!매달 인바디 재는날 사진도 같이 찍는데,눈으로 봤을 때 몸이 조금씩 선명해졌고,프레임이 조금 더 넓어졌습니다.다이어트 하면서 가장 좋은 건 확실히몸이 가벼워졌다는 느낌과 안 맞던 바지들이 다 잘 들어간다는 것입니다!또 주위 사람들이 오랜만에 보면 다들 몸이 좋아졌다고 해줘서 기분도 좋아요 크크근 6개월을 운동 하면서처음에는 몇 개 못했던 팔굽혀펴기도 이제는한번에.......

백암 우동 맛집 [솔솔우동] 후기 [내부링크]

안녕하세요최근에 용인 처인구 백암면에 위치하고 있는솔솔우동에 다녀왔습니다!정말 우동 좋아하시는 분들은 환장하고 먹을만큼맛있었습니다사진이 왜 이거밖에 없는지 모르겠지만입구에 스파이더맨이랑 엘사가 반겨줍니다들어가면 1층에 뻥튀기와 커피머신이 있습니다.밥 먹으로 2층으로 기기계단에 뭘 이것저것 두시고 노래도 힙했어요 ㅋㅋㅋㅋ이건 메뉴판인데 저희는 닭튀김우동과연어 샐러드를 주문했습니다맛집이라 그런지 사람이 없는 시간인데도테이블이 많이 차있었어요먼저 이건 연어샐러드 구성입니다.빵, 생크림, 연어샐러드정말 여기 샐러드가 제일 맛있었어요ㅠㅠ드레싱도 너무 맛있고, .......

한참 늦은 컴활 1급 실기 독학 합격 후기 및 공부법, 꿀팁 [내부링크]

안녕하세요2월쯤 컴활 1급 필기시험에 합격을 하고,5월에 훈련소에 들어가서그 전까지 놀고 나와서도 놀다가최근에 실기시험을 보고 합격을 했습니다.8월쯤부터 공부를 제대로 시작하고9월말에 시험을 보려 했는데, 코로나 때문에수험장이 한달 뒤까지 가득 찬 관계로11월에 시험을 신청하게 됐습니다.어찌보면 넉넉히 3달동안 공부를 할 수 있어서좋았던 것 같기도 해요 ㅋㅋ공부를 하면서 정말 화가 많이 났습니다ㅠㅠ개인적으로 전공보다 더 귀찮고 외울게 많았어요..너무 어려워서 시나공 책을 5회독해서 문제랑 답을 외울만큼 공부를 했는데요.오늘은 조금 더 효율적으로 공부할 수 있는 방법과꿀팁들을 말씀해드리려고 합니.......

롤러코스터 타이쿤 3 컴플리트 에디션 정품 무료로 받기 / ~2020.10.6 AM12:00 [내부링크]

안녕하세요오늘은 롤러코스터 타이쿤3 컴플리트 에디션 무료로 받는 방법을알려드리려고 합니다!최근 출시한 게임이고 20,500원 짜리 게임인데20년 10월 6일 오전 12시까지 무료로 받을 수 있습니다!무료로 구매만하고 플레이는 추후에 해도 되니나중이라도 해보고 싶으신 분들은 미리 등록만 해놓으시면 됩니다~무료 구매 및 설치 방법1.https://www.epicgames.com/store/ko/product/rollercoaster-tycoon-3-complete-edition/home위에 링크로 들어갑니다2.위에 사진에 동그라미 쳐 놓은 버튼을 클릭합니다.3.에픽게임즈 회원가입 및 로그인을 합니다.4.로그인을 진행하면 위와 같은 창이 뜨는데 주문하기 버튼을 눌.......

블로그 노출하기#1 다음 검색등록 방법 [내부링크]

안녕하세요블로그 통계를 보면 검색어에 의해 들어오는 경우가 많습니다!보통 네이버 검색을 통해서 많이 오는데오늘은 다음에서 자신의 블로그를 노출 시키는 방법에 대해써보려고 합니다확실히 이 방법을 통해 조회수가 많이 늘어나실 거에요1. 검색창에 &#34;다음 검색등록&#34; 검색하거나 아래 링크를 탑니다2. 신규등록하기 클릭 후 아래 사진과 같이 클릭 및 블로그 URL 지정하기3. 확인 누르고 동의 누르면 끝!최대 5일 걸린다고 하네요블로그 글의 심사를 거친 후에 검색에 노출된다고 하는데,이말은 즉 기준에 부합되지 않으면 불허가 난다는 뜻입니다.그리고 처리 결과는 별도로 알려주지 않는다고 하네요!아무쪼록 블.......

블로그 노출하기#2 구글 검색등록 방법 [내부링크]

이번에는 네이버 블로그 글을구글 검색에 노출시키는 방법에 대해 써보려고 합니다.1. 아래 링크를 들어갑니다2. 회원가입하고, 네이버 계정 연동시키기3. 네이버 블로그 검색등록 클릭 후 RSS등록 클릭1일 1회 무료로 이용 가능합니다!#키자드 #구글검색등록 #블로그 #블로그검색등록 #블로그조회수

애플워치SE 구매기 및 애플워치 입문 / 애플워치 6세대 와 SE의 차이점(3세대 비교 추가) [내부링크]

안녕하세요저번부터 계속 애플워치를 구매할까 고민했는데요최근에 애플워치SE와 6세대가 나오면서SE의 가격을 보고 바로 질렀습니다!일단 구매용도는 시계가 필요했고, 각종 건강 기능이 많다는 점과아이폰과 연동성이 너무 좋아서 구매했습니다.사실 SE에서 조금 더 보태면 6세대를 살 수 있는데,6세대에만 있는 기능이 굳이 필요 없어서 SE를 샀습니다.크기는 와 색상은 정말 고민했는데, 시중에 시계들을 보면보통 38~40mm인 경우가 많아서 일단은 저도 40mm로 살 생각입니다. 줄질하기에 실버가 좋을 것 같아서 실버로 샀습니다.이거는 개인차가 크니 후기를 검색하셔서 꼭 보세요!이 포스팅에서 애플워치 6세대와 SE의 차이점 및.......

애플워치SE GPS 실버 44mm 언박싱 및 후기 / 애플워치 싸고 빠르게 사는 방법 [내부링크]

안녕하세요오늘 드디어 애플워치SE GPS실버 44mm 제품을 구매하였습니다!와 사자마자 빨리 뜯어보고 싶어서죽는줄 알았어요.조심히 모시고 집으로 데려가면서사진을 찍었답니다~~애플 제품답게 패키징이되게 깔끔하게 되어 있습니다.언박싱을 하면 이렇게 두가지의 제품이들어있습니다.바로 본체가 있는 패키징과기본 실리콘 스트랩 패키징이 있습니다!실리콘 스트랩 패키징에는 연결 줄 2개(작은사이즈, 큰사이즈) 와결합 줄 1개가 들어있어서, 손목에 맞게 고르셔서 착용하시면 됩니다.위에 있는 패키징을 오픈하면이렇게 애플워치 본체와 충전기 그리고 설명서가 있습니다.애플워치 본체에 있는 커버를 제거하고기본 제공.......

#4 헬스 다섯달차 후기 (2020.09.14 - 2020.10.14) + 중간점검 및 식단 [내부링크]

안녕하세요헬스 5개월차가 됐습니다먼저 지난달 상태입니다.2020.09.14체지방량 23.5kg골격근량 35.8kg아래는 이번달 상태2020.10.13체지방량 20.9kg골격근량 36.9kg지난달에 비해체지방량 -2.6kg골격근량 +1.1kg몸무게 감량 총 14kg라는 결과가 나왔습니다.2020.6.14 (헬스 신청)체지방량 30.5 kg골격근량 35.9 kg처음 헬스 신청한 날에 비하면체지방량 9.6kg 감소골격근량 1kg 증가.몸무게 감량 총 14kg지난달 목표인 체지방량 5kg은 못 뺐지만 근손실 없이체지방량 뺀걸로 만족하겠습니다ㅠㅠ식단이 정말 중요하기에요즘은 식단을 바꿨습니다.하루에 단백질 120g을 목표로 잡았습니다!위에 사진은 아침 대용으로 먹는 것.......

애플워치 여러가지 스트랩 비교 [내부링크]

이번 포스팅에서는 애플워치 스트랩 비교를해보려고 합니다~~참고로 학생이라 돈이 읍서서 쿠팡에서 샀습니다ㅠㅠ먼저 이건 메탈 스트랩인데,보통 사면 시계줄 줄이는 키트도 줘서 쉽게 조절하였습니다.이건 정말 어디 나갈 때 거의 메인으로 쓰는데메탈이 최강 간지입니다.이건 가죽스트랩인데일단 샀지만 거의 안 써요 ㅋㅋㅋㅋ이건 애플워치 살 때 안에 들어있던애플 정품 실리콘 스트랩입니다.이거 정말 물건이에요.운동하거나 수면추적할 때 끼는데 너무너무 편합니다!이건 밀레니즈루프 입니다.되게 예쁘죠? 이것도 정말 물건이에요데일리, 운동 둘다 가능하고 자석으로 되어 있어서너무 편해요!!#애플워치 #애플워치se .......

아이폰12pro 그래파이트 언박싱, 실물 + 싸게 사는 방법 [내부링크]

안녕하세요오늘은 아이폰 언박싱 글을 올리겠습니다!박스는 이렇게 생겼는데, 전작들에 비해구성품이 적어서 그런지박스의 두께가 되게 얇았어요영롱한 비닐과 패키징박스를 열면 이렇게 C to 라이트닝 케이블과그 위에 설명서와, 유심핀 그리고애플 스티커가 있습니다!그래파이트 색상 보이시나요진짜 너무 예뻐요ㅠㅠ실물이 딱 이 사진과 비슷해요옛날 맥북 스페이스그레이 색상과도 굉장히 비슷하기도 해요옆에 라인도 이번에는 동글지 않고, 예쁘게 각져 나왔어요정말 퍼시픽블루를 가장 기대했지만,그래파이트 색상이 가장 예뻤고,예상외로 실버와 골드도 너무 예뻤습니다!개인적인 예쁜 순으로 나열하면그래파이트, 실.......

애플워치 워치페이스 변경 clockology로 쉽게 하기, 워치페이스 공유 [내부링크]

안녕하세요.애플워치를 산지 이제 3~4주가 되었습니다.이번에는 애플워치 워치페이스 변경하는 방법에 대해포스팅하겠습니다!애플워치에 기본으로 워치페이스들이들어가있는데,질리고 예쁜게 많지 않기 때문에커스텀 워치페이스를 받아서 적용을 해볼거에요.일단 적용 방법을 보시기 전에 클락콜로지의 장단점에 대해 말씀드릴게요.장점은원하는 워치페이스를 설정 가능하고,사용자들과 공유하면서 자신이 원하는대로 만들거나 이용할 수 있어요.단점은배터리 소모가 조금 더 빠르고,정식 페이스가 아니고 앱을 통해 페이스를 보는 형식이기 떄문에 불편할 수 있습니다. (중간에 어플이 꺼지면 다시 어플을 켜야함)clockology 적용.......

대천 우정 여행기 [내부링크]

안녕하세요최근에 친구들이랑 1박2일 대천 여행을 갔습니다벌써 제 친구들 거의 다 전역하고두명만 내년에 전역하네요ㅠㅠ 너무 빠르다친구차에서 씬나는 노래를 들으면서가는중저희는 차 안에서 자거나 조용하면정신 차릴 때까지 서로 괴롭혀서 전날 늦게 잤음에도하이텐션으로 출발을 했습니다 크크중간에 행담도 휴게소에 들려서노브랜드 햄버거를 처음 먹어봤는데와 정말 가격이 엄청 싼데 맛은 브랜드 버거랑 비슷했어요뭘 먹었는지는 까먹었는데 콰트로치즈버거 비슷하더라고요우걱우걱 다 먹고 다시 대천으로 향했습니다!대천에 도착했는데 날이 흐리더라고요하지만 저녁에 조개구이 먹을 생각으로1820펜션에 짐을 내.......

에어팟 프로 구매 후기 + 정품등록 방법 [내부링크]

안녕하세요!최근에 에어팟 1세대가 망가져서에어팟 프로를 구매 했습니다.1세대에 비해 음질 개선과, 무선충전 그리고 노이즈캔슬링 등등 많은 기능이 추가 됐다고 합니다이렇게 깔쌈하게 박스가 오는데요박스를 열면 이어팁과, 충전 케이블, 에어팟 프로가있습니다이어팁에는 s, m, l 사이즈가 있습니다에어팟 프로를 연결 시키면위와 같이 설명이 뜹니다1세대 쓰다가 프로 쓰니깐에어팟 프로 뚜껑 열자마자 바로 연결 돼서 좋았어요에어팟 프로 뚜껑을 열명위와 같이 작은 콩나물이 나타납니다!위 에어팟 프로아래 에어팟 1세대어떤가요 크기 차이가 많이 나죠?ㄴㅇㄱ 두둠이건 박스 차이입니다사용하고나서.......

논산훈련소 준비물 총 정리 [내부링크]

++ 20200609기존 준비물에 추가 준비물 그리고 필요 없는 것도 써 놨습니다!안녕하세요드디어 내일 훈련소에 들어갑니다논산훈련소에서 필요한 것들을 친구들의 도움을 받아서 싹싹 다 준비해봤습니다!저처럼 잘 모르시는 분들은 이 글 보시면 많이 도움이 되실 거에요먼저 준비는 이렇게 했습니다(무조건 화장품류는 플라스틱이나 튜브형으로 된 걸로 사셔야합니다)민증, 나라사랑카드(없으면 일반 카드), 입영통지서로션, 썬크림, 립밤헤어 및 바디샴푸전자 시계노트라이트펜 (정말 쓸데 없어요. 쓸 일이 없어요), 일반 볼펜, 유성매직편지지, 우표, 편지봉투면봉(총구였나 뭐 닦을 때 좋대요)물집방지패드 (없어도 상관 없어요.......

논산 훈련소 수료 후기 및 일기, 꿀팁, 준비물 총 정리 [내부링크]

안녕하세요!2020년 5월 7일부터 논산 훈련소에서 훈련을 받고6월 4일에 수료를 했습니다.훈련소를 앞 둔 사람들을 위해논산훈련소 준비물과 꿀팁, 제가 썼던 일기장을 통해간접적이지만 미리 알고 가면 좋을 거라 생각해서이 포스팅을 써봅니다.준비물 - 수료 후기 및 일기 - 일상 - 꿀팁순으로 작성할게요.먼저 논산 훈련소 준비물은 아래 링크에 싹 정리 해 놨습니다!https://blog.naver.com/sosow0212/221948827590아래에는 제가 논산훈련소에서 작성했던일기인데, 간략하게만 써볼게요첫째 주 : 동화기1일 (목요일) - 훈련소에 들어와서 2시가 되자마자 군인의 통제하에신검장으로 이동해서, 코로나 관련 설문을 받고, 체온.......

카퍼릿지 화이트 진판델 와인 후기 [내부링크]

안녕하세요최근에 다이어트 하는데마트에서 와인 코너를 보니 와인이 마시고 싶어서카퍼릿지 화이트 진판델 와인을 샀습니다참고로 이 와인은 하우스 와인으로미국에서 15년 이상 하우스 와인으로 사랑받는다고홍보를 하네요!가격도 싸고 맛있으니미국에서 흔하고 대중적인 와인이 된 거겠죠?참고로 가격은 마트에서 5000원대에 샀습니다엄청나게 싸죠?이렇게 로즈골드 색으로 예쁘게 생겼습니다캘리포니아에서 생산 되었고,알콜 도수는 7.5도 입니다이 와인은 따개가 없고, 페트 맥주처럼돌려서 따는 와인입니다영롱해라~이 와인의 맛은 달달하면서 시큼했습니다와인이 써서 잘 못 마시는 분이 마시면쓰지도 않고, 달달해서.......

랩노쉬 푸드 쉐이크 쿠키 앤 크림 맛 후기 (올리브영) [내부링크]

안녕하세요이번주에 간단하게 식사를 하려고, 올리브영에서랩노쉬 푸드 쉐이크 쿠키 앤 크림 맛을 샀습니다!되게 여러가지 맛이 있었지만,저는 가장 맛있어 보이는 이걸로 샀습니다이렇게 생겼습니다.안에 가루가 있고, 거기에 찬물을 선에 맞춰 넣고흔들어서 먹는 방법인데맛은 개인적인 생각이지만 쿠키앤크림 아이스크림을녹인 맛인데 거기서 살짝 밍밍한 수준?그냥 한끼 식사로 먹을만 했어요가격은 올리브영에서 3~4000원 했던 걸로 기억합니다먹고나면 포만감도 느껴지니 식사 할 시간이 없고, 정말 바쁘신 분들은이거 드시면 괜찮을 것 같아요#랩노쉬#Labnosh#푸드쉐이크#랩노쉬푸드쉐이크#올리브영푸드쉐이크#올리브영

사회복무요원 (공익) 군 적금 신청 방법, 이자 등등 총정리 - 장병내일준비적금 [내부링크]

안녕하세요최근에 사회복무요원으로 일을 하면서군 적금을 하는게 좋다고 해서, 어떻게 하는지 정리를 해봤습니다.저도 그렇고,아직 이런 거에 대해선 잘 모르시는 분들이 많을 거라 생각해서1. 적금 신청 방법2. 각 은행 별 금리3. 얼마가 모이는지순서로 포스팅 하겠습니다~~- 적금 신청 방법사회복무요원이 적금을 신청하는 방법은 아래와 같습니다.1. 사회복무포털 사이트에 들어갑니다.2. 로그인3. 아래 사진처럼 클릭 (복무지원 - 장병내일준비적금자격확인서 순)4. 아래 사진 처럼 클릭 (신규 - 성명 돋보기 클릭 후 이름 입력 - 등록)여기까지 하셨으면,밑에 등록하신 정보가 있으실 거에요.군 적금을 2개 신청 하실 분.......

#1 헬스 두달차 후기(2020.05.07 ~ 07.15) [내부링크]

안녕하세요최근에 2020.05.07 ~ 06.04 까지 군대 훈련소를 다녀왔습니다.작년 11월부터 훈련소 가기 전까지 거의 매일 친구들과 술을 마셔서살이 확확 쪘습니다 ㅠㅠ역대 최고 몸무게를 달고 입대를 하는 동시에 살을 빼기로다짐을 하고, 지금까지 운동을 했습니다!먼저 5.7 ~ 6.4 훈련소를 갔다오고6kg이 빠졌고, 훈련소에 나와서 며칠동안은친구들이랑 술을 마시고 6.14일날 헬스를 신청했습니다.6.14일에 헬스장에서 인바디를 측정하고충격적인 결과를 보고 살을 더 빼기로 결심했습니다 ㅠㅠ그럼 한달동안(6.14 ~ 7.15) 운동 한 결과를 볼까요?5.7 ~ 6.47kg 감량 (아마 근육과 체지방 둘다 빠졌을 거에요)6.14 (헬스 신청.......

마이프로틴 all in one perform blend, pre workout blend 후기 [내부링크]

안녕하세요벌써 운동한지 두달이 다 되어갑니다!같이 운동하는 친구의 추천으로 마이프로틴에서 단백질 쉐이크랑 부스터를 샀습니다산지 3주정도 된 것 같은데 어떤지 말씀드리려고 해요자 먼저 이건 단백질 쉐이크입니다!ALL IN ONE PERFORM BLEND 초콜렛 스무디맛이에요운동 끝나고 30분 후, 자기전에 먹고있습니다근육을 키울려면 영양소를 잘 채워줘야하는데먹는 식단으로 부족한 단백질을 채워줄 수 있는 그런 제품입니다초콜릿 스무디 맛인데 물에 타먹으면 정말 제티 맛이 나서 맛있습니다역한 맛도 없고 느글거지도 않아서 다른 프로틴이 안 맞으시면 이거 시도해보는 것도 괜찮다고 봐요위에는 마이프로틴 pre .......

#2 헬스 세달차 후기(2020.07.15 ~ 08.11) [내부링크]

안녕하세요벌써 다이어트한지 3개월정도가 지났습니다.훈련소 한달 갔다오고헬스를 두달간 했는데, 시간이 정말 빠르네요ㅠㅠ먼저 지난달 상태입니다.2020.07.13체지방량 26.5kg골격근량 36.2kg오늘 인바디 측정 결과는2020.08.11체지방량 22.8kg골격근량 37.3kg지난달에 비해체지방량 3.7kg 감소골격근량 1.1kg 증가체지방량이 조금 미달이지만 지난달 목표를 이뤘습니다!약 한달동안은 많은 변화가 일어난 것 같습니다.7월 중순까지는 헬스를 하긴 하지만, 무산소 위주로 주 3회정도 하고,식단도 군것질과 술 마시는 날이 좀 있었는데,7월 말부터는 술자리에서도 정말 조금 마시거나 안 마시고,음식도 더욱 조심히 먹었습니다.......

#3 헬스 네달차 후기 feat.코로나 (2020.08.11 ~ 09.14) [내부링크]

안녕하세요헬스 4개월차가 됐는데요먼저 지난달 상태입니다.2020.08.11체지방량 22.8kg골격근량 37.3kg현재2020.09.14체지방량 23.5kg골격근량 35.8kg지난달에 비해체지방량 +0.7kg골격근량 -1.5kg몸무게 감량 총 13kg코로나 때문에 헬스장이 닫아서 약 3주간 운동을 못 했는데살은 확 찌고, 근육은 쭉 빠져버렸네요ㅠㅠ헬스장 닫고 홈트도 안 하고 맛있는걸 너무 먹고 그래서 그런가봐요어제 충격의 인바디 결과를 보고 운동을 다시 열심히 하기로 결심했습니다이제부터 방법을 조금 다르게 하려고 합니다체지방 컷팅부터 제대로 하고, 벌크업해서 몸집을 키울 생각인데 그러려고오늘부터 적어도 주 4일 유산소 40분 + .......

춘천 분위기 좋은 카페 어스17 [내부링크]

춘천 통나무집 닭갈비를 먹고 바로 앞에 있는 카페에 갔습니다어스17 이라는 카페인데 분위기가 너무 좋더라고요일단 실내부터 보겠습니다!이렇게 분위기 좋은 실내에서 카페를 시키고밖에 나가면 정원처럼 되어 있는데 나와서 마셔도 됩니다쓰레기 봉다리처럼 생겼지만 의자입니다 ㅋㅋㅋㅋ여기 앉아서 커피를 마시니 진짜 좋았어요분위기 장난 아니죠??어스17은 춘천에 오셨다면 꼭꼭 가보세요 :)

4명이서 가는 대천 2박3일 우정 여행 계획표 [내부링크]

안녕하세요저랑 친구들이 이제 5월 초에 다 군대를 가서가기 전 우정여행으로 대천 2박3일 여행을 짰습니다대천은 벌써 두번 째네요항상 느끼지만 대천이 바가지 씌우는 집만 안 가면저렴하고 풍족하게 놀 수 있었어요대천 여행 계획 2020 0407 ~ 0410정 이 김 박 예산: 여행 계획 :설거지 ,청소 담당 : 박운전 담당 : 김계획 담당 : 정, 이

에어팟 한쪽 소리 작게 들릴 때 임시 해결 방안 [내부링크]

#에어팟 #에어팟소리 #에어팟1세대 #에어팟오류안녕하세요오늘 에어팟 1세대를 청소했는데소독용 에탄올을 너무 많이 뿌렸는지에어팟 오른쪽 유닛 사운드가 작게들리네요왼쪽은 8이라면 오른쪽은 2정도 ㅠㅠ그래서 재부팅도 하고 초기화도 해봤는데해결이 안 돼서 다른 방법을 찾아봤습니다1. 먼저 설정을 눌러서 들어가줍니다.2. 손쉬운 사용을 클릭합니다.3. 오디오/시각 효과에 들어갑니다.4. 밸런스에서 자신에게 맞게 조절합니다.이렇게하면 임시적으로 조절은 되지만소리가 작은쪽 유닛 기준으로 사운드가 조절 되어기존보다 살짝 작게 들려요그래도 답답한 거 보다는 이렇게 해서라도 들으시는게 훨 좋을 거.......

대천 여행기 - 1 [내부링크]

친구들이랑 제가 곧 군대가서 4명이서대천에 다녀왔습니다!대천에 도착하자마자 대천 이마트에서소주랑 안주거리를 샀습니다이마트갔다가 바다에 갔습니다!갈매기 귀엽귀엽사진도 찍고, 바다도 하고 너무 좋더라고요ㅠㅠ바다보고 오락실가서 펀치기계로 점수내기 했습니다1820 펜션에 방을 잡았는데2박3일 4인 10만원으로 싸게 다녀왔습니다원래 에어비엔비로 다른 곳 잡으려고 했는데 어쩌다보니여기로 잡았네요방은 딱 원룸 느낌?덩치 4명이서 지내기에 살짝 좁았지만식기구랑 냉장고 티비 등등 다 있었어요대천 첫번째 날의 하이라이트는대천 해수욕장 앞에있는 조개구이집인 &#x27;섬과 섬 사이&#x27; 였어요!물회랑 조개구.......

대천 여행기 - 2 [내부링크]

전날 소주를 너무 마셔서아침에 친구들과 물 벌컥벌컥 하고 라면으로 해장을 했습니다전날 먹다 남은 부대찌개에 라면넣고 끓였는데정말 얼큰하고 맛있었어요 키키라면을 먹고 죽도로 갔는데 닫아서갱스커피로 갔습니다대천에서 경치가 예쁜 카페라고 유명한 곳이에요주변에 아무것도 없고 외관도 흉가같았어요하지만 계단을 타고 올라가면 이렇게 예쁜징검다리가 나와요여기 정말 경치가 좋아요!실내도 분위기가 좋았어요인테리어도 깔끔하고 음료도 맛있고이렇게 예쁜 경치 보면서 마시니 너무 여유로웠어요역시 유명한 곳은 다 이유가 있나봐요 ㅋㅋㅋㅋ갱스커피 건물 2층에는 그림도 전시하더라고요그래서 한번씩 쭉 둘러.......

경기도 + 용인시 지역화폐 받는 방법 및 사용처 (20만원) [내부링크]

안녕하세요최근에 코로나 바이러스로 인해 경기도에서 지역화폐를주고 있습니다.오늘 이 지역화폐를 어떻게 받고, 어디서 써야하는지 말씀 드리려고 해요.일단 신청 대상은 다음과 같습니다.위에 조건에 해당하시는 분들은https://pay.yongin.go.kr/위에 사이트에 들어가셔서위에 동그라미 친 부분인용인시, 경기도 재난기본소득 지원 신청을 클릭합니다.그후 온라인 신청을 클릭하여 본인확인을 하고 진행하시면 됩니다.주의 하셔야될 게,체크카드, 가족카드, 직불카드, 특수목적카드(아이행복/아이사랑/국민행복/화물차유류카드 등)는 신청 불가라는 조건이 있습니다.신용카드가 없으시다면 다른 방법도 있습니다.위에 사.......

육손곱창전골 구리갈매점 후기 [내부링크]

안녕하세요지난주에 곱창 전골을 먹었습니다구리갈매에 있는 &#x27;육손곱창전골&#x27; 이 곳이 맛있다고 해서 친구랑 호다닥 갔습니다심플한 가게입구메뉴가 많지 않고 있을 것만 있네요저희는 소곱창전골 2인분과 계란말이, 당면, 볶음밥을 먹었습니다!기본 반찬특이하게 곤약볶음 반찬은 처음 먹어봐요!무채나 콩나물무침은 맛있었어요소곱창전골글 쓰면서 보니 또 먹고싶네요ㅠㅠ이건 생크림 계란말이!다른 계란말이랑 달리 식감이 더욱 부드럽고 푹신했고, 단맛이 강하게 났습니다볶음밥도 JMTGR다음에 또 오고 싶은 맛집이었습니다~~

불닭게티 레시피 및 후기 [내부링크]

요즘 SNS에서 아주 핫한불닭게티 (불닭볶음면 + 짜파게티)를 먹어봤습니다먹기 전엔 무슨 맛일지 참 궁금하더라고요일단 짜파게티와 불닭볶음면의 면을 다 넣고보글보글 끓여줍니다면이 다 익었으면 물을 버려주고불닭볶음면과 짜파게티의 스프를 다 넣어줍니다섞은 후 치즈 한 장 올려주고 후레이크 올려주면불닭게티 끝!맛은 정말 맛있었어요매콤한 짜파게티인데, 불닭볶음면 특유의 맛이 잘 어우러져서 최고였어요

라면 마요네즈 후기 [내부링크]

안녕하세요어제 라면에 마요네즈를 넣으면 맛있다고해서바로 도전을 해봤습니다진라면 매운맛을 끓인 후에마요네즈를 넣으면 완성!비쥬얼이 별로였어요맛은 그냥 조금 고소해진정도??인터넷에서 본 것처럼 극적으로 맛있어지는 것도 아니고 그냥 먹을만한 정도였습니다

한성컴퓨터 Gtune GH400 게이밍 헤드셋 후기 [내부링크]

안녕하세요!최근에 게이밍 헤드셋을 구매했습니다배그할 때 쓰려고 구매한건데제품명은 GH400 입니다한성컴퓨터 사이트에서 24900원에 산 것 같아요이 헤드셋 구매 이유는한성컴퓨터의 가성비를 믿었고라이트 유저이기 때문에 저렴한 걸 찾았고가상 7.1채널과 진동을 지원하기 때문에 샀어요일단 이렇게 배송이 옵니다!박스를 까면 이렇게 칙칙하지만기본에 충실한 헤드셋이 나옵니다 :)일단 이 헤드셋은 usb로 연결가능합니다사용하고나서 느낀점은너무 좋았습니다마이크 소리도 되게 깔끔하고 잡음이 없었고,소리또한 사방팔방에서 들려 게임할 때에도정확한 위치 파악이 가능했어요음질도 훌륭하고, 진동도 적당히 있어서.......

디프로젝트 디불 차량용 방향제 클린코튼향 후기 [내부링크]

안녕하세요친구가 생일선물로 사준 디프로젝트의 디불클린코튼향이 드디어 도착했습니다!가운데 불독을 차 에어컨 쪽에 달아놓고 쓰는건데일단 냄새는 저는 별로였어요클린코튼향이 맞긴한데 뭔가 화학약품 냄새가 강하고 머리가 아프더라고요ㅠㅠ근데 구성이나 제품 디자인은 예뻐서 좋았어요다른 향은 좋다고 하니 다음에는 다른 것도 사봐야겠어요!

[청담동 맛집] SMT HOUSE 차이나룸 후기 [내부링크]

토요일날 엄마 생일 식사 기념청담 근처에 SM에서 하는smt house 차이나룸에 갔습니다일단 음식점 바로 앞에 주차장이 있고주차 발렛을 해주시더라고요 (2시간 3000원)들어가서 저희는 아래와 같이 꽃 코스를 시켰습니다이렇게 나오는데 너무 설렜어요상 분위긴데 되게 정갈하죠?딤섬은 깜빡하고 못 찍었고이건 일품두부와 비타민 마늘소스입니다누룽지탕 맛이고 두부가 식감이 좋고소스도 맛있었어요이건 중새우인데왼쪽은 칠리소스, 오른쪽은 깐풍전 깐풍이 더 맛있었어요칠리는 딱 흔한 그런 맛?새우가 크고 튀김도 맛있더라고요탕수육은 원래 다 맛있지만,여기는 특히 더 맛있었습니다튀김이 진짜 바삭하고, 잡내도.......

컴활 1급 필기 시험 신청 방법 및 시험 응시 주의사항 [내부링크]

안녕하세요컴활 1급 필기 시험 신청 방법에 대해 말씀드리려고합니다1. 코참패스 어플을 다운로드한다2. 어플에 들어가서 상시 혹은 정기시험 접수를 클릭한다3. 자신에게 해당하는 시험을 선택한다4. 지역선택을 하고 시험장을 고른 후 시간을 선택한다5. 인적사항과 자격증 사진을 올린다(여기서 올린 사진이 자격증 나올 때 들어가는 사진이됩니다)6. 시험 접수비 19000원을 결제한다7. my 탭에서 응시내역을 확인한다(여기서 수험증 확인 가능)여기까지 잘 따라하셨으면 접수가 됐을 거에요이제 시험 보기 전주의사항에 대해 말씀드릴게요1. 수험증 출력 및 신.......

집중유형분석 : forest-mt 나만의 꽃 만들기 [내부링크]

안녕하세요최근 SNS에서 핫한 집중유형분석forest-mt 나만의 꽃 만들기를 해봤습니다먼저 사이트는http://forest-mt.seekrtech.com/이곳입니다어플도 있는 것 같더라고요!위에 링크를 타면 이런게 나옵니다하면서 노래도 나오기 때문에먼저 듣고있는 음악이 있으시면 끄시고 진행하세요:)질문을 계속하는데 자신한테 맞는 걸 선택하시면 됩니다저는 곰 발바닥형이 나왔는데비슷한 것 같아요 친구들한테 해보라고 했는데 대충 비슷하게 나왔더라고요ㅋㅋㅋㅋㅋㅋ심심풀이로 해보면 좋은 것 같아요!

컴활 필기 1급 합격 후기 및 공부법, 꿀팁 [내부링크]

안녕하세요어제 용인상공회의소에서 컴활 1급 필기시험을 봤습니다시험 결과는 시험 다음날 오전 10시에나와서 바로 확인했습니다벌벌 떨면서 확인했는데 합격했더라고요!짜잔 40미만 과목 없고평균 60점 넘어서 합격제가 필기시험 시작은 3주전에 했고,공부 안한 날도 있고 한 날에는 평균적으로 2시간정도 했습니다!총 공부시간 약 30~40시간1과목만 살짝 알고, 2,3과목은 노베이스였습니다공부법은 시나공 책에 개념만 수박 겉핥기식으로대충 보고 쓱쓱 넘겨서 개념을 3일만에 가볍게 잡고바로 기출문제를 풀었습니다기출 처음 풀었을 때 정말 점수보고 경악했어요엑셀이랑 데이터베이스 쪽은 틀린게 훨 많고평균 40정도.......

[넷플릭스] 블랙미러 시리즈 시즌별 추천 [내부링크]

안녕하세요요즘 다들 넷플릭스 많이 보시죠?저는 최근에 블랙미러 시리즈에 푹 빠져서 시즌5까지 다 봤는데오늘은 그 중에서 재밌었던 것을 추천해드리려고 합니다!- 시즌11. 공주와 돼지공주와 돼지 편에 줄거리는수잔나 공주가 납치되었는데, 범인이 총리에게 수잔나 공주를 걸고 원하는건돈이 아닌, 총리의 존엄을 낮추는 요구를 합니다. 총리의 위치로 할 수 없는 행위를실시간 스트리밍으로 전 국민이 보는 앞에서 총리는 딜레마에 빠집니다.공주와 돼지 편은 시즌1에서 가장 재밌게 봤어요!킬링타임용으로 보기 좋았습니다.- 시즌2 1. 화이트베어화이트베어 편의 줄거리는한 여자가 모든 기억을 잃고 깨어나는데, 멀리서 모든.......

[a3 스틸얼라이브] 플레이 후기 및 직업 추천 [내부링크]

안녕하세요원래 저는 모바일 게임을 전혀 안했습니다!방학이고 입대 전이라 너무 할게 없었는데,친구가 모바일 게임을 하나 추천해줬는데 그게 바로A3 스틸얼라이브 였습니다.A3 : 스틸얼라이브 누구냐 넌?장르는 배틀로얄 MMORPG이고,넷마블의 야심작이라고 하네요!배틀로얄 MMORPG가 뭔지 궁금했는데두 장르가 결합한거더라고요역시 3N의 한 회사인 넷마블 답게 트렌드를 잘 보고 만들었네요A3 스틸얼라이브 : 배틀로얄 모드일단 스틸얼라이브의 배틀로얄 모드에는 개인전과, 3인 1팀총 두가지의 종류로 서로 살아남는게 목표입니다.일단 배틀로얄 장르가 너무 긴장감 넘치고 협력하는게 좋아서저는 배틀그라운드도 많이했는데요. 스.......

커넥츠 서포터즈 1기 수료 후기 [내부링크]

안녕하세요2월에 커넥츠에서 연락이 와서서포터즈 활동을 시작하게 되었습니다커넥츠를 통해 멘토멘티 프로그램을 진행할 수 있어서 괜찮겠다 싶어서 시작하게 되었습니다커넥츠 어플을 통해 누군가 질문을 하면15초 영상으로 답변을 해주는게 저의 역할이었습니다서포터즈 1기라서 가이드라인도 없고 그래서처음에 어떻게 할까 고민을 많이 했어요ㅠㅠ커넥츠 어플을 다운 받아서 들어가면 아래 사진과 같이질문들이 많습니다여기서 저의 인증 분야에서 답변을 할 수 있는데요저는 위에 사진과 같이대외활동, 동아리, it에 대해 답변을 했습니다!총 90개의 영상 답변을 완료하고 수료증을 받으니되게 뿌듯하더라고요하면서 질.......

로레알 엑셀랑스 크림 염색약 블랙 후기 [내부링크]

#염색 #올리브영 #머리안녕하세요!몇 달 전에 매트브라운으로 염색을 했는데질리기도하고 새치도 자라난게 지저분해서다시 흑발로 염색했습니다올리브영에서 파는로레알 엑셀랑스 크림 블랙 색상을 구입했습니다~~ㅋㅋㅋㅋㅋ 리뷰하기 전에 찢어버렸어요제품은 이렇게 생겼습니다샴푸도 추가로 들어있어요구성은 장갑 포함 이렇게 되어있고,1a 와 1b를 혼합하고 섞어주면 염색 준비 끝이건 염색 전정수리 부분에 새치가 보이시나요?투블럭까지 해서 짧은 머리쪽이랑 긴 머리쪽은색상 분열이 됐어요ㅠㅠ염색 후어떤가요?되게 깔끔해졌죠??염색약 냄새가 나긴 하지만 머리결이 많이 안 상해서 좋았어요!

춘천 통나무집닭갈비 후기 [내부링크]

안녕하세요어제 춘천을 다녀왔습니다!춘천 통나무집닭갈비에 갔는데, 여기는 정말어렸을 때부터 가족들이랑 자주 갔던 곳이에요어떤가요?되게 크죠?? 음식도 진짜 맛있어요메뉴는 못 찍었는데 빌지를 찍었습니더여기는 닭갈비랑 막국수 그리고 볶음밥은 꼭 시켜야해요비쥬얼을 볼까요??닭갈비 2인분인데 덩치 두명이 갔는데 양이 충분히 많고 맛있어요!직원분이 직접 다 해주셔서 편하게 먹었습니다이건 물막국순데 굉장히 깔끔해서 순식간에 먹어버렸습니다!닭갈비 다 먹고 볶음밥을 시켰습니다이것도 밑에 누룽지 생기면 꿀맛,,,엄청 오래된 맛집이니 춘천 가시면 꼭 한번 들리세요!

대학교 봉사 쏙쏙캠프 후기 / 경기도 연천군 초성초등학교 [내부링크]

안녕하세요저번주에 나라에서 주최하는 대학교 교육봉사인쏙쏙캠프에 다녀왔습니다저희가 간 곳은 경기도 연천군에 있는초성초등학교입니다총 학생이 58명인 학교입니다저희가 진행하는 프로그램에는 아이들이 대략 20명정도 있더라고요어쨋든 3일간의 봉사를 위해 숙소를 잡았습니다7명이 머무르기 위해 고민 끝에조원님과 &#x27;초성마을펜션&#x27; 로 정했습니다초성마을펜션이 어떤지 한번 볼까요?사진과 같이 침대 빼고 있을 건 다 있어요다 좋았지만 접근성이 너무 안 좋았고,샤워시설이 너무 안 좋았어요샤워기 수압이 정말 너무너무 낮고, 온수가 안 나와서 얼음물로 씻었습니다저희는 오전 10시부터 오후 4시까지 수.......

컴활 1급 필기, 실기 준비과정 / 시나공으로 준비하기 [내부링크]

안녕하세요오늘부터 컴활 1급을 따려고 시나공 책을 구매했습니다컴활은 필기를 합격하고 실기를 합격해야 자격증을 받을 수 있습니다보통 필기는 열심히 하면 2주정도, 실기는 2달정도 잡아야 한다고 하더라고요일단 저는 시나공 책을 사서필기를 최대한 빨리 끝내고, 무료 인강을 보면서 실기를 공부할 생각입니다!이 책은 필기 책입니다총 세가지의 챕터로 구성되어 있고각각 컴퓨터활용, 스프레드시트, 데이터베이스로 구성 되어있습니다책이 세권인데 여기서 두권은 개념과 기출문제로 구성 되어있고, 남은 한 권은 총 요약본과 실제 시험 구성으로 문제가 나와있습니다일단 책이 세세하게 설명되어 있어서 좋았습니다자.......

#컴활 1급 : 오피스 2010 다운로드 + 한글패치 방법 [내부링크]

오늘 컴활 1급을 준비하면서1과목을 다 끝냈습니다!2과목을 들어가려고 하는데, 오피스 2010 버전으로시험을 친다고해서 부랴부랴 찾아봤습니다이제부터 office 2010 다운로드 방법 + 한글패치하는 방법을 설명해드리겠습니다https://pcguide4u.com/download-office-professional-plus-2010/이곳에 들어가서아래로 쭉 내리면 download 버튼이 있는데 클릭익스플로러는 안되고 크롬으로 받아야해요!이렇게 말이죠그리고 mega에 들어가서 압축 파일을 다운로드를 한다음아무데나 풀어줍시다풀고나면 파일이 여러 개가 있을텐데 그 중에서setup 파일을 실행시켜주고 next를 쭉쭉 눌러주세요누르다 보면 인증코드 창이 뜨는데 아래 사.......

미국 이스타(ESTA)비자 발급 방법 및 조회하기 (조회 안될 때 포함) [내부링크]

안녕하세요! 4월1일부터 4월11일까지 미국을 가서미국 가기 전 꼭 해야하는 이스타(ESTA)비자를 발급을 하였습니다저는 처음에 비자 발급이 너무 어려워서굉장히 혼란스러웠는데, 방문자 님들은 편하게 하시라고이스타 비자 발급 방법부터 발급 상황 조회 방법까지 알려드리겠습니다!-목차-1. 신청방법2. 조회방법3. 오류 및 주의사항이스타(ESTA) 비자 발급 과정 및 방법1. 아래 사이트에 들어가서 밑에 사진처럼 한국어로 선택해주세요.2. 이렇게 한국어로 바꾸고 아래 사진처럼 신청하기에서 원하는 항목을 골라주세요(개인 OR 단체)3. 아래 사진과 같이 채워주세요!4. 확인 누르고 이메일에서 인증코드를 입력해.......

mbti 성격유형 검사 하는 방법! [ESFJ-t] [내부링크]

오늘 실시간 검색어에mbti 성격유형 검사가 떠서 궁금해서 해봤습니다mbti 성격유형 검사 되게 유명한 건데어떻게 나올까 궁금해서 바로 시도했습니다 키키검사는 아래 사이트에서 하시면 됩니다~https://www.16personalities.com/ko/%EB%AC%B4%EB%A3%8C-%EC%84%B1%EA%B2%A9-%EC%9C%A0%ED%98%95-%EA%B2%80%EC%82%AC저는 검사 결과가 아래와 같이 나왔습니다ESFJ-T 형성격유형 : “사교적인 외교관” 사교형 사람을 한마디로 정의 내리기는 어렵지만, 간단히 표현하자면 이들은 &#x27;인기쟁이&#x27;입니다. 인구의 대략 12%를 차지하는 꽤 보편적인 성격 유형으로, 이를 미루어 보면 왜 이 유형의 사람이 인기가 많은지 이해가 갑.......

코코도르 디퓨저 에이프릴향 후기 [내부링크]

오늘 친구한테 선물 받은코코도르 디퓨저가 왔습니다!향은 에이프릴향으로 시켰어요리드스틱은 총 5개가 들어있었고,에이프릴향이 진짜 너무 좋아요원래 비누 향이나 편안한 향 좋아하는데에이프릴 향이 딱 강하지도 않고잔잔하게 좋은 냄새를 풍기더라고요생화 사서 냄새 맡으면 날 법한 그런 좋은 향이라자취하시고 방에 좋은 냄새나면 좋겠다 하시는 분들은이거 추천 드려요

토리헤어 남자 염색 : 매트브라운 후기 [내부링크]

안녕하세요어제 염색을 했습니다!염색은 어디든 다 비슷해서 싼 토리헤어에서 했습니다무슨 색 할지 고민하다가 매트브라운으로뿌셔버렸습니다 ㅎㅎ어떤가요?!원래 흑발이었는데 분위기 전환 겸 해보니 좋네요셀프염색만 자주 했는데 미용실에서 하니확실히 색도 잘 나오고 좋은 것 같아요토리헤어에서는 일반염색 2만원, 머릿결 보호해주는 염색(?) 4만원입니다!괜찮네요 대만족 ㅎㅎ

남자 6명이서 떠난 강릉 우정 여행기 [내부링크]

안녕하세요지난주에 정말 가족처럼 오래 된 동네 친구들이랑여행을 다녀 왔습니다!강릉을 갔는데 정말 많이 돌아다녔습니다친구들 다 태우고 출발할 때 찍은 건데223km 정말 시끄럽고 힘들었습니다 ㅋㅋㅋㅋㅋㅋㅋ휴게소에 들려서 먹은 칼국수!겉절이가 진짜 맛있었어요강릉 숙소 가는 길에 찍은 바단데 예쁘죠겨울바다가 정말 예쁜 것 같아요여긴 저희가 잡은강릉 파크에비뉴 숙소입니다.남자 6명이서 지내기 좋았고 사장님도 친절하셨습니다다만 여기는 차 없으면 정말 오기 힘들 것 같아요외진 곳에 있어서 버스도 없고 정말 차 다니기도 힘든 위치에 있어서 저녁에 운전하면서 고생했습니다ㅜㅜ여긴 대포항입니다.......

건대 현애경 제자 타로 후기 및 위치 [내부링크]

안녕하세요!어제 현애경 제자 타로를 보러 갔습니다원래 현애경 타로를 보려고 했는데 설 휴무라서제자 타로를 갔네요위치는http://kko.to/21mHGXA0j이곳입니다올리브영 바로 앞에 있었어요현애경 제자 타로는 쓴 소리도 많이 한다고알려져있어서 너무 무서웠어요ㅠㅠ원래는 줄이 굉장히 긴데 저희는 운이 좋게 15분정도만 기다리고 들어갔어요먼저 저희는 애정운 보고, 저만 따로 제물운을 봤습니다애정운은 만원, 사주타로도 만원이고, 셔플당 5000원 추가였어요저희 앞사람들한테 쓴소리 하는 걸 다 듣고벌벌 떨면서 들어갔습니다먼저 생년월일, 이름, 태어난 시를 알려달라하시고메모장에 말해주는 걸 적으라고 하셨습.......

[자바] 배열의 선언과, Array Copy 예제 [내부링크]

안녕하세요자바 복습할 겸 오늘은 Array Copy에 대한 것과,배열의 선언에 대해 써보려고 합니다보통 C언어와 C++을 배우고 자바를 배우기에,조금은 색다른 자바의 배열의 선언 세가지 방법에 대해 말씀해드릴게요1. 배열의 원소의 개수를 먼저 지정하고, 추후에 값을 정하는 방법2. 배열을 선언하고, 값을 입력함과 동시에 배열 원소의 개수를 정해주는 방법3. 2번을 간단하게 한 것이렇게 많이 선언을 합니다저는 C언어와 C++을 배우고 자바를 접해서처음에 이런 방식이 너무 안 외워지고,일일이 찾기 너무 귀찮아서 정리할겸 써봤습니다다음은 Array Copy에 대해 말씀 드릴건데요Array Copy는 배열 A의 원소를 배열 B로 복사.......

[자바] 라이브러리 / Random, Date, LinkedList, Set, HashMap [내부링크]

이번 포스팅에서는자바 라이브러리에 대해 써보려고해요C언어 데이터구조에서는 링크드리스트, 스택 등을 직접 구현 했지만자바에서는 라이브러리로 편하게 쓸 수 있게 제공됩니다.먼저 Random에 대해 써보겠습니다간단히 C언어에서 rand() 함수랑 비슷한 것으로난수 호출하는 거에요코드를 한번 보고 설명을 해드릴게요결과값코드를 직접 보시면서 결과값을 보시면 유추할 수 있으시겠지만,C언어에서 rand() % 100 + 1 은 1~100까지의 난수 호출이고자바에서는 rd.nextInt(99)+1 이 1~100까지의 난수 호출입니다.헷갈리지 않도록 조심하세요!다음은 Date 라이브러리 입니다.Date는 날짜를 알려주는 라이브러리입니다예제와 결.......

2019년 마무리와, 2020년 새해 다짐 계획 [내부링크]

시간이 정말 너무 빨리 가는 것 같아요엊그제 수능보고 대학 들어온 것 같은데벌써 2학년도 마치고 2020년이 찾아오다니...작년에 제가 썼던 2019년 계획과 성공을 했나 먼저 돌아볼까합니다2019년 계획*2019년도 첫번째 목표는책을 많이 읽기입니다!작년에는 책을 딱 5권 읽었더라고요중고등학생 때 비하면 많이 읽었지만올해에는 더 많이 읽고 싶어요&#62;&#62; 올해 책 간신히 5~6권 읽은 것 같습니다!주로 소설을 많이 읽었고, 가장 재밌었던 것은&#34;돌이킬 수 없는 약속&#34; 이라는 책 입니다.*두번째 목표로는자바 공부 열심히해서 간단한 프로그램구현하기 입니다C언어를 공부하면서 배운 걸 바탕으로테트리스.......

강릉 새해 여행 [내부링크]

2019년 12월30일에친구와 둘이서 강릉 여행을 갔습니다올해만 두번 갈 정도로 너무 좋았는데이번에도 너무 좋았습니다 ㅎㅎ집에서부터 약 200km 떨어져있어서운전하는데 너무 힘들었습니다 ㅠㅠ어디 휴게손지는 모르겠지만정차 ㅋㅋㅋㅋ휴게소 죠스 떡볶이에서 컵밥과 떡볶이 냠냠 했습니다날씨가 이래서 진짜 친구랑 괜히왔다 싶었는데도착하니 너무 맑았습니다경포호 너무 예쁘죠ㅠㅠ공기도 너무 좋고 맑았어요경포호에서 사진 좀 찍다가바로 강문해변으로 갔습니다자동 힐링이 되는 경포대였습니다 ㅎㅎ저희는 잠은 폴 게스트하우스에서 잤는데요게하에서 저녁에 삼겹살과 술도 줘서 저희도 가봤는데 다같.......

이마트 와인 Dos Copas red blend (도스 코파스 레드 블렌드) 후기 [내부링크]

저번주에 이마트에서4900원에 와인이 팔길래 바로 사봤습니다!도스 코파스 레드블렌드 Dos Copas red blend750ml칠레산 레드와인이네요맛이 생각보다 괜찮았어요 4900원이라 소주에 포도 향 날 것 같았는데그건 아니고밍밍하지만 굉장히 달았고 맛있었습니다쓴거 안 좋아하시면 이거 드셔보세요

양지파인리조트, 스키장 여행 [내부링크]

어제 대학 동아리 친구들이랑양지 파인리조트로 1박2일 여행을 갔습니다!아 오랜만에 스키를 타러 가서 그런지 너무 설레더라고요리프트권과 숙소는 미리 인터넷 예약 해두고저희는 야간까지 끊었습니다당일날 리조트에서 먹을 음식들과 장갑을 샀습니다!어마어마해요 ㅋㅋㅋㅋ장을 다 보고 렌탈샵에 갔습니다이름은 &#34;싸다구&#34; ㅋㅋㅋㅋㅋㅋㅋㅋ근데 리조트 이용하면 더 싸게 빌리는데 저흰 몰랐어요ㅠㅠ 그래도 이름처럼 가격이 쌌습니다!싸다구 가게에 있는 강아지 너무 순하고 귀여워요ㅠㅠ고양이도 있습니다!이렇게 스키복 다 빌리고다같이 놀러 갔습니다리조트 4시 입실이라 먼저 스키부터 탔습니다!아 너무.......

C언어 알고리즘 - 이진 탐색 트리 (Binary Serch Tree) [내부링크]

이번에는 프로그래밍 알고리즘에서 중요하게 나오는트리에 대해 설명해드릴게요자 위에 사진과 같은 모양의 데이터 구조를 트리라고 하는데요트리에서 중요한 개념을 먼저 짚고 갈게요위에 트리에서 a는 루트노드입니다.그리고 b,c는 a의 자식노드이고,a의 차수는 2이고 (자식노드의 수)트리의 높이는 2입니다그렇다면 오늘 배울이진탐색트리 (Binary Serch Tree)는 무엇일까요?이진탐색트리란, 트리에 값을 넣으면부모노드 기준으로 새로 넣는 값이 작으면 왼쪽 자식노드가 되고새로 넣는 값이 더 크면 오른쪽 자식노드가 됩니다.이걸 이용해서 노드에 데이터를 넣고,값을 찾는 것인데 같이 문제 한번 풀어봅시다~문제자 문.......

#네이버 애드포스트 : 블로그 활동하고 돈 벌자! [내부링크]

안녕하세요오늘 소개 해드릴 건 &#x27;네이버 애드 포스트&#x27; 입니다!&#x27;네이버 애드 포스트&#x27; 는 무엇인가요?즉 네이버 포스팅에 광고를 올려수익을 얻는 서비스인데요그렇다면 어떻게 시작하는지 한번 확인해볼까요?1. 검색엔진에&#x27; 네이버 애드포스트&#x27; 를 검색하고 들어갑니다.2. 애드포스트 시작하기 클릭3. 설명에 따라 원하는 것을 선택하고 신청하면 끝!저도 생각보다 수입이 꽤 나오더라고요매달 간식 값하기 딱 좋네요!이렇게 신청한지 얼마 안됐는데 잔액이 계속 오릅니다!환전하는 방법은이걸 수입전환 신청하기 눌러서[네이버 포인트]로 바꾸고 현금으로 바꾸면 끝!간단하죠.......

대학교 2학년 2학기 생활 - 4 / 종강 및 군대 전 마지막 학기 [내부링크]

드디어 이번주 화요일날 종강을 했습니다사실 꽤 됐는데 술마시고 귀찮아서 지금 올리네요이번 학기는 저한테는 조금 특별한 학기에요왜냐하면 다음학기는 군휴학하고 사회복무요원으로 군생활을 하기 때문입니다!군대를 늦게 가는 친구들도 거의 다 이번에는 가기 때문에 걱정을 많이 했는데다행히도 이번에 붙었습니다!5월 7일 입대여서 그 전까지 뭐 할지 굉장히 고민되네요 ㅎㅎ2학년 2학기는 진짜 대학 생활하면서열심히 공부도하고 열심히 놀아서 시간이 너무 빨리 간 것 같아요전공 학점은 벌써 나왔는데 A+ 나와서 기분 좋네요교양도 잘 마무리하고 군대 전에 잘 끝 맞춰서 다행이라고 생각해요군대 가기 전에 친구들.......