Java

CS

[Java] 가비지 컬렉션(Garbage Collection, GC)이란 무엇일까요?

🤔 가비지 컬렉션, GC? 자바의 메모리 관리 방법으로, JVM(자바 가상 머신)의 Heap영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(Garbage)를 모아 주기적으로 제거하는 프로세스를 말합니다. C, C++ 같은 언어는 GC가 없기 때문에 개발자가 직접 메모리 할당과 해제를 해주어야 합니다. 하지만 자바는 개발자가 직접 해제하지 않고 GC에 의해 메모리를 관리하기 때문에 개발에만 집중할 수 있다는 장점이 있습니다. GC는 메모리를 자동으로 관리해주지만, 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기가 힘듭니다. 또한 GC가 동작하는 동안에는 다른 동작을 멈추기 때문에 오버헤드가 발생되는 문제가 있습니다. 이러한 점들로 상황에 따라 프로그램의 성능이 하락시킬 수 있어 프로..

Algorithm/문제

[BOJ/JAVA] 백준 10026번 적록색약 (DFS, BFS)

✔ 문제 난이도 : 골드5 🥇 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net ✔ 문제 풀이 주어진 예제 처럼 첫째 줄에 NxN의 배열에 해당하는 N이 주어지고 각 칸에 R,G,B중 하나를 색칠한 그림이 둘째 줄부터 주어집니다. 이때 각 색들이 차지하는 구역과, 적록색약인 사람이 봤을 때의 구역을 구하는 문제입니다. 적록색약은 R(빨강)과 G(초록)이 잘 구분되지 않기 때문에 같은 구역으로 생각하여 카운트하도록 코드를 짠다면 쉽게 풀 수 있습니다. 💡 단순하게 R과 G일 경우 조건을 주어 탐색을 진행하려..

Backend/JPA

[JPA] 다양한 연관관계 매핑 ( ManyToOne, OneToMany, OneToOne, ManyToMany )

✔ 연관관계 매핑시 고려사항 3가지 다중성 : @ManyToOne, @OneToMany, @OneToOne, @ManyToMany 단방향, 양방향 연관계의 주인 어노테이션을 사용하여 관계를 정확히 매핑해주고, 객체(Entity)를 단방향 또는 양방향으로 사용할지 충분히 고려한 후 양방향으로 설정 했다면 연관관계 주인을 설정함으로써 한쪽에서만 등록,수정이 일어날 수 있도록 한다. 🔎 @ManyToOne 다대일 [N:1] 💡 단방향 가장 많이 사용되는 연관관계로 한쪽(Member)에서만 조회, 등록, 수정 하도록 매핑 💡 양방향 양방향으로 설정하게 되면 Member와 Team객체에 서로 참조할 수 있는 필드를 생성하여 각각의 관계를 설정해준다. 이렇게되면 양쪽에서 등록, 수정이 일어날 수 있기 때문에 연관관..

Backend/JPA

[JPA] 객체 지향 모델링과 양방향,단방향 연관관계 매핑

🤔 기존의 문제점 객체를 테이블에 맞추어 모델링 try{ //팀 등록 Team team = new Team(); team.setName("TeamA"); em.persist(team); //맴버 등록 Member member = new Member(); member.setUsername("member1"); member.setTeamId(team.getId()); // **외래키 식별자를 직접 다루고 있다.** em.persist(member); //조회 Member findMember = em.find(Member.class, member.getId()); Long findTeamId = findMember.getTeamId(); // 맴버객체에 저장된 팀아이디 즉 외래키를 찾는다 Team findTe..

Algorithm/자료구조

[자료구조] 덱(Deque)의 이해와 구현 with 자바

🤔 Deque? Deque는 'Double Ended Queue'의 약자로 큐의 기능을 확장한 자료구조로 볼 수 있습니다. 큐는 뒤쪽(rear)에서 삽입 앞쪽(front)에서 삭제 연산이 가능했다면 기능을 확장하여 큐의 양쪽에서 모두 삽입과, 삭제가 가능합니다. 즉, stack의 LIFO과 queue의 FIFO 특징을 모두 사용할 수 있습니다. ✔ Deque 구현하기 큐를 확장한 자료구조임으로 이전에 만든 큐 인터페이스를 implements하여 기능을 추가하여 구현 하겠습니다. 실제 자바의 덱 자료구조에는 여러가지 기능을 하는 메서드들이 더 있지만, 덱의 가장 큰 특징인 양쪽에서의 삽입,삭제에 관한 기능을 구현하도록 하겠습니다. 메소드명 리턴 타입 설명 offerFirst(E e) E 큐의 첫 번째(Fr..

Backend/JPA

[JPA] JPA 가장 중요한 2가지 - 엔티티 매핑

🤔 엔티티 매핑? 🔎 Entity 직역하면 '실체', '독립체' 라는 뜻으로 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 '어떤 것(Thing)'이라고 말할 수 있다. (DB에 저장되거나 가져와지는 객체라고 생각하면 편할것 같습니다. ) 🔎 Mapping 일반적인 의미로는 하나의 요소를 다른 요소와 대응시키거나 연결하는 프로세스를 말합니다. 📌 Entity(객체)와 관계형 데이터베이스(테이블, 컬럼, 관계 등)를 Mapping 즉 서로 대응시켜 연결하는 과정으로 보통 어노테이션(Annotation)을 사용하여 이루어지며 Mapping을 통해 JPA는 객체와 데이터베이스 간의 변환을 자동으로 처리할 수 있게 됩니다. ✔ Mapping 구분 Annotation 객체와 테이블 매핑 @Entity, @..

장용석
'Java' 태그의 글 목록