전체 글 63

[Mysql 8.0] Mysql Lock 확인

간단한 글을 쓰는 것은 지양하려고 했는데, 다른 블로그 글 중에 잘 안맞는 것들이 있어서 조금 끄적거려본다.알기로 5.6 버전과 8.0 버전은 시스템 쿼리의 형태가 조금 다른것으로 안다. (password 컬럼이 사라졌다거나..)이 글은 8.0 기준으로 작성함을 알려드린다. Transaction Lock 확인확인 자체는 아래 명령을 통해 진행하면 된다. SELECT * from information_schema.INNODB_TRX다만 일을 하다보면 이 트랜잭션을 죽여도 되는가 혹은 이 트랜잭션이 어디서 발생했는가를 알아야 하는 경우가 존재한다.SHOW ENGINE INNODB STATUS;이때 이 명령을 통해 락이 어느시점에 어떤데이터에서 발생했는지를 보다 자세히 알 수 있게 해준다. 무턱대고 트랜잭션을..

BE 와 FE 는 어떻게 협업해야 할까.

부제 : 확신을 가지는 개발자가 되고 싶다. 저는 2년차 백엔드 개발자임을 먼저 알리며, 정답을 말하고자 작성하는 글이 아니라 저의 경험을 공유하고자 쓰는 글입니다. 오해 없으시길 바라겠으며, 다른 생각이 있으시다면 언제든 댓글로 의견 나눠주시면 감사하겠습니다. 백엔드와 프론트엔드는 보통 API를 통해 협업을 진행하게 될 텐데요. 보통은 아니, 저희는 api 설계를 진행하고 그 설계내용을 프론트에 전달 한 뒤, 프론트와 백엔드가 그 설계내용을 맞추기 위해 작업을 합니다. 문제가 없이 그 설계내용대로 작업이 진행된다면 서로 의견이 대립할 일 없이 아주 좋은 업무 진행이 되겠지요. 하지만 종종 수정요청이 들어오는 경우가 있었습니다. 저는 대부분 그런 경우 백엔드에서 키 값을 변경하거나, 데이터 구조를 요청에..

[JAXB] XSD to java Code (xsd , java object변환)

항상 블로그는 어렵네요. 단순한 낙서장이 되지않기를 바랍니다. JAXB , Xjc JAXB(Java Architecture for XML Binding)는 웹 서비스의 단순화된 개발을 위해 Java 클래스 및 XML 스키마를 매핑하는 쉽고 편리한 방법을 제공하는 Java 기술입니다. JAXB는 본문의 글 처럼 스키마파일을 통해 java object를 생성하기도 하지만 xml 문서를 java object로 변환하는 Marshal 그리고 그 반대의 역할을 하는 Unmarshal기능도 지원합니다. 일단 JAXB는 JAVA11부터는 JDK에 포함되지 않습니다. 그리고 이 글의 목적인 xsd 변환을 도와주는 도구 xjc 역시 포함되어있지 않습니다. 해결법 본문에서는 첫번째 방법으로 JAVA 17버전 에서 Inte..

회고 (2022 하반기)

[프로젝트를 하면서 느낀 점] 이 회사에서 나는 백엔드 개발자로 Python 과 JS를 사용해 오고 있다. 물론 처음부터 둘 다 하려고 한 건 아니고, 필요에 의해서? 그리고 좀 더 편한 작업을 위해서 사용했다. 연구소 내에서 내가 맡고 있는 작업은 물론 백엔드 작업이지만, 그 중에서도 DB에 저장된 임상 관련 데이터들을 조합, 정제하여 다른 EDC가 읽을 수 있는 xml 형태로 넘겨주는 작업이다. 데이터 구조가 생각보다 복잡했고 data를 합치는 과정에서 중복된 데이터를 제거하거나 common 이 체크된 경우 아예 새로운 data format으로 만드는 등의 작업을 하다 보니 Python이 가장 적합했다. 나는 약 9월 말 부터 Imtrial에 합류하여 두 달 조금 안되는 기간 동안 ODM이라는 데이터..

[개발노트] 터미널 워치페이스 애플워치3 적용기

오랜만에 포스팅입니다! 오늘은 좀 재밌어보이는 깃 레포지토리를 가져와 봤습니다 요거 딱 감성자극하지 않나요? ㅋㅋ 터미널 워치페이스입니다. 레딧에서도 한때 글이 올라왔었네요 https://www.reddit.com/r/AppleWatch/comments/a6td4t/termiwatch_a_terminal_watch_face_for_apple_watch/ 그래서 오늘 포스팅은 요 https://github.com/kuglee/TermiWatch GitHub - kuglee/TermiWatch: Terminal Watch Face for Apple Watch Terminal Watch Face for Apple Watch. Contribute to kuglee/TermiWatch development by ..

[Oracle cloud] 오라클 클라우드 free tier 인스턴스

블라인드나 몇몇 글에서 언제부턴가 Oracle cloud 에 대한 이야기가 나오기 시작하고, 최근엔 모 컨퍼런스에 갔더니 Oracle cloud 홍보부스도 있는 것을 보았다. 흔히들 Cloud 서비스를 물어보면 보통 AWS, GCP(google cloud platform), 그리고 Azure정도를 떠올리곤 하는데 (적어도 필자는 그랬다) Oracle은 생소했다. Oracle의 홍보전략은 이랬다. "AWS보다 50프로 가량 저렴한 가격정책." 프리티어도 과감하게 무제한 무료 정책을 내세워 개발자들의 흥미를 끄는것 같다. 필자도 무제한 프리티어라는 말에 혹해서 찾아본 케이스. 그럼 다른 cloud service들의 프리티어 정책은 어떨까. AWS의 경우, 링크 무료 클라우드 컴퓨팅 서비스 - AWS 프리 티..

[CDISC] CDISC Library api 사용법

swagger 에 대부분의 사용법이 존재하나, 해당 부분에 header 내용이 누락되어 있고 별다른 사용예제가 없어 테스트로 사용한 코드를 업로드 하고자 한다. CDISC Library 에서 먼저 api Key를 발급 받아야 하는데, https://library.cdisc.org/browser/#/ CDISC Data Standards Browser library.cdisc.org 이곳으로 접속해서 회원가입 or 로그인을 먼저 진행하고, 저 빨간 칸으로 접근한다음 우측상단의 API 키를 발급 받은 후, header에 api-key 의 value 로 본인의 api key를 던지면 된다. api 문서는 다음 링크에서 확인 가능하다. https://api.developer.library.cdisc.org/ap..

[sphinx] 스핑크스를 사용해 django 문서화

스핑크스는 파이썬 문서화 패키지이다. 상당히 오래되었고, 블로그 글만 보더라도 많이 쓰는 것처럼 보이지만.. Django 기준으로 작성된 글은 찾기 어려웠고, 작성된 글도 간단하게 되어있어 사용법을 파악하기 힘들었다. 이번 글에서는 django 로 개발된 프로젝트를 한번 문서화 하는 방법을 소개하겠다. 1. 먼저 설치는 다음과 같다. $ pip install sphinx (python version 이 3.x 라면 pip3) conda는 conda install 써도 무방 설치가 되었다면 프로젝트의 부모 폴더에서 2. docs/ 라는 이름의 폴더를 만들어주자. (mkdir docs) 왜 하는가? 이후 명령을 걍 쳐버리면 부모폴더에 이것저것 생기게 된다. 상당히 지저분해지기 때문에 폴더 하나를 만들어서 넣..

[jupyter notebook] 화면 넓게 설정하는 법

from IPython.display import display, HTML display(HTML("")) 해당 코드는 jupyter notebook 사용시 기본설정된 코드 에디터 부분이 너무 작아 불편함을 느낄때 사용해 보길 바란다. 기본적으로 주피터 노트북은 모니터가 크건 작건 해당 비율의 크기만을 에디터로 사용한다. 이는 코드 작성시에 불편함 뿐만 아니라 dataframe 같은 output을 확인할때 불편할 때가 많은데 위의 코드에서 %부분을 기본값 60에서 80 이후 값으로 설정하면 에디터가 상당히 넓어지는 것을 볼 수 있다. 설정을 적용한 jupyter notebook

[Django] 장고 user 모델 접속 로그 구현

개발을 하다보면 누군가의 요청에 의해서 접속로그, 실패로그를 찍을 일이 생기더라구요. 해당 방법은 user 모델을 상속한 프로젝트에 한하며, 3가지 로그를 찍습니다. 접속성공 접속실패 로그아웃 # 로그기능 추가. from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed from django.dispatch import receiver class Logtbl(models.Model): action = models.CharField(max_length=64) ip = models.GenericIPAddressField(null=True) username = models.CharField(max_lengt..

반응형