header-img
Info :
분류 전체보기 197
MSSQL :: 데이터 정렬(COLLATE)
2024.04.25
SQL Server의 데이터 정렬은 데이터에 대한 정렬 규칙과 대/소문자 및 악센트 구분 속성을 제공한다. 서버, DB, 열 또는 식의 데이터 정렬을 선택하게 되면 데이터에 특정 특성이 할당되게 된다. 이런 특성은 여러 DB 작업의 결과에 영향을 주는데.. 예를 들어 Order by를 사용하여 쿼리를 만든 경우, 결과 집합의 정렬 순서는 쿼리의 식 수준에서 Collate 절에 지정되거나 DB에 적용된 데이터 정렬에 따라 달라지게 됨. 지원하는 언어SELECT * FROM sys.fn_helpcollations() 위의 쿼리로 지원하는 언어 SET 의 종류를 확인해볼 수 있다. 총 5,540건. 이 중 Korean으로 시작되는 정렬 문자열에 대해 알아보자.!! Korean과 관련되는 언어SETSELECT ..
[스크랩] 깨진 유리창의 법칙
2024.04.25
깨진 유리창의 법칙Engineering Blog by Dale Seowww.daleseo.com  깨진 유리창의 법칙(Broken Windows Theory)- 깨진 유리창을 방치하면 그 지점을 중심으로 범죄가 확산된다는 사회학 이론 혹시 지금 코드 편집기에서 여기저기에 빨간 노란 밑줄이 그어져 있는데, 귀찮아서 방치하고 계시지는 않으신가요? 악취가 진동하는 코드를 리펙토링(refactoring)하지 않고 그 주변에 더 냄새나는 코드를 덧붙이고 계시지는 않으신가요? 서버를 띄우면 터미널에 갖가지 경고 메시지들이 나오는데, 어찌됐든 서버가 돌아가니 무시하고 있지 않으신가요? 웹사이트를 열면 브라우저 콘솔에 오류가 가득한데, 일반 사용자는 모르겠지 하고 같이 모른 척하고 계시지는 않으신가요? 지금 바로 잡지..
SQL :: 중복 제거 (Group by, Distinct)
2024.04.22
오라클(Oracle)에서 데이터를 조회할 때, 중복 제거하는 방법으로는1. distinct 를 거는 방법 과 2. group by 절을 사용하는 방법이 있다. Group by- Group by 는 데이터들을 원하는 그룹으로 나눌 수 있음.- 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 됨.- 집계함수와 함께 사용하는 상수는 GROUP BY절에 추가하지 않아도 됨.SELECT deptno 부서번호, COUNT(*) 사원수 FROM emp GROUP BY deptno ORDER BY COUNT(*) DESC; Distinct - 중복된 행을 제거하고 데이터를 추출하기 위한 용도로 사용.SELECT distinct deptno 부서번호, COUN..
SQL :: ANSI JOIN 과 Oracle JOIN 1
2024.04.19
평소 mssql 밖에 접할 일이 없어서 오라클 문법은 생소한데...조인을 걸 때 (+) 로 표기하는 경우가 있었다.이게 뭔가 하고 찾아보니 우리가 기존에 사용하는 outer join, inner join, left join 등 지정하여 사용하는 것은 ANSI JOIN 이라고 하고(+)를 사용하여 조인 종류를 지정하는 것은 Oracle JOIN 이라고 한단다.. 들어가기에 앞서 SQL JOIN의 종류부터 알아보자. JOIN 의 종류* INNER JOIN* LEFT OUTER JOIN* RIGHT OUTER JOIN* CROSS JOIN* FULL OUTER JOIN 이렇게 있는데 보통 많이 사용하는 건INNER JOIN 과 LEFT/RIGHT OUTER JOIN 정도가 되시겠다..
이런 재미난 프로젝트를 해보고 싶다!
2024.03.27
https://techblog.woowahan.com/16158/
list_img
Spring boot :: 외부 http 불러와 body 값 리턴하는 RequestUtil (Proxy Server 기능)
2024.02.20
내가 하고 싶었던 것은 http:~ 로 된 주소에 담긴 API data 를 내가 구현한 서버에서 제공하는 거 였음. 고로 내가 구현한 서버에서 프록시 서버의 역할을 해주어야 하는 것. 이때 뭐 RestTemplete 이니 WebClient 니 설치하고 셋팅하고... 너무 귀찮았음. 그래서 간단 ver 로 requestUtil 을 만들어보았다. import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframewo..
list_img
개발자 :: 연차 별 공부 방법
2024.02.13
공부란 '머리 속에 지식을 쑤셔넣는 행위'가 아니라 '세상의 해상도를 올리는 행위'라고 생각한다. 뉴스의 배경음악에 불과했던 닛케이 평균 주가가 의미를 지닌 숫자가 되거나 외국인 관광객의 대화를 알아들을 수 있게 되거나 단순한 가로수가 '개화 시기를 맞이한 배롱나무'가 되기도 한다. 이 '해상도 업그레이드감'을 즐기는 사람은 강하다. 참고 글 그대들, 어떻게 공부할 것인가 그대들, 어떻게 공부할 것인가. (주니어, 중니어, 시니어의 공부방법은 같아야 할까?) charsyam@naver.com docs.google.com
Springboot, Mybatis :: 부등호, 비교연산자 사용 방법 1
2024.02.02
쿼리문을 작성하다보면 비교문을 사용하는 경우가 생기는데.. 마이바티스에서는 , WITH CTE(WorkDate) AS ( SELECT CONVERT ( DATE, #{Year}+'-01-01') UNION ALL SELECT DATEADD(d, 1, WorkDate) FROM CTE WHERE WorkDate (CONVERT(DATE, #{Year}+'-12-31')) ) SELECT * FROM CTE OPTION ( MAXRECURSION 0 ); 둘. WITH CTE(WorkDate) AS ( SELECT CONVERT ( DATE, #{Year}+'-01-01') UNION ALL SELECT DATEADD(d, 1, WorkDate) FROM CTE WHERE ) SELECT * FROM CTE..
용어 :: 인바운드(inbound)와 아웃바운드(outbound)
2024.01.26
인바운드와 아웃바운드는 트래픽이 네트워크 간을 이동하는 방향을 의미. 인바운드 - 네트워크에 들어오는 정보 - 메세지가 클라이언트에서 서버로 향하는 것 - ex. 첨부파일을 서버에 저장할 때 (upload) 아웃바운드 - 네트워크에서 나가는 정보 - 클라이언트의 요청을 처리하고 메세지가 서버에서 클라이언트로 다시 향하는 것 - ex. 첨부파일을 다운로드 할 때
list_img
[스크랩] 커뮤니티 서비스 만들지 마세요, 어차피 실패합니다.
2024.01.26
커뮤니티 서비스 만들지 마세요, 어차피 실패합니다 | 요즘IT 커뮤니티 전성시대라 할 정도로 업종과 분야를 막론하고 다양한 커뮤니티가 등장하고 있다. 많은 사람들이 성공한 커뮤니티의 법칙, 커뮤니티 빌딩 방법론에 대해 이야기한다. 정말일까? 커뮤 yozm.wishket.com 커뮤니티 서비스를 개발하고 싶어하는 사람들이 봤으면 하는 데이터적인 접근으로 통찰력을 주는 글. 요즘에는 이런 데이터적인 관점에 눈이 가는데 . . 어떻게 접근해서 공부하면 좋을지 고민이다.
MSSQL, Mybatis :: DB툴과 웹에서의 쿼리 속도가 다를 때 고려할 것
2024.01.16
쿼리속도는 00:00:06 초 정도로 짧게 나오는데 API 실행 속도는 48초가 나오는 케이스가 발생. 물론 건 수가 많은 SQL이기는 했지만, 쿼리 속도와 API 속도가 이렇게 비례하지 않는 케이스는 처음이었음. -- 이런 현상이 발생하는 경우는 대부분 Where 절의 조건이 VARCHAR로 되어 있다는 것 MSSQL 의 특징 MSSQL의 경우 VARCHAR형 데이터를 비교할 때 NVARCHAR형으로 변환하여 데이터를 비교한다고 함. 즉, 데이터의 사이즈를 가변으로 할지 아닐지를 결정하는 것으로 보임. 쿼리를 사용할 때마다 강제적으로 타입 캐스팅이 일어나고, 수행되는 쿼리의 타입이 다르기 때문에 INDEX를 안타게 됨. ㅠ-ㅠ.. 쿼리 튜닝을 아무리해도 DB 속도는 빨라지는데, API 호출 속도는 크게..
Mybatis :: 달러($)와 샵(#)의 차이
2024.01.16
파라미터 매핑을 하는 데에 사용하는 $와 # 두가지의 차이에 대해 알아보도록 하겠다. # PreparedStatement를 의미 파라미터가 String 형태로 들어와 자동으로(' ') 파라미터 형태가 됨 #{user_id} 의 값이 'neeon'이라면 user_id = 'neeon' 형태가 됨 쿼리 주입을 예방할 수 있어 보안 측면에서 유리 정적인 방법을 사용하기 때문에 캐싱을 해서 재활용할 수 있어서 효율적임 $ Statement를 의미 해당 컬럼의 자료형에 맞추어 파라미터의 자료형이 변경됨 파라미터가 바로 출력됨. 쿼리 주입을 예방할 수 없어 보안 측면에서 불리하므로 사용자의 입력을 전달할 때는 사용하지 않음 (SQL Injection) 테이블이나 컬럼명을 파라미터로 전달하고 싶을 때 사용함 차이점 ..