본문 바로가기
반응형

Backend 개발자/StackOverflow14

검색 컨텐츠 SEO 도메인 상위 랭킹 올리는 방법 Google, Naver Search Engine Optimization (검색 엔진 최적화) SEO는 Google, Naver, Youtube, SNS 등 서비스 플랫폼에서 제공되고있는 검색엔진에 노출하고자 하는 서비스 플랫폼, 블로그, 이커머스, 컨텐츠 등등등.. 랭킹을 올릴수 있는 다양한 방법을 최적화 하는 프로세스 입니다. 검색최적화 키워드 SEO, SEM, PPC SEO : 검색 엔진에서 유기적인 트래픽 유도 SEM : 검색 엔진에서 유기적, 유료 트래픽 유도 PPC : 클릭당 유도광고 다양한 서비스 플랫폼 SEO를 3-4 년째 삽질하며 느낀 내용을 기반으로 정리 합니다. 유튜브, 블로그, 전자책, 오픈마켓 등으로 어떻게하면 노출을 증가시키고 클릭을 유도하고 타케팅으로 유도된 EndUser들이 내가 만든 컨텐츠에 지속시.. 2023. 9. 28.
Java Springboot 인텔리J를 단축키를 이용한 빠른 코딩기법 리펙토링 공부하는방법, 클린코드 꿈속 예기인가여? 개발을 잘하는 방법! 어떻게해야 잘할수 있지 개발자들은 항상 본인이 만든 개발코드에 대해서 의심을 하게됩니다. 지금 내가 잘하고있나 생각을하게되는데 문제는 맨날 뇌피셜로 잘하고있다고 생각만하고 정작 책이나 다른사람의 피드백은 들으려하지 않는 개발자들이 생각보다 많이 있다는겁니다. 보통 아집이라고하는데 이런개발자분들과 일하다보면 지금 내가 뭐하는건가 이런생각을 하게됩니다. 책을 읽어야합니다. 개발자로 성장하기 위해서는 다양한 방법으로 공부해야합니다. Java Springboot 개발자라면 읽어야하는 책으로 몇가지 추천드립니다. 물론 아래 책을 읽는다고 개발을 잘한다고할수는 없습니다. 우리가 재태크 돈을잘벌기위해서 많은 책을 읽지만 그속에 깨달음을 얻어서 실천하고 결과물을 만들기까지 오래걸리는것 처럼 개발 또한 동일합니다. 무엇이든 단기간 성장보다는 .. 2023. 8. 8.
Mssql Row 데이터 체크 유무 boolean 처리, 문자열 자르기 left right substring mybatis로 처리하다보면 특정 테이블에 값이 있는지 유무체크를 구현할때 사용하면 되는 간단한 boolean 처리 쿼리 공유드립니다. IF EXISTS( SELECT 1 FROM USER WITH(READUNCOMMITTED) WHERE USER_ID = #{userId} AND TYPE = #{type} ) BEGIN SELECT 1 END ELSE BEGIN SELECT 0 END IF EXISTS 조건에 부합하는 Query 실행후 검색한 User 테이블에 userId 값이 있다면 1 : true 를 리턴하고 아니라면 0 : false 리턴하게 됩니다. IF EXISTS( SELECT 1 FROM USER WITH(READUNCOMMITTED) WHERE USER_ID = #{userId} AND .. 2022. 12. 13.
Mssql OUTER APPLY 언제쓰나요? OneToOne 테이블 구조에서 통계 SUM count GroupBy 대신 OUTER APPLY 처리하기 최근 회사에서 전략과제를 진행하고있는데 시스템 DB 두가지 모두 대량에 트래픽 경험이 없는 회사라서 그런지 단순한 테이블 구조로 나올수있을것같은데 복잡하게 만들어 공유 되고있다보니 ... 덕분에 다양한 mssql 에서 제공하는 테이블 관계 함수를 사용하고있어서 공유합니다. 컨텐츠 와 컨텐츠 집계 테이블 컨텐츠 테이블 그리고 컨텐츠 클릭시 카운터 증가되는 테이블이 있다고 가정하겠습니다. contents id subject description regDate 1 컨텐츠A 상세설명A 2022-01-02 10:00:00 2 컨텐츠B 상세설명B 2022-01-03 10:00:00 3 컨텐츠C 상세설명C 2022-01-04 10:00:00 aggregate id count type 1 1 mobile 1 3 pc .. 2022. 12. 9.
Mssql DISTINCT 대신 서브쿼리 EXISTS 사용하기 언제가 부터 RDBMS로 다양한 관계를 복잡하게 Query로 구현하기보다는 개발자 관점에서 테이블설계를 하고 필요하다면 CQRS패턴을 이용하고 in memory 다양한 방법으로 복잡도높은 테이블 구조를 만들지 않고 있었는데 어쩔수 없는 상황에 관계형 데이터베이스 테이블을 구현하면서 배워온것들을 정리해볼까 합니다. JOIN 종류 https://aquerytool.com/ AQueryTool {{source.erd_info.erd_name + '(Ver ' + erdVersion + ', ' + source.erd_info.db_type + ')'}} aquerytool.com ERD SASS기반 USER 테이블 userId name email 1 renzo renzo@gmail.com 2 guest gue.. 2022. 12. 6.
MSSQL 맥북용 M1 추천 Tool Legacy 분석 Mssql 프로시저 검색하기 어쩌다보니 Legacy 분석을 Mssql Procedures 까지 하고 있어서 돈버는건 역시 쉬운게 없다는걸 다시한번 느끼는 중입니다. Mssql 을 사용하기 위한 Mac 용 Mssql Tool 추천 2가지를 공유드립니다. 저도 사용감이 많지 않아서 Mssql 맥북용 Tool만 소개해드리고 프로시저 분석을 위한 프로시저 찾기 실행하기 정도로 정리를 해볼까 합니다. Mac 용 Mssql Database 접근 Tool DBeaver https://dbeaver.io/download/ Download | DBeaver Community Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run .. 2022. 9. 8.
Mac OS 맥북 Homebrew m1 설치 방법 Homebrew 설치 하는이유? mac OS 에서 다양한 패키지를 설치하기 위해 맥주모양 아이콘이 심볼인 편리함을 도와주는 도구입니다. M1 맥북출시 이후 정상적으로 설치 되지 않아서 많은 맥유저들이 살짝 당황했었던 기억이 있는데!! homebrew 에서 설치하는 방법을 변경해서 지금은 정상적으로 설치되는것을 확인할수 있습니다. - 간편하고 빠릅니다. window 환경과 다르기 mac은 리눅스 기반이기 때문에 커맨드창에 명령어로 마우스나 클릭이벤트보다 쉽고 직관적으로 내가 원하는 프로그램 설치가 가능합니다. - window에서는 프로그램설치시 불필요한 기능들이 나도모르게 설치되는데 brew사용시 원하는 기능들만 설치가 됩니다. 체크박스같은건 없어요 - brew로 설치한 앱들은 brew list로 확인할수.. 2022. 8. 30.
Swagger UI Java 면접과제 Springboot SpringDoc 적용 API문서 자동화 Mock 데이터 샘플 만들기 API 문서 자동화 사용하는 이유? Swagger UI API를 설정하고 문서 자동화 하는 이유는 내가 만든 API 인터페이스 문서를 잘 정리해서 다른 개발자들과 사용하는 모든 사람들에게 편의성을 제공하고 어떤 동작을 하는지에 대한 부분을 잘 표현하기 위함이라고 생각하면 됩니다. 최근에 사용했던 목적을 정리해보면 면접 과제용 API 개발하고 표현하기 위해서 많은 시간을 사용한것 같고 프로젝트 진행하면서 프론트앤드와 개발 진행하고 있는데 일정이 빠듯하다보니 Mock 데이터를 구성해서 API를 제공하는 목적으로 사용하면서 필요한부분 Swagger UI API를 표현하는 몇가지 유형 그리고 간단하게 API호출하는 테스트 코드까지 만들어 보려고 합니다. Rest Doc을 많이 사용하나요? Swagger UI A.. 2022. 8. 29.
Rest API 호출시 보일러 플레이트 코드를 리펙토링 하는 방법, 같은 모양의 양을 줄여보시오!! 내몸에 익숙함을 바꿔야하는데 ... 프로젝트를 진행하면서 Functional 형태의 구현을 해봐야되겠다는 생각을 늘하지만 갑자기 코딩 스타일을 바꿔나간다는것이 어렵다고 느껴지고 실제로도 익숙해지기까지 시간이 걸립니다. 사람은 누구나 익순한것을 좋아하는데 이유는 위험요소도 적고 자연스럽기 때문입니다. 내가 컨트롤 가능한상태를 구성하기 때문에 표현하기도 쉽다는 생각이 드는데 문제는 내가알고있는것보다 더 좋은 방법들은 계속 생겨나고 발전하고 생태계 전반적으로 적용하기도합니다. 자칫 잘못하면 서비스들은 성장하는데 내자신만 멈춰있는 느낌을 받을수도 있습니다. 머리로는 알고있고 새로운것을 습득해 나가야한다고 인지는 하지만 참 여러가지 이유로 멀리하게되는데 하나씩 내가 소화가능한 만큼씩 접근해 나가도록 하겠습니다. .. 2022. 8. 9.
MSA 아키텍처 프로젝트 빅뱅 방식으로 God Object 처리시 발생하는 Tell Dont ask 역시 회사 생활은 쉽지가 않다. 아!!!!!!!!! 너무너무 힘들고 지쳐서 그래도 이렇게 기록을 정리해두는게 좋은거같아서 모진 풍파에 대한 경험을 기록합니다. 시간이 지나서 이또한 웃으면서 예기할수 있는 프로젝트의 한부분으로 남았으면 하는 개인적인 소망입니다. 프로젝트의 이슈 MSA프로젝트는 블로그에서도 몇번 언급한적이 있는데 기존에 모놀리딕 한부분을 쪼개서 처리한다가 단순하게 예기하면 그런 방향이라 리소스가 처음보다 2~3배정도 된다 라고 예기할수 있을것 같습니다. 현실 프로젝트에서는 사실 이부분 또한 쉽지는 않다고 생각하고 모든 개발자들의 상황이 그런것 같습니다. MSA에서 진행하는 작업은 프론트에 데이터를 조회해서 제공해주는 부분을 하고있는데 안타까운 부분은 원천데이터를 처리하는데 있어서 내가 컨트.. 2022. 8. 8.
Springboot Rest API GetMapping 방식 @Setter 없이 @ParameterObject, @AllArgsConstructor 2가지로 @ModelAttribute 사용 하는 방법 안녕하세요 앵과장입니다. Rest API 개발하다보면 Get방식으로 구현하다가 생각보다 많은 파라메타를 전달해야하는 상황이 발생할수 있습니다. 이때 GET 방식 말고 POST로 방향을전환하게 되는데 나는 데이터를 조회할때는 GET Method를 사용하고 싶다 근데 파라메타를 일일이 나열하고싶지 않다 라고하시는 개발자 분들을 위해서 해당 내용을 정리하고자합니다. GET Method 구현시 아래처럼 파라메타가 많아졌을때 어찌해야하나요? 구현하다보니 swagger ui api 에 최대한 파라메타를 노출시키려고 하다보니 아래처럼 구성이 된것을 확인하게되었는데 swagger 에는 노출이 되었는데 코드레벨에서 봤을때는 나중에 파라메타 수정도 용이하지 않을꺼 같고 Controller class 코드가 가독성있는 형태.. 2022. 6. 23.
Rest Api 개발할때 @Setter 안쓰고 조회기능 만들기 Get Post 언제 상황에 맞게 써야하나요? 안녕하세요 앵과장입니다. 해당 내용은 개발하면서 지극히 주관적인 내용을 정리라는 내용이라는 점 참고하세요 Rest Api 개발할 때 Get Post 언제 별도로 사용해야 하나요? 최근 개발하는 프로젝트가 백앤드 개발이긴 한데 클라이언트 개발자가 사용하는 BFF레이어 개발을 주로 진행을 하다 보니 언제 Get을 쓰고 Post는 언제 사용해야 되는지에 대해서 고민을 하게 됩니다. Get 방식 고민을 했던 기능에 대해서 예시를 들어보도록 하겠습니다. 30개 정도의 메뉴가 비슷한 유형에 조회 기능입니다. Client에서 호출할 때 필수(Required) 또는 제외 가능(Option)입니다. 각기능에서 요청에 필요한 Request 파라미터는 1개~40개 정도까지 다양합니다. 초반 개발할 때는 Get방식으로 구현을.. 2022. 5. 26.
728x90