스프링이란? 스프링의 진짜 핵심 스프링은 자바 언어 기반의 프레임워크 자바 언어의 가장 큰 특징 : 객체 지향 언어 ⭐️ 스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내는 프레임워크! 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체 지향 설계의 5가지 원칙 (SOLID) SRP : 단일 책임 원칙 Single Responsibility Principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수도 있고 작을 수도 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 예) UI 변경, 객체의 생성과 사용을 분리 엄청나게 긴~ 코드에 jsp, sql 등등 모..
2022 회고를 23년에 쓰는 사람.. 많더라구요😊 베짱이 군단에 합류해서 더 늦어지기 전에 씁니다. 작년은 개발도, 개인적인 일도 즐거웠던 날이 많았지만 신경쓸 일도 많아서 종합적으로 큰 이벤트 위주로 쓰겠습니다! 회사와 친해졌다. 여기서 친해졌다는건 업무와 인간관계를 모두 아우르는 말이에요. 아마 이 박명수 짤 좋아하는 사람들 많을거 같은데(ㅋㅋ) 원래 회사생활 하면서 적당히 치고 빠지는 것도 중요하니까 사회인이라면 저게 무슨 마음인지 다 알거라고 생각합니다.ㅎ 먼저 어떻게 일이랑 친해졌는지 말해볼게요. 저는 주로 금융 기관의 콜 인프라를 구축하는 회사를 다녀서 (한마디로 콜센터 앱 구축 ㅎㅎ) 관련 업무 파악이 중요합니다. 뭐 업무 파악 중요한 곳이 아닌데가 어디 있겠냐만... 돈이 관련되어 있다보..
MySQL 에서 통계 쿼리 GROUP BY - COUNT() 를 이용하면 특정 컬럼에 대한 통계값을 구할 수 있습니다. GROUP BY - COUNT() GROUP BY 를 사용하여 구하고자 하는 컬럼을 그룹화 하고, COUNT() 함수를 사용하여 해당 컬럼이 얼마나 많은지 카운트합니다. 예시를 들어보겠습니다. SELECT emotion_id, COUNT(*) as count FROM diary WHERE user_id = 11 AND created_at BETWEEN '2023-01-01 00:00:00' AND '2023-01-07 23:59:59' GROUP BY emotion_id ORDER BY count DESC LIMIT 1; 해당 쿼리문은 다음과 같은 결과값을 구하기 위한 과정입니다. 다이..
에러메세지 java.lang.NullPointerException: Parameter specified as non-null is null: method com.beside.backend.api.controller.v1.member.MemberController.getSignupCount, parameter loginType 어디선가.. 파라미터에 null 으로 값이 들어왔다는 에러 어디서부터 null 이 들어간건지 null...찾으러간다. 원인 기간, 로그인 타입 별 회원가입한 사용자 수에 대한 통계를 내던 도중 발생 !! 기간은 반드시 들어가는 데이터고, 로그인 타입은 선택사항이다. 즉, value 값을 안쓰면 여기서 null 로 넘어간다는 의미. 에러 로그에 맞게 떡하니 여기서 null 값을 넘기고..
document 데이터 insert 하는 방법 { key : value } object 형태로 document 데이터를 insert 한다. insertOne() 으로 한개 데이터 넣기 db.diary.insertOne({ "content" : "재미있는 오늘!", "userId" : 11, "weather" : "sunny", "writtenAt" : "2023-02-18T00:00:00.000Z", "deleted" : false}); insertMany()로 여러개의 데이터 넣기 [ {}, {}, ...] 배열로 데이터를 넣는다. db.diary.insertMany([ { "content" : "hello world", "userId" : 22, "weather" : "cloudy", "written..
kotlin 함수 ?.null { it } where 조건 안에서 특정 파라미터 값을 체크해 데이터 유무에 따라 사용할 수 있다. fun findByIdAndName(id: Long, name:String): List { return from(members) .where(members.id.eq(id), name?.let { members.name.eq(it) }) .fetch() } 코틀린에서 제공하는 함수를 queryDsl 쿼리문 안에서도 사용 가능하다. ?. : null 이 아닐 때 let { } : it 으로 자기 자신을 받아와서 객체의 상태를 변경할 수 있다. ?.let { null이 아닐 때 블럭을 실행한다. }
@BatchSize 연관된 엔티티를 조회할 때 지정한 size 만큼 where 조건의 in 절으로 조회한다. 1:N 관계의 Entity 정의 정의 조건 : 1명의 멤버는 여러 개의 주문을 가질 수 있다. Members (1) : Orders (N) * 부모 class : Members @Entity class Members( @Column(nullable = false, length = 50) var email: String, @Column(nullable = false, length = 20) var name: String, ) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long? = null @OneToMany(mappedBy..
에러 메세지 org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [com.beside.backend.domain.entitiy.wisesaying.WiseSaying.emotionWiseSayingsWords, com.beside.backend.domain.entitiy.wisesaying.WiseSaying.wiseSayingBookmark]; nested exception is java.lang.IllegalArgumentException: org.hibernate.loader.Mult..
- Total
- Today
- Yesterday
- dto 클래스 생성자
- Git
- QueryDSL
- n+1
- java.lang.NullPointerException: Parameter specified as non-null is null
- MultipleBagFetchException
- addFilterBefore
- junit5
- Java
- JPA
- array
- ChatGPT
- 스프링오류
- checkout
- 배열
- spring boot 3
- Cannot construct instance of
- 장애 대응
- insertOne
- Kotlin
- 추상클래스
- ?.let
- Linux
- FetchJoin
- MongoDB
- Spring Security
- document insert
- 문자열계산기
- insertMany
- port
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |