전체 글 (35) 썸네일형 리스트형 HashMap 의 동작 원리 [ Hashmap Java 기본 동작 원리 ] Java의 HashMap은 매핑을 저장하기 위해 내부 클래스 Node를 사용하고 해싱 알고리즘에서 작동하며 get 및 put 작업을 위해 키에 hashCode() 및 equals() 메서드를 사용한다. HashMap은 단일 연결 리스트를 사용하여 요소를 저장하며 이를 bin 또는 bucket 이라고 한다. put 메소드를 호출하면 키의 hashCode를 사용하여 매핑을 저장하는 데 사용할 bucket 을 결정하고 bucket 이 식별되면 hashCode 를 사용하여 동일한 hashCode를 가진 키가 이미 있는지 확인한다. 동일한 hashCode를 가진 기존 키가 있는 경우 해당 키에 대해 equals() 메서드가 사용되어 true를 반환하면 값을 덮어.. Querydsl 동적쿼리 실행계획 살펴보기 join(nested loop join, hash join)문과 인덱스 프로젝트 erd 개인 맞춤형 선물 큐레이션 서비스 웹사이트였기 때문에 (카카오톡 선물하기와 비슷한 도메인) item 을 중심으로 keyword와 filtering을 할 수 있는 관계형 데이터베이스 구조입니다. 마케팅팀에서 넘겨주신 위와 같은 csv 파일을 받아서@Profile("put-data")의 DataParser class를 만들어 알맞은 table column 에 insert 해줬습니다. @ConditionalOnResource(resources = "data.csv")@Profile("put-data")@Slf4j@RequiredArgsConstructor@Componentpublic class DataParser { private final ItemRepository itemRepo.. [spring] Websocket Stomp 두번의 프로젝트 회고 의도치 않게 두번의 프로젝트 안에서 실시간 처리를 담당하게 되면서Spring 프로젝트에서 Websocket Stomp를 적용해본 트러블 슈팅 과정 세세하게 적어보겠습니다 ! 1. 플레이리스트 공유 플랫폼 프로젝트 방에 들어간 이후✓ 오른쪽에 있는 플레이리스트 재생 버튼을 누르면 -> 플레이리스트에 있는 노래가 재생되고 -> 같은 방에 있는 인원들은 실시간 채팅이 가능하게 하는 구현을 맡았었습니다. @Configuration@EnableWebSocketMessageBrokerpublic class WebSocketBrokerConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoi.. 중고거래 플랫폼 (당근마켓 클론) 개인 프로젝트 20일 챌린지 [0] 내가 가장 사랑하는 앱은 당근마켓이다. 당근마켓의 기획 의도 뭐 이런게 다 너무 신선하고 좋아서 ERD 설계 처음부터 끝까지 내가 만들어보자! 생각으로 시작했었다 약 1달 전에 .. 이렇게 초기 ERD 설계를 하고(몇번 대대적으로 갈아엎지 않을까..) 나름 패키지명도 이렇게 구현해두었다. 1. 일단 저번 프로젝트떄 웹소켓 stomp로 채팅을 구현해본적이 있어서 이번에는 redis로 채팅 기록을 관리해보고자 했다. 멘토링할때 들었었는데 실무에서는 fk를 잘 안건다고 했었던 것 같다. 지금까지 모든 설계를 RDBSM로 fk를 엔티티마다 아주 착실히 걸어줬었는데 nosql 설계를 지향해보도록 하겠다. 뭔가 저런식으로 채팅 redis를 활용해보긴 했는데 거의 어떤 블로그 코드 따라친거라 아직도 잘 이해가 안간다.. h2 database 생성 안됨, mv 파일 생성 안됨, Database "C:/~" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146 만약 위와 같이 jdbc:h2:~/querydsl 이렇게 Embedded 설정에서 연결해도 Database "C:/~" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146 이 오류가 뜨고 mv 파일도 생성안되고 터미널에서 .\h2 -web 확인하고 8082 pid taskkill해도 암것도 안된다 하면 여기 창 띄워서 우클릭하면 create a new database가 있는데 여기서 database를 생성해준다 jdbc:h2:tcp://localhost/./carrot 그러면 이제 저 경로대로 연결 된다 어제부터 uninstall 했다가 진짜 할 수 있는거 다해봤는데 이 방법밖에 안되어서 올려봅니당 [main-project] 회고 3~4주간 진행했던 플레이리스트 공유 채탕방 메인 프로젝트가 끝났다 우리는 이런 서비스 목적을 가지고 프로젝트를 진행했다. 나는 백엔드 포지션에서 채팅방 CRUD와 웹소켓 STOMP를 적용해서 실시간 채팅이 가능하게끔 했다. 1차적으로 어려운 점을 겪었던 부분 -> dto를 mapper로 controller에서 변환해주는 부분이었다. 채팅방 CRUD에서 return해주는 데이터들은 playlist 정보와 member정보를 다 가져와야 했고, playlist는 채팅방을 만들때 한개만 들고 올 수 있게끔 해야 해서 처음에는 member mypage에 저장되어 있는 playlist를 들고와야 하나 걱정했는데 playlistresponsedto에서 그냥 id를 픽해서 가져오면 될 것 같아서 쉽게 해결했다. 그리.. [pre-project] 1일차 Stackoverflow Q&A 게시판 클론 코딩을 프론트엔드 측이랑 협업하는 pre-project를 시작했다. 이 화면을 클론 코딩해야 한다. 할 게 너무 많아 보여서 일단 사용자 요구사항 정의서를 작성하고 제출했다. 1. 사용자 요구사항 정의서 팀원들과 같이 작성한 정의서이기 때문에 내용은 모자이크 했다! 로그인 로그아웃 질문페이지 등등 사용자가 로그인하고 로그인 된 회원만 수정할 수 있게 하는 권한을 비고에 추가하였다. 2. branch 설정, commit 타이틀, pr template, merge 방식, README.md → 커밋 타이틀은 프론트엔드 분의 의견으로 gitmoji로 시작하기로 했다 → branch는 세가지로 진행하기로 했다. main/ dev/ feature main ⌙ front-.. 양방향 연관관계, 연관관계의 주인 제가 table 설계할때 헷갈려서 써봅니다.'다대일' 관계에서 Member 테이블이 '다' 이고 Team 테이블이 '일' 이 됩니다.Team 안에는 여러 members가 들어갈 수 있기 때문입니다. 그래서 TEAM_ID가 FK가 되어야 하지 않을까 생각했습니다. Team 클래스가 OneToMany 중 One이니까 매핑하지 편하지 않을까 하는 생각에서 입니다. 하지만 다시 생각해보면Member의 team 값을 업데이트 vs Team의 members를 업데이트 그러면 Member의 team값 을 업뎃하는게 DB입장에서는 훨씬 덜 번거롭지 않을까요? Member에 있는 TEAM_ID와 Team의 TEAM_ID(PK)와 조인하면 이 Member가 어느 Team 소속인지 알 수 있게 하는게 맞는 로직입니다. .. 이전 1 2 3 4 5 다음