728x90

전체 글 105

윈도우 배치파일 관리저 권한으로 실행

윈도우 배치파일을 만들어서 관리자 권한으로 실행해야할 일이 생겼을때.. 배치파일 내에 해당 코드를 기재한다. @echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( echo Run as Administrator... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"="" echo UAC.ShellExecute "cmd.exe", "/c %~s0..

기타/OS 2022.01.27

Apache Kafka 및 메세지 큐 종류와 차이점

메세지 큐의 사용 이유 Application request에 서버가 실시간으로 response 할때 사용 Application 과 서버가 강한 결합일 경우 DB와 백엔드에서 장애발생시 Application 역시 장애발생 MQ 사용시 장점 설계를 보다 느슨한 결합할 수 있음 Application Architecture가 DB성능에 덜 영향을 받음 여러 다른 API로 부터 비동기통신이 가능 다수의 프로세스로부터 Message 처리 가능 메세지큐 종류 Kafka RabbitMQ ActiveMq Kafka 확장성, 고성능 및 높은 처리량 대용량 데이터 특화 시스템으로 범용으론 적합하지 않다. 분산시스템을 설계 → 분산, 복제 구성이 쉽다. 이점 대용량 실시간 로그처리 특화 AMQP 프로토콜이나 JSM API를 ..

RabbitMQ core, exchange

RabbitMQ에서 중요한 개념으로는 Producer, Consumer, Queue, Exchange, Binding이 있습니다. 먼저 Producer는 이름에서 알 수 있듯이, 메세지를 생성하고 발송하는 주체입니다. 이 메세지는 Queue에 저장이 되는데, 주의할 점은 Producer는 Queue에 직접 접근하지 않고, 항상 Exchange를 통해 접근하게 됩니다. 다음으로는, Consumer가 있으며, 메세지를 수신하는 주체입니다. Consumer는 Queue에 직접 접근하여 메세지를 가져옵니다. Queue는 Producer들이 발송한 메세지들이 Consumer가 소비하기 전까지 보관되는 장소입니다. Queue는 이름으로 구분되는데, 같은 이름과 같은 설정으로 Queue를 생성하면 에러 없이 기존 Q..

RabbitMQ Python 예제

메세지 큐를 송신 및 수신하는 Request, Response.py 를 생성하고 하단과 같이 활용한다. Request.py import json import pika import sys cred = pika.PlainCredentials('user', 'pwd') connection = pika.BlockingConnection( pika.ConnectionParameters(host='host_ip',credentials=cred)) channel = connection.channel() channel.exchange_declare(exchange='queue_name')#, exchange_type='fanout') param = { '전달 내용' } message = json.dumps(param)..

Spring Boot - Entity, Repository

JPA를 쉽게 사용하기 위해 스프링에서 제공하는 프레임워크 Main Keyword : Repository 사용자는 인터페이스, 메소드만 정의하면 Spring data가 이름을 분석하여 JPQL 실행 JpaRepository -> CRUD 기능을 제공하는 인터페이스해당 인터페이스를 상속받아 Spring data jpa 사용 public interface productRepository extends JPARepository, productRepositorySupport{ //CRUD Method….} ref : https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#preface 쿼리 메소드 기능 Spring Data는 메소드 이름에 있는 ..

Spring Boot - IoC, Bean, AOP 예제

Inversion of Control (IoC) ioc - 객체의 의존성을 역전시켜, 객체 간의 결합도를 줄이고 유연한 코드를 작성하게 하여 가독성 및 코드의 중복, 유지보수를 편하게 할 수 있게한다. di - 객체를 직접 생성하는 것이 아니라, 외부에서 생성한 후 주입을 시켜주는 방식 일반적으로 의존성에 대한 제어권은 객체 자기 자신이 갖지만, 첫번째 코드는 Sample이라는 클래스에서 Apple 객체를 불러오는 예제이다. 의존관계는 간단히 말해서 new라는 키워드를 통해 생성 첫번째 코드는 Apple 객체의 제어권이 Sample에게 있다는 의미, 두번째 예시는 Sample에게 있는게 아니라 SampleTest에게 있다는 것 이처럼 의존성을 역전시켜 제어권을 직접 갖지 않는 것을 IoC라고 하며, 의존..

AOP ,Transaction

AOP (Aspect Oriented Programming) 관점지향 프로그래밍이라고 불린다. 어떤 로직을 기준으로 핵심관점, 부가관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하는 의미 여러 곳에서 사용되는 중복되는 코드를 떼어내서 분리한다. -> 중복되는 코드 = aspect aspect로 모듈화 하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 취지로 사용 AOP 주요 개념 Aspect : 중복되는 코드(모듈화 한것), 주로 부가기능 Target : Aspect를 적용할 곳 (클래스, 메서드 etc..) Advice : 실직적인 부가기능을 담은 구현체 JoinPoint : Advice가 적용될 위치, 다양한 시점에 적용이 가능 PointCut : JoinPoint의 상세한 스펙을 정의..

Bean, DI, IoC 의 설명

Bean Spring IoC 컨테이너가 관리하는 자바 객체를 뜻한다. Spring Container에 의해 자바 객체가 만들어지게 되면 이 객체를 Spring은 Spring Bean이라 칭한다. 애플리케이션의 핵심을 이루는 객체들은 Beans라고 부른다. Bean은 스프링 Ioc 컨테이너에 의해서 인스턴스화되어 조립되거나 관리되는 객체다. 빈에 관한 설명이 이해가 안될 수 있다. 한줄로 요약 하자면 그냥 자바 객체라고 생각할 수도 있다. 하지만 더 쉽게 예를들어 설명하자면 다음과 같다. 간단하게 선풍기를 만든다고 예를들면 선풍기를 1대만 만드는게 아니라 100대를 만들어야 한다. 그러면 누군가는 프로펠러를 100개 만들고, 누군가는 프레임을 100개 만들고, 누군가는 모터를 100개를 만들어야한다. 그리..

SpringBoot 기초 이론

Spring Framework 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 Application Framework : 거대한 애플리케이션 개발 프레임워크 DI(loC) Framework : 의존성 주입 프레임워크 AOP Framework : 관점지향 프레임워크 Data Access Framework : 데이터 접근 프레임워크 Transaction management Framework : 트랜잭션 관리 프레임워크 MVC Framework : MVC(Model-View-Controller) 패턴 적용 프레임워크 Spring 동작 원리 (1) 사용자의 요청이 입력 Dispatcher Servlet을 통해 전달받아 Handler Mapping을 통해 해당하는 Controller 에게 Request Con..

슬랙 봇 생성 및 Python 으로 연동하기

Slack bot 생성하기는 간단하다. Slack에 App을 추가하여 자동으로 메세지를 보내게하는 방법은 Webhook URL을 사용하거나 OAuth Token을 사용하면 된다. https://slack.com/intl/ko-kr/?redir=%2Fapps%2Fmanage%2Fcustom-integrations Slack은 미래의 업무가 이루어지는 곳입니다 Slack은 여러분의 팀과 소통할 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 위 링크에서 수신 웹후크(Incoming Webhooks) 선택 Bot 추가를 원하는 채널에 들어가서 ctrl + shift + i → 더보기 → #채널에 있는 앱보기 앱이 있는지 확인 → 있을경우 4번, 없을경우 5번 진행 원..

RPA 그랜드 웨비나 2021

전자신문 주최 블루프리즘 내용 못들음 veracode level 5 삼성SDS Brity RPA (채팅에는 AA(Automation Anywhere) 기반 아니냐는 질문 있음, 자체 개발 주장) RPD (Robotic Process Discovery) : 업무 자동 녹화 60일 무료 mytrial.samsungsds.com Pure RPA (Act) → Hyper Automation (STT, OCR 등) → Cognitive Automation (ML 등) xPlatform, Nexacro 전용 커넥터가 있음 삼성전자에서 전사자동화 → 1인 1RPA화 추진 중 저항은 어떻게 극복? (기본적으로 업무에 업무를 더하는데?) RPD로 해결 내부 모임인 RPA공방 운영 비슷한 업무 프로세스 공유 포털 보유 한..

Seminar 2022.01.24

Github 작업 중 브랜치 PR로 올려둘 때, Merge 안되도록 처리하기

1. PR 생성하는 경우 PR 생성 시 아래 이미지와 같이 화살표 클릭 후 [Create Draft Pull Request] 클릭 2. 이미 생성된 PR의 경우 아래 이미지와 같이 우측 reviewers 메뉴 아래에 [Convert to draft] 클릭 결과 Draft 상태로 변경되면서 Merge할 수 없는 상태가 됨 참고 : https://github.blog/2019-02-14-introducing-draft-pull-requests/ Introducing draft pull requests | The GitHub Blog You can now use draft pull requests to clearly tag when you’re coding a work in progress. github.blog

기타/Git 2022.01.24

Docker 에 관한 기본 정리

컨테이너형 가상화 구현 기술(운영 체제 수준 가상화) - 변화하지 않는 실행환경으로 Idempotency 확보 - 코드를 통한 실행 환경 구축 및 어플리케이션 구성 - 실행 환경과 어플리케이션의 일체화로 이식성 향상 - 시스템을 구성하는 어플리케이션및 미들웨어 관리 용이성 기본 구조 ``` FROM ubuntu:16.04 #운영체제 정의 COPY helloworld /usr/local/bin #helloworld 파일을 도커 컨테이너 내부 경로에 저장 RUN chmod +x /usr/local/helloworld #COPY에서 저장한 파일에 대한 실행 권한 부여 CMD ["helloworld"] # 완성된 이미지를 도커 컨테이너로 실행전 먼저 실행할 명령 정의 ``` ```bash $ docker ima..

Git reset vs revert

깃 리셋과 리버트 차이 둘 다 이전 커밋 수정/삭제 시 사용 git reset 옵션에 따라 commit된 파일들을 staging, working directory로 돌려놓거나 아예 삭제할 수 있음 혼자 작업하는 브랜치라면 reset 및 추가 작업 후 원격 브랜치에 -f 옵션 달아서 push 가능 (팀원과 공유하는 브랜치라면 팀원의 커밋 히스토리와 다른 커밋 히스토리를 push 하는 행동이므로 위험) git revert 팀원과 공유하는 브랜치에서 이전 커밋 수정/삭제 시 사용 기존 히스토리에 revert 커밋을 추가하는 방식으로 기존 커밋 히스토리가 바뀌지 않아 충돌 발생 없음 참고 : https://velog.io/@sonypark/git-reset-vs-git-revert-차이

기타/Git 2022.01.24

Python mulitprocessing

파이썬 멀티프로세싱 MultiProcessing multiprocessing은 threading 모듈과 유사한 api를 사용하여 프로세스 스포닝을 지원하는 패키지이다. multiprocessing 패키지는 지역, 원격 동시성을 모두 제공하여 멀티스레딩에서 발생하는 GIL을 효과적으로 회피 할 수 있다. 프로세스 간 공유하는 자원이 없기 때문에 GIL이 적용될 critical section이 없다 윈도우, 유닉스에서 모두 실행된다. multiprocessing은 threading에 없는 api가 있는데 대표적으로 pool 객체이다. 이 객체는 map처럼 여러 입력값을 함수 병렬 실행으로 처리하는 방법을 제공한다. Process 클래스 프로세스는 Process 객체를 생성 후 start() 메서드를 호출하여..

동기와 비동기의 개념과 차이점

데이터를 통신하는 방식인 동기식 방식과 비동기식 방식이 존재한다. 동기식 (Synchronous) - 동기식은 동시에 일어나는 뜻이다. 요청과 그 결과가 동시에 일어난다는 말!-> 요청한 결과가 한 자리에서 동시에 일어남-> A노드와 B노드 사이의 트랜잭션을 동시에 맞추겠다는 말임 장점 : 설계가 간단하고 직관적단점 : 결과를 볼 때까지 아무것도 못하고 대기해야함 비동기식(Asynchronous) - 비동기식은 동시에 일어나지 않는다는 뜻이다. 요청과 결과가 동시에 일어나지 않는다는 말!-> 요청한 그 곳에서 결과가 나타나지 않음-> 노드 사이의 작업 처리 단위를 동시에 하지 않아도 된다. 장점 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업이 가능해 자원의 효율적인 사용이 가능단점 : ..

5. 박스모델

박스 모델에 대해서 알아보면 먼저 F12를 통하여 해당 영역의 크기를 볼 수가 있습니다. 예를들면 이런식으로 내부에 크기가 있고 그 위에 패딩 보더 마진 이런식으로 보여지는것을 통틀어서 박스모델이라고 합니다. 코드의 주석과 내용을 보고 결과 화면을 보겠습니다. 박스모델 /* 박스모델 - 한 요소가 박스의 모양을 갖는 모델 - width, height, padding, border, margin 로 구성 - 더 정확히 말하면, width, height, padding-top, padding-right, padding-bottom, padding-left, border-top, border-right, border-bottom, border-left, margin-top, margin-right, margi..

Front-end/CSS 2018.09.11
728x90
반응형