반응형

분류 전체보기 140

[SSAFYcial ] ssafy 대전 캠퍼스 생활 1달차 회고

안녕하세요, 대전 ssafy 11기 를 진행중인 ssafy 교육생 방은정입니다!저는 대전 캠퍼스에서 생활하게 된지 1개월이 조금 넘었는데요, 어떤 삶을 살았는지 간략하게 회고 하는 시간을 가져보겠습니다. 제 글이 현재  ssafy생활을 하시는 분들과 더불어 미래에 ssafy 생활을 목표로 하시는 분들께 도움이 되었으면 좋겠습니다. : )  목..

교육/SSAFY 2024.02.25

백준 2636 - 치즈 - BFS

https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 랭크 : 골드 4 걸린 시간: 40분 해설 이 문제는 치즈가 시간이 지날 때마다 공기와 닿는 부분이 녹는 문제이다. 쉽게 생각하면 자칫 할 수 있는 오류는 다음과 같다. "공기를 queue에 담은 후 BFS를 진행하면서 시간(== 닿는데 걸린 거리)을 체크하면 되지 않을까? " 이러한 점은 문제가 다음과 같다. 1. 치즈 안의 공기, 즉 가장 자리와 맞닿아 있지 않은 공기는 치즈를 녹이지 않는다. 2. 새로 생긴 구..

[Spring - JPA] 3. 영속성관리

JPA 에서 가장 중요한 2가지 객체와 관계형 데이터 베이스를 어떻게 매핑하나 영속성 컨텍스트 (JPA 가 내부적으로 어떻게 동작하나) 1. 영속성 컨텍스트란? 'Entity를 영구 저장하는 환경’이라는 뜻 EntityManager.persist(entity); EntityManager를 통해 영속성 컨텍스트에 접근. 2. Entity 의 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) : 영속성 컨텍스트에 관리되는 상태 ((em.persist(member))) 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 (em.detach(member)) 삭제 (removed) : 삭제된 상태 *영속상태가 되었다고 해서 바로..

개발/java 2024.02.18

[Spring - JPA] 2. JPA 개요

JPA 설정하기 위치가 정해져 있음. Dialect ? 데이터베이스들은 각각 SQL 문법과 함수가 조금씩 다르다. 예를 들어 Mysql은 VARCHAR, Oracle은 VARCHAR2 페이징 : Mysql은 LIMIT, Oracle은 ROWNUM 방언 -> SQL 표준을 지키지 않는 특정 데이터베이스 만의 고유한 기능. JPA 구동 방식 설정정보를 보고 나서, entity manager factory를 만든다. persistenceUnitName (pom.xml 에서 설정된 게 있음) 인자를 넣어서 createEntityManagerFactory 궁금한 점 : 트랜잭션마다 entity manager 를 새롭게 만들어야 하는 이유가 뭐지? create table Member( id bigint not nu..

개발/java 2024.02.18

[Spring - JPA] 1. JPA 소개

*본 글은 JPA 에 대해 공부(책, 강의) 하고 쓴 글입니다. 내용 요약 JPA 란, 객체와 관계형 데이터 베이스 간을 연결해주는 인터페이스로, 객체의 필드에 대해 관계형 데이터베이스에 저장, 삭제, 수정, 조회를 SQL 작성없이 용이하게 할 수 있도록 하는 JAVA API 이다. (Java Persistence API) - JPA는 entityManager를 통해 객체를 관리한다. - JPA는 JPQL 을 사용하여 객체를 기반으로한 쿼리를 작성할 수 있다. - JPA 는 내부적으로 database 와 통신하기 위해 JDBC 를 사용한다. JPA 를 사용함으로써 직접 SQL을 작성해 객체를 저장해야하는 시절의 어려움 (객체들마다 다르게 작성, 상속관계, 연관관계의 객체들은 별도의 맵핑, 객체간의 비교 ..

개발/java 2024.02.03

[Spring - DB] 1. JDBC 이해

본 글은 Spring Database 관리에 관한 강의를 수강한 후 작성한 정리입니다. JDBC, Java Database Connectivity를 통해 다양한 Database 들을 사용함에도 불구하고 일관된 접근을 할 수 있게 되었다는 점이 인상적입니다. 1. JDBC 이해 Java Database Connectivity 클라이언트, 즉 브라우저는 보통 애플리케이션에 특정 작업이나 리소스를 요청하고, 애플리케이션 서버가 데이터베이스에 접근한다. 애플리케이션 서버가 데이터베이스를 사용하기 위해서 진행하는 절차 1. 커넥션 연결 : 주로 TCP/IP 사용 2. SQL 전달 : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 커넥션을 통해 DB 로 전달 3. 결과 응답 예전에는 데이터베이스마다 위의 방법..

개발/java 2024.01.07

[Spring 기본] 6. 의존관계 자동 주입

생성자 수정자 (setter) 필드 주입 메소드 주입 생성자 주입 사용하기 추천 final 키워드와 함께 사용 생성자 주입을 사용하면 필드에 final 키워드를 사용할 수 있다. 그래서 생성자에서 혹시라도 값이 설정되지 않는 오류를 컴파일 시점에 막아준다. 롬복 라이브러리 사용하기 getter, setter 어노테이션 제공 @RequiredArgsConstructor 롬복 라이브러리가 제공하는 @RequiredArgsConstructor 기능을 사용하면 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다. (코드에는 보이지 않지만 실제 호출 가능하다.) 최근에는 생성자를 딱 1개 두고, @Autowired 를 생략하는 방법을 주로 사용한다. 여기에 Lombok 라이브러리의@RequiredArgs..

개발/java 2024.01.06

[Spring 기본] 5. 컴포넌트 스캔

컴포넌트 스캔과 의존관계 자동 주입 컴포넌트 스캔 Configuration 클래스에 @ComponentScan 어노테이션을 붙인다. 스프링 빈으로 등록할 객체들을 @Component 어노테이션을 붙인다. 그러면 컨테이너에 빈으로 등록이 된다. 이전에는 직접 new MemberServiceImpl(memberRepository()) 같은 식으로 의존관계가 주입이 가능했는데, 지금은 불가능해졌다. 자동의존관계 주입 클래스의 생성자에 @Autowired 어노테이션을 붙이면 스프링 빈 중 해당 파라미터 타입에 해당하는 빈이 자동으로 의존관계 주입이 된다. applicationContext.getBean(MemberRepository.class) 의 결과를 주입한다고 보면 된다. 타입이 여러 개인 경우는 추후 설..

개발/java 2024.01.06

[Spring 기본] 4. 싱글톤 컨테이너

4. 싱글톤 컨테이너 1. java는 웹 애플리케이션 서비스 용 언어 요청이 있을 때마다 새로 new 를 해서 객체를 반환하는 문제 클라이언트가 요청할 때 매번 객체가 새로 생긴다 요청을 수행하기 위해 스레드가 하나 생기고, 독립적인 인스턴스가 생기기 때문에 그런 것이다. 2. 싱글톤 패턴 싱글톤 패턴을 이용하여, 하나의 객체를 가지고 요청을 처리하도록 할 수 있다. 생성자 private 화, 그리고 static 멤버 변수로 미리 생성해둔 후 getInstance() 로 반환. 3. 싱글톤 패턴의 문제점 싱글톤 패턴을 구현하는데 코드를 많이 필요로 한다. 의존관계상 클라이언트가 구현체에 의존하게 된다. DIP 위반 따라서 OCP 도 위반하게 된다. 유연한 테스트를 하기 어렵다. 내부 속성을 변경하거나 초..

개발/java 2024.01.06

2024년의 나

2023년의 회고 2022년 말부터 시작해서 가장 건강해지기 시작했던 시기 같이 다니는 친구 특유의 유머와 세상을 대하는 방식 덕분에, 더 따뜻하고 나를 챙길 줄 아는 사람이 되었다. 나를 바꾼 세 가지 책 : 알프레드 아들러의 '다시 일어설 용기', 에리히 프롬의 '사랑의 기술', 데일 카네기의 '인간관계론' 덕분 공부만하면서도 피폐해진 마음 때문에 입력과 출력이 따로 놀던 시기에서 벗어나, 효율적으로 공부하고 스킬을 익히게 됨. 많이 쉬면서 나아진 건강과 심리도 있지만, 실질적으로 공부에 투자한 시간이 부족 스스로 가장 아쉽다고 생각한 부분. 약간의 차이가 큰 변화를 만들어낸다고 생각하는 사람으로써, 약간의 차이로 인해 실력 격차가 생겼다고 느껴서 속상했던 1-2달을 보냈다. 다른 것보다, 이런 생각..

끄적 2023.12.22
728x90
728x90